From 54de36afd7d2b6fa3e793f7a0cf2f32ae007e74b Mon Sep 17 00:00:00 2001 From: ravverma <46780200+ravverma@users.noreply.github.com> Date: Tue, 4 Apr 2023 12:18:58 +0530 Subject: [PATCH 001/149] Update fstab.yaml for development of Screens demo --- fstab.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fstab.yaml b/fstab.yaml index 5be91a08..73293b1e 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,2 +1,2 @@ mountpoints: - /: https://adobe.sharepoint.com/:f:/r/sites/HelixProjects/Shared%20Documents/sites/adobe/wknd + /: https://adobe-my.sharepoint.com/:f:/r/personal/ravverma_adobe_com/Documents/Franklin/wknd-screens?csf=1&web=1&e=m0Vayw From 9d558ba52338d48aaa946130b43c48b0631ce1fe Mon Sep 17 00:00:00 2001 From: ravverma <46780200+ravverma@users.noreply.github.com> Date: Tue, 4 Apr 2023 13:05:56 +0530 Subject: [PATCH 002/149] Update fstab.yaml --- fstab.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fstab.yaml b/fstab.yaml index 73293b1e..fc765f0b 100644 --- a/fstab.yaml +++ b/fstab.yaml @@ -1,2 +1,2 @@ mountpoints: - /: https://adobe-my.sharepoint.com/:f:/r/personal/ravverma_adobe_com/Documents/Franklin/wknd-screens?csf=1&web=1&e=m0Vayw + /: https://adobe-my.sharepoint.com/:f:/r/personal/ravverma_adobe_com/Documents/Franklin/franklin-screens-wknd?csf=1&web=1&e=k0vykq From 2b26840a93337e78091245f61f3c722dcc705eb3 Mon Sep 17 00:00:00 2001 From: ravverma Date: Tue, 4 Apr 2023 14:54:22 +0530 Subject: [PATCH 003/149] incorporating we.cafe demo --- .gitignore | 1 + blocks/prices-overlay/prices-overlay.css | 35 + blocks/prices-overlay/prices-overlay.js | 19 + blocks/product-list/product-list.css | 52 + blocks/product-list/product-list.js | 32 + docs/images/entrance-landscape.jpg | Bin 0 -> 76191 bytes docs/images/entrance-portrait.jpg | Bin 0 -> 78120 bytes docs/images/kiosk-checkout.jpg | Bin 0 -> 31117 bytes docs/images/kiosk-choice.jpg | Bin 0 -> 33641 bytes docs/images/kiosk-welcome.jpg | Bin 0 -> 40949 bytes docs/images/menuboard-2panels.jpg | Bin 0 -> 90755 bytes docs/images/menuboard-3panels.jpg | Bin 0 -> 164792 bytes docs/images/store_layouts.png | Bin 0 -> 422994 bytes fonts/chalky.woff2 | Bin 0 -> 99512 bytes helix-query.yaml | 55 + icons/apple.svg | 55 + icons/banana.svg | 69 + icons/berries.svg | 148 + icons/cocoa.svg | 49 + icons/coffee.svg | 48 + icons/croissant.svg | 84 + icons/donut.svg | 69 + icons/tea.svg | 46 + icons/waffle.svg | 60 + images/AdobeStock_88079615_preview.webp | Bin 0 -> 35702 bytes images/chalkboard-horizontal.webp | Bin 0 -> 25234 bytes images/chalkboard-vertical.webp | Bin 0 -> 25540 bytes images/logo.webp | Bin 0 -> 22834 bytes plugins/perflogger/.eslintrc.json | 11 + .../.github/workflows/run-tests.yml | 18 + plugins/perflogger/.gitignore | 1 + plugins/perflogger/LICENSE | 13 + plugins/perflogger/README.md | 88 + plugins/perflogger/docs/screenshot.png | Bin 0 -> 97289 bytes plugins/perflogger/index.js | 233 + plugins/perflogger/index.test.js | 401 + plugins/perflogger/package-lock.json | 10621 ++++++++++++++++ plugins/perflogger/package.json | 27 + plugins/screens/LICENSE | 21 + plugins/screens/README.md | 1 + plugins/screens/blocks/embed/embed.css | 18 + plugins/screens/blocks/embed/embed.js | 21 + plugins/screens/blocks/image/image.css | 11 + plugins/screens/blocks/image/image.js | 10 + .../blocks/text-overlay/text-overlay.css | 5 + .../blocks/text-overlay/text-overlay.js | 28 + plugins/screens/blocks/video/video.css | 10 + plugins/screens/blocks/video/video.js | 63 + plugins/screens/channel-embed.min.js | 888 ++ plugins/screens/index.js | 225 + plugins/screens/package.json | 24 + plugins/screens/screens.css | 38 + plugins/screens/sequencechannel-embed.min.js | 992 ++ scripts/kiosk.js | 71 + styles/theme-entrance.css | 84 + styles/theme-kiosk.css | 130 + styles/theme-menuboard.css | 86 + 57 files changed, 14961 insertions(+) create mode 100644 blocks/prices-overlay/prices-overlay.css create mode 100644 blocks/prices-overlay/prices-overlay.js create mode 100644 blocks/product-list/product-list.css create mode 100644 blocks/product-list/product-list.js create mode 100644 docs/images/entrance-landscape.jpg create mode 100644 docs/images/entrance-portrait.jpg create mode 100644 docs/images/kiosk-checkout.jpg create mode 100644 docs/images/kiosk-choice.jpg create mode 100644 docs/images/kiosk-welcome.jpg create mode 100644 docs/images/menuboard-2panels.jpg create mode 100644 docs/images/menuboard-3panels.jpg create mode 100644 docs/images/store_layouts.png create mode 100644 fonts/chalky.woff2 create mode 100644 helix-query.yaml create mode 100644 icons/apple.svg create mode 100644 icons/banana.svg create mode 100644 icons/berries.svg create mode 100644 icons/cocoa.svg create mode 100644 icons/coffee.svg create mode 100644 icons/croissant.svg create mode 100644 icons/donut.svg create mode 100644 icons/tea.svg create mode 100644 icons/waffle.svg create mode 100644 images/AdobeStock_88079615_preview.webp create mode 100644 images/chalkboard-horizontal.webp create mode 100644 images/chalkboard-vertical.webp create mode 100644 images/logo.webp create mode 100644 plugins/perflogger/.eslintrc.json create mode 100644 plugins/perflogger/.github/workflows/run-tests.yml create mode 100644 plugins/perflogger/.gitignore create mode 100644 plugins/perflogger/LICENSE create mode 100644 plugins/perflogger/README.md create mode 100644 plugins/perflogger/docs/screenshot.png create mode 100644 plugins/perflogger/index.js create mode 100644 plugins/perflogger/index.test.js create mode 100644 plugins/perflogger/package-lock.json create mode 100644 plugins/perflogger/package.json create mode 100644 plugins/screens/LICENSE create mode 100644 plugins/screens/README.md create mode 100644 plugins/screens/blocks/embed/embed.css create mode 100644 plugins/screens/blocks/embed/embed.js create mode 100644 plugins/screens/blocks/image/image.css create mode 100644 plugins/screens/blocks/image/image.js create mode 100644 plugins/screens/blocks/text-overlay/text-overlay.css create mode 100644 plugins/screens/blocks/text-overlay/text-overlay.js create mode 100644 plugins/screens/blocks/video/video.css create mode 100644 plugins/screens/blocks/video/video.js create mode 100644 plugins/screens/channel-embed.min.js create mode 100644 plugins/screens/index.js create mode 100644 plugins/screens/package.json create mode 100644 plugins/screens/screens.css create mode 100644 plugins/screens/sequencechannel-embed.min.js create mode 100644 scripts/kiosk.js create mode 100644 styles/theme-entrance.css create mode 100644 styles/theme-kiosk.css create mode 100644 styles/theme-menuboard.css diff --git a/.gitignore b/.gitignore index 7cd6537a..2efc1722 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .hlx/* coverage/* logs/* diff --git a/blocks/prices-overlay/prices-overlay.css b/blocks/prices-overlay/prices-overlay.css new file mode 100644 index 00000000..d5d2251f --- /dev/null +++ b/blocks/prices-overlay/prices-overlay.css @@ -0,0 +1,35 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +.prices-overlay-wrapper, +.block.prices-overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.block.prices-overlay { + font-family: chalky, Verdana, sans-serif; + font-size: 3rem; + color: black; +} + +.block.prices-overlay > div { + position: absolute; +} + +.block.prices-overlay > div > div::before { + content: '$'; + display: inline-block; +} diff --git a/blocks/prices-overlay/prices-overlay.js b/blocks/prices-overlay/prices-overlay.js new file mode 100644 index 00000000..6172e44b --- /dev/null +++ b/blocks/prices-overlay/prices-overlay.js @@ -0,0 +1,19 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +export default async function decorate(block) { + [...block.children].forEach((row) => { + row.style.left = row.children[0].textContent; + row.style.top = row.children[1].textContent; + row.children[0].remove(); + row.children[0].remove(); + }); +} diff --git a/blocks/product-list/product-list.css b/blocks/product-list/product-list.css new file mode 100644 index 00000000..85af9c66 --- /dev/null +++ b/blocks/product-list/product-list.css @@ -0,0 +1,52 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + + .block.product-list { + width: 100%; + font-family: Verdana, Geneva, Tahoma, sans-serif; + font-size: 1.1rem; + line-height: 1em; +} + +.block.product-list > div { + display: grid; + grid-template-columns: 1fr 100px; + grid-template-areas: + "title price" + "description price"; + margin-bottom: 1rem; +} + +.block.product-list .product-list-title { + grid-area: title; +} + +.block.product-list .product-list-description { + grid-area: description; + font-style: italic; + font-size: .8em; + color: rgba(255 255 255 60%); +} + +.block.product-list .product-list-price { + grid-area: price; + font-family: chalky, Verdana, sans-serif; + font-size: 1rem; + line-height: 2rem; + text-align: right; + vertical-align: super; +} + +.block.product-list .product-list-price::first-letter { + font-size: 3rem; + vertical-align: text-top; +} diff --git a/blocks/product-list/product-list.js b/blocks/product-list/product-list.js new file mode 100644 index 00000000..2ff61918 --- /dev/null +++ b/blocks/product-list/product-list.js @@ -0,0 +1,32 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +export default async function decorate(block) { + const response = await fetch('/products.json'); + if (!response.ok) { + return; + } + const products = await response.json(); + [...block.children].forEach((row) => { + const key = row.firstElementChild.textContent; + const product = products.data.find((p) => p.Id === key); + if (!product) { + console.warn('Cannot find product', key); + row.style.display = 'none'; + return; + } + row.innerHTML = ` +
${product.Title}
+
${product.Description}
+
${parseFloat(product.Price).toFixed(2)}
+ `; + }); +} diff --git a/docs/images/entrance-landscape.jpg b/docs/images/entrance-landscape.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdbd099c4e990b69a2668761b1bedab3d0088e85 GIT binary patch literal 76191 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 F^FO?4t!w}Q literal 0 HcmV?d00001 diff --git a/docs/images/entrance-portrait.jpg b/docs/images/entrance-portrait.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a474419c102d59b8070f4045d522a4ae2df3943a GIT binary patch literal 78120 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%0DYGOL^{#&_+J6gO(enc6? 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 literal 0 HcmV?d00001 diff --git a/docs/images/kiosk-checkout.jpg b/docs/images/kiosk-checkout.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0f7744eb9a3e00c7d75c9b62edd16c9c0105af8 GIT binary patch literal 31117 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 qKf{9Y@0g{)Wr literal 0 HcmV?d00001 diff --git a/docs/images/kiosk-choice.jpg b/docs/images/kiosk-choice.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1593c0f90d5f45537be8a7e8591f5bb36a219ec3 GIT binary patch literal 33641 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 ICb%7 literal 0 HcmV?d00001 diff --git a/docs/images/menuboard-2panels.jpg b/docs/images/menuboard-2panels.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09f27f34331fc0a957eb5e2c54be01e5fd1073d9 GIT binary patch literal 90755 zcmdSA2Ut^G(=NPI2mt~nh?pQ^5<*cylTbqqN$AB;RImaefJl=f#X=B-0Ff?TX*R@0 zv0z2T(2I%+f`zVv*io$iif?&*ukZWL`QG!NbFS-z=h2zeXUu zb?i2O2(q_d0imJ4KEGxl94DH$Jr06FNO0Q>f_{x4RtH8!g`2Ei9U8gH$1lv6zls+Y zvO3l$d^K$qbv0yW85{1y+s=<7`tk#|g_@J!T)9CeZu2uIuQza}I)}6Qf!pljBlzy| zE*`x2?L3Ab+0ue&7Hbk45+1^j@*&2C1cyeN#F~?T3pWARlH04v#NSh*wwsf!B&!lV zow-DISOlMFu*y)EN7FYT8ZlPU4E6LG3>_k!N;6(fHC|2A)1?`j=u=JTbmHGXWUyL< zpTCJ4$L8;Afp6yIzbh3J6SFEtZ&g@Cz-k(U!B|bDucp&=!3^EVxX>t{Sl!S_^?yj< z@FRH<+rp!^g@qC&5`BEbqNB{oV5fgmAtd~tV*gWH{V~zm`F}h$Bt&9>-(n-9-1vX( z_dgXJ=@A#sU+u<^42zE7@xgR;$;06$>0d{H?ah zw*O==23B+%x`B<&e<|d>A)rM_1WHyOf^4E8NVFeu!lxKMS;k|nCk{`rAPOH0dR z@{<{~yZb3LSf`||zU^oblgCTIRUoFrS1R-FO&tK30gCmeqC~0s@ zGV<4b2;7HBp|B7P34==^;cyrdAsI$MFgQ|5aUl~&S6W1*a+R?t63vRtQrGLFXn5l! zqi~?C6as;Sg9l(ZI7CuJ(5zg263O(1SniIyddRmqm36G#Ds|?~5jUlGz7!%gV&6Ts zetqOE_arGr2$KGD9}t!6E$G9Md=|nWIM@aP?Bn+bU>S}?!&YhDqZ zkzP~N4aDbvjIGhhT;s+4>jo@8DlYC?=9!H-FLQmDkH5S-ZqfYL=)YV!cJ)p>?}|3* zWMsUKu5NuCC-`evtH4(4)QP{oOSR8??fC^&j}O+^GHNDNm3bc1WlRZ9enxuknSQ>Uj@6{`xL$zROten|f)5 zT%lsW{LFglDEg)@)+2~xQ#b!yv-#3r1 z-Z-rK*8_iE1su$KVXm<8Uer=ls_SUENxX?!Xa-I2&nd|FZR4K~{_`sYnNCj5?W#Px z@YIxvO{`Y*&-EeKWB(Zb;}U2X`{A2fcAEiZl%Z8Rcz;ykuhIV?7jZq>qHyWPx8pO? zEB0)>+H>WPP5kwk42JcNND8JGb4B?Chv;n-vn znyE+2_Y~6v7;iXUOcSCY1U8up!31a|2@=R)6^U4(MO2%AwKh*1$!&&s1SUyCGrA9#ehaypOS_ zgz)kB^{8@c__E!*-+j~~&CiQtma){;Cj=~tw_O_youf!f%&B4HmH%dwpgjbESen`` zqiwAeUB(QG!hCrrz#_0{0o)#&tf$yXV7gjE7?c#IQh;9I{Q}p4N?ra^rQFOHvV$;* z7$y>pWF`|4ycsmrP|vKo7vBu=m8ke;B%H#-HY1^3P;3QF5spVELRlVFz2$_oO18GF zb_K!q!D0L2N?|Xv>y_Ewk>@7ql)fqR>e~j!PAIZHL}XEX^?;sI z`C!jg%{)8?LSvgDZ@U(|W;Qk%fujhK@tOf;c3qA--n0U)So*$d>#;~e@!>>)vVHNn zPDVPeZc0s<=^k!il7)O@-0Sx?3kYSwfvbo*f#3pq3KgD06Y=mcID}OK4#Y&@h!EWl zn}$s$(kz?>TzudYo{pP2OBAC4&0N| zUhzBV@r-n3!ys5)zGqKkX;KAtAxy@ zV$&!&YT2r`+Fi1EF+yLvQpAT@WB3?|X{Sg7ApvH=iQaHZE)oQeIw{ecR+10V)A7LT z@Xgs2CQZZ<2#_=(h%Oc}M-h(2FWVH1N(tz}D^u|u+B^aeFSbi2fmp)|AQTasj1=ZV zc`rl@h|M;s56i@@q^6u(;Sh$WjK?Y1FbI8DnNiaOUvYFs0|k1i&S!*K%?k_s&sfd1mVceXPYFiFBhMY27toEeu2E7r6Z%0ho?t1kA&NB4`f0TRKQfg1Y)kh z8==h+z=#kDz0aP4R6i2H$kC#`F7S&gYh|!?yuFGmx@AmU+#sGdlM2g63Q2Yttb;Xn_ zk)7qy`i!1RnEw$`l>(Q*!-^637BYthfFGS}52Bi5*W&L>%jaVHD`9K`Te||5?+QHJ z8-XKZLDVE8v&jIbiEtO*kRI_lUPT#_L=?A$+o9tv1vPs!(JVNVBM{=?SjCvKNn|np zP%6#VRUKDTl)@F$(;;nsK2;l_80hjx%1qX>duuWeAPlpE=BVdALxE=)w zF|pv0%<4hPe7y^=-$a&@cP>wzO;f=}tB#o@M;`LGnY8uk3D1{2KqLxaz^b_%pczCU z!1yqpb_G^U)vglA!80IzJO%|KcOR1}IVBuXolR1VI5fpz8xXAp0QcnZ&6VKb`A{0C1gmHTbTa8-as2$a-LlvYZIH@=M}p80R&{`MEQ3u0Pytc8fB^__%7ppYp!Os} z_^uOzCv%lNLC{uW>Qkr?9{3JYhy)7dplu(hPNhWROUgN+QEH5t;&M%z(3_TMjj0mw zBu9k6D}wFkk|0GZGR1bsi^LDfWykA-0_~;kyLKiDIuPEB%!Y+WnqN>&6xi8(Wrzx- zr{U9JkPx7`%`uL!rA=NABy%wW!i%|J&)!l>p3Sn7Oa`)5vcFv#uBK8Q$O#bZ4ESnxLW%yS`HMc@AMJfz3f8N74m+Q3Zt~Xd%KdHh#JGn#YfY?jDgQy;f0z zn{fQ1RHvBA5laIYQw37LiJrPuzAKpsK};gtsl}dhcyNpW>+z%I0|KS(3u$}P(5A}n7DQl_1Nn{!2jJoAO~nf; zMJP`+N63ajEy!Xai*AuTW!8WwYU3e%Q|Mwi1pLQ;KZXrSV9r-UP+O>Qjz5`WPp0H$ z&)IOB2mF>w)9%^zL|%H=B2|K6a)G}oaTVbdBn@h2=}}n3&uj2gxE?>Mc3&kRLx9D3 z-P2>k4y9h*eY2)NrtEmZ9+@!$y1&ZF4hvEj4rDi=KSNgAx**8j8ttoXtpX_rN{U!P z2fiI5A|cQ$qX23q#P#?BR#PVt3M&ZQ>M`9hxXi@?14QeKBy zB?bv0v#r1(>{DP*_f+e(n}G~1fS_tuQI(hq%OwLtKujhYMN%SRtth#>rWg}Ns*~#Y zZh5FOA40&pQS@}};m>yZM6?lc0pyFt!tw1eVXh2-dV*#E=|#y>X;Qzd7Cr?+5Ng;U z`cO2eMG7OC2v38jfe0nqUXKeP6!+-Oiq>G>9bf`iWmbxSQ2@|mn4T##Args(>LFhW zkZRlL`e8DF)aQwQMXAQ++bIEe0in?h`D*)WdlPXKku^Fu8Js^b7p%*dCTg&fBwsE7 z8~_hUB|r@U-SR^txyi1STrwJQ-)sjqVwnrK+sU~*&B7048Ne>UHmi`HfM@{XCQ%5F zCEFA8u6B*-F}iGM`N33eS*$XGQ0eX2L4deWhc+98JQ{d|qCJ_IM}tX|W(t_-R{+~s zLVbV^26&a+Ks$7mO`un{h-24=2POs-K-T0?80lJBd@jY6g*%7cspubUUrCfIE^zhtBM1|P90Ak} zz#-SE9ReE#NwWe3rV>IMxN4syek$`xLKy;?0{Oxe$!N;l0%A*2_UEo{q`2+91_mXGO;A9{68K7iG(j@m5n%kr4qvzdXsYP(g5!S+U4nyZKN65VyaGk1`LpJIee!MPa9%Oj$Xu~PlkXrRT)FGQhs%bgIO5 zVs3L~z88QIP^!|C5d<PWg%5Br5ngPyyXAxH2_v<42;sRNLNl*q;de6V4r z;RRhtdy2|3oAAT-U6Dl+W?$gh0tG@`$wc79viN2coZ^=YJXr|XJEZ6rp;p{y@2?fu zm3dFbEJ6%$>;MWNJwk$G-gY1(u!t-;8icBgJ4sYQsI=LSMtZRbd}Xd!?~$=f(y0-~ z8oLhyHmJ3k0*){T1}biKJ<%-VKqo`&TImZ@@=S5HNy2wv#Uy2#2uYWk|DfK1f~7=^J`A{Fe3yC>bNsdtw`Xsy&VmwSF(@2C!a?K6FhW_t zUA45HDCOOW{`-Z#1SUP>cV>oZC`rMHbS8@e$enAgeVduVPzCfHc=wB(Th`j$i~)7s_2lGkc;u(pUBn*T&M${Y=>b< zN{M6;DOq+Ox|+w0EY6J>nWP~modEyEKz;Rq?E%N52`iy=ECi4}2hCB`8>GAwWr9ir z-z}$uqQaA1E4^JMkPkSA00oFTg+&2C#$-wp)zW;4ebv1DSw?pU+zwGOMbqKIKyUy` z0k}>wk-`z?+MBq15KPdGduvTmvByR9ZW};UX_!7hvf4pQ3LGpTRB%uj0m{70BT{X7 zPXu9!5)~X3-PwVFz*RK!Axt&|6GD(L0YoS=muwGkrC2rKRJ3ZV7lLMv5DxdZDclwf zPnvW)9q4gyv_ZAf?zy6@MIS^0UwsK}-VmMH2MP+1syHP}QOAq?A^_-#y((GSb)YK)fEN@=*k%+-fIf#+1fF0IN&>PXNdvuswi2=GVOB_b$A$HlDV(Yb6^l2A=174)ALx5;PouObDDMP@g08 zC61d%o|w`%anWl;c}L?D>x%jKrPXvJJtIm>e@kBjBEs24FBw#`04;z{wyufUs*?d% z0oN6ppy_6#DN-1uo?8lCkON*M@$fBl4pNZJ1PGwrKk%WAVM9-$m4GbHBlu!fRG zE~ZyD#+#l@1AQ4qdm>o|D`0v{AMvWpspRMS?og%zn$f9)qNh<%D7CD1^&0}L0+l`$V(Lz$w}Ktaw2 zSgT!u2hE5o(78ZCWC3tRdm!AN$Ocwr;kx3FDwCGl5(bF4{>TzV^&Q1a3he9BKwkn9 zIj5U7!$H1-2ykLfBJ%M3xayJO?D%6gJR^dZYl}Y@)D3)eRR%s;Qo(~l7;txA93`8S zs~)KbQx)HVT7u|e$dw5i2nW*OErGr$F+hHAKqWw_inUS)IK=dqzU11sLoJabdavMG z04hH&j4#R&W<#LQ1^6`?E09>;Jnzz&8BDeH!4lzcKvC>b5mYBa(VJ!U@d6eWQUcim zwCU_xm_lrtIa@EetqUM3AG8e+pi;wBCRT{;VCpc;IUo^KBX}W}kZXs|W@K?uP_$|Q zR{-@}Cu$VXYWr9uTBW~~I; zWlErqYJot-&k=HjEC?79hg7uhi7Ck^HxIYuRpcxw@D5b>b?%^RC;4J}lFEiB>39IJ z0Ox*BrW7X@3&r#U0J$JOrYeOl(HH0qYF;~Vd=NKvoCB&{BEZ-*%03R+C9>ZHWw$iBNCg`jsE&vPjH*piXX+KnYBM3wz?5_jfF@o%T2m*_R zxWK%i?#E(jigsy~DPVm`wJQJwkDMYU>H9KiibMhvj+G#%3>Mutg%x!H^MhW1q?HH& z3!DQH!a+1qjuON~vq1({v{SV2+LL$=7SIMtEhR3X`{0zkX&{edK+6vgLI+|IeJzp~ zpeOaf5`Di{1lz^~?%@r=DcK+>AkfQAgL6QXp(oAj#dbYaPA*AhuL!owAI1u}N+4ka zs|zG+1MGp3K@VimERqPs0Rn+<25v@6WJ-V!LRt~Q38cV5R{;iA22hH?cLQDw4jKX2 z8_=T}$^&(7GsrgrG*;r{2z6j99loS(CyQg_J3xU4;gBHiiFlBb&@z%(wx!MOGqCUg zF)T5-#1KGLi0lMjZ~)(7+5yJOwmA18i#VxAgC+7sm5G4c{B~E+Zf5%1VUSdq5NQX5 zfdfEBs@>&*tktp;i@;q{A!NH=QjR>NMSB=olJD9Qh3?AZGyyONI3+4*Y32Z40innsRKN@( z${zq@pcG(rASU@B@d}Wjf(4l$FL79)DUwK;wCGA=pQs*%DnVNZARCYf_~GAX37DWT zAW{}o(#)#Mx|%@~8pBtV7##%~!AhVkrLZADw3u+fJAp8gYHPhKNB9btQ^#hw+|Tao zZ<81G>~o~)_~i%r`$iR&sO{(h3;%v0r1!*3kE#dGrQ1dd4NOc0aRTBK02NRYByr%@ zl2=FSMSQfJ0X`iIkcAD7AjOqQ)Tdz~&|n3}3C;=3^Y;gJXN4FJdU3!lK%YDXLJH6* zi1>R302g5YWuab)4|mtyqQV`)?tw4}{0G|XP&3&5Z$S-%G_%_a^{|q*2t-bYN&4-u zL^cGsk=PvzHVqcD6R;SWV-fZS2Dn@PqymIQ3{NtZ1Li%Bn8+Dp?wa* z0*;OV^cMr*6D%bF+JpC0z+6m{syIb}YIf~GCR!&lL7)L)c<`PJ4?z;c3qWHOPACTN zz^YoP*iPW{lHNZLmPiDZ783#y%LEWhf--s29CB8^jx1JCCGmI(Dv6LpJZQW_U=BDz z^+!}=QCAn_jnDz=NVY;?g7#%2l|tNxw`K$UG#_I{0VR}utr0zj*LPf75D#t>K?OakPOC1G_?G7+@?yeVvAA1cV# ziw74uIe;Jo!(c&B>jHcLnH38|K@f;wZz*LeXhDH!1cN9#6CerjPl`{q*$4^N1-hC_B*0Wa z!w;Ak237$X8G{4_7&Nt$iEs?$4RKq*>k8mK0LBDj8ibKR0oa8kj-X^|DiF#QfEFCS z83YiB;wzQ_?(GtMF~)a1!scTmaX5@2AQHCk^`5<0em3^}kB}g4Sc!O&Z&l z?rT9Y4zw!QolG_Fiat4(RDkJdscgUTV0Bi0oYTUAoDyYu(YbfJzIjdi!-LnS8r2<> zbqkFi%KozLqukFks(pPYz4DIf434@{2iyaTCiWc|ttUla+YvDjzg;TZlDd+T*Jit? zcRu>|Zl6W>tY-$}IP3_=REY|sG8>#Gmfv6O_}O~Ol%B`rmn@3CJ)Vy4w%n;bz4AIph+=Z4xVSX6+}g?c{lmA#8Y6VaTYiPf?W<*Sw=ASw)wGXw%Kf)*KYwrk3)*~X zdV1&my*J`l{{I*FzhzhdL5KzXW8uTs$9_bNt(MODU)T0uulZR;(-rxGjaRp%x-;C_Sus`y?&=?t8dq8$v}hLj92uW>g8_= zoA;!yx_-NGt54_Ia}$pSBBo~;|Mmb7rSl)x_^@&&?%Si z-tLmE{@t2C3iTzM_3JuY@4x=9&8q#mS^vLncK@8t|EA3X^?)el&3_o=Z)->_)$vX3 zA1363T}d|UkZ^9IUGdY7FmXb|+h;4D4aVo~;+=`0PM4kVW-QhU_-?MkHVC@MFg0C6 zyx+JszZGk=rEYZ7X>Xe=k4zPOwI_rpAD(SpcHX&mAfi!!QC*bg5_Rb)V%odcZucAa zd0tO@`CXx@BL$JelrFuxW%X=AL!wASD|-QxT6QVpcdPUoqWvPgM1amVbC{FQH93BU^JBvhAAvwX0i#^lM$aQ%b5!@9W1)9Z$jrjxpgFX&HRPWSG;nMi&VIc5|zwIgIDbxHc&_7!t_ z)=l~H;T}mF@F5thUGP@V4y;rgS6EjrTIZ{8?WnJ^|9Gj?Mk5!!^5I{QZzy8fwv!ty z{3zD~=nFS=Oi0C>-B47W8MQ&oy;kcl`gSI`dsFn(dG(>$)S&*8JqbUITkagZs5j_w z%3%At29kM3Q}&?d`c+GAJ@;B%V+51-FD%Y{lyfRI4;mk2Htw#7(b*!iu{}sD?`(DZ zx~M^w$KUsR46gW|mV3sYZSi(l?wPK6liBXVB@2o1%?(**YqswLn+kIbHwY8rGM#XR z2N5>FT54{?1B1#X2glm47OC#_H_0$8HlLbveBi$Q@}qqWRZnG)jZ5G**I{ErBl_bi zH{!&yZ~YcNk&}Mf>iCltvZ-BJFskvhd3va8fJ3r`|)FM zI)fh5on4F#nZI`)-+yONFZb|#WyUpq2j%B26|vb5boMVG#HL@+cRjg#bAf@%w~6?5 zd84xpYnJ|kOh;$!`ox<`Eets|G?)v0`D?x8Z$eYaaS4HsY=gI)(D`YKXCXGFC7 zd^sR+QPyD`pE3HJEi%=tQd>vD6LR8fnSOPnFP&{=wmR)tq)zZze)DL?N!9An<=qx| zg~1gDwd|yc+x-K>m+*^;4)W-;bHs<3BolJdPPqFK<8vn!eB#f?*<9Iqs7&7+zx;v7 znVP=5CT(2hT^Whvw)xx!i>cL-g%=dNGQep36I<1pcAaLZN4azS6Ji=y1v zu}*RKp?4qr<#l-)()_U_SB!E>)uzwKnDQKJ>-JbG?DDL#2`IQ26Jz}M|WclJstaTo~TsN|Gd%5l{&E?89k;5gE z)8QGLo?O?tw&lX}p#yvOuR$UDvZh;#mq@n{eY$1(bID*>vVqM~AGZjo`mX+#iUm=< z`>vhDZ{K}faOqA>#-VJ(CBzq=+wbdCy)8d|UGe-*{WEKYnV%HyuIWqlxG%Tv!r?>W z&F3$j@Guj9L{}&pS32Db?YnI4k>`5SJ~Mg>J;%TQm|&B0qCTVa&KtQJEbmnaWA|xmbzh`R-3Kvd`{j+&2#H~ zH=VP7GB7!J%GBoOnA-D~BIoPl-w)qBbg{ciTE`>POY2cDAxLVoN`~VqN;5C+N2g~QpO+&*E=i?0( zuE=$GtfI#odBsk5FK`dP-h#M?W9f5`6&q z>6G=bl&IR{edxf@lcvF)7ZxH*zD0f*ToE+sD&zO0cy8D)W5?^x;$a2CRvpj024SvCmb{DZgXz9*l0Pk_|U?Yf#*IMof{6NH=a^WYBaUJ&bVXA+JDPB zEjBld7~^(zn|??xb(c755OLzMj>Bisn;RA(u`^FbnmYQ2?_T!L+j_3sG`Wly6kIY= zV%_N0IwJSr{reZ(mQ9B&7v*j-nR_;I-O$4sYp`8$n~iJkYPUm<>`mqGhCCl~@tnt{ z*2VoO`x|%kOq*VLBKB(ZCFZuvo{D%hy0~lHztgEH;=9?FRkzfC>UTPE> z>eiJ;8Mk&g6D&tkZ29>1XZsVp&wqTdtCU4ELTB{LwD>0sq>=Xs&s-O~M0Po>zg;vC zxVQNo#nLynW7#>y6>EAnZT$AYN`0_#`Qgeisp*<1(v!P{@q{eO?D6b4YUrhrabjm% z#giRpe(tV}bV>>fMO`Cv3eG>wv>u!YnIJ!ouwf_$y?K&-+AcgesUiL0P|SO7{o5se zN@tu$Uf)1%IYYSgQt8YuC@o6+-bG>vE+mI4e6_Y4`7Upl?%Vp~{-p6=Q0^zKfUs7r ziDR1TP(FkEA^q%A%&r_7NwWyBc z-r!mo?d;OMg=HSN|Bd{B=2__c<@b9>OUZ+B2Tna2-{@P!^H$k%hx722{;hD%o)-rr zQOjo%4;zxM$@!%37jn9NkCP8COjVw;)QXAuzPR@7Gcq|}?_j6f_s+_YUbf!LA@$v& zO5?9`559yQEN7j~M?!-qci%3;gr(}aQ4VjYe)#3Cf}ifowtjs6yk{&UC;p_JYa?&( zWnSRzB4pw8z3|10RYj+sJB5$$U~lhDi+{G*CL(RdWief&W((E*1uNTds8#dbSGB0d zgb!X09wpeBCeFu?r44tR99FK?4gNBjeZ~CrV>|PU+8yZ&`*%)R6}?$s_%n%Y90h==`yx8)~UZ8(1@f_LKeWMQ-+~&PCp5$s7a9;iLYcPs{vh(%VkDKcKA*+)be0 zCsRJld|ADI;?m(w#xk&?&nJ~K-L5SExZ`Tx-X+4->)S1l?U6nAuHi)UP0W)_`LUqu zgw~de@{F}X&@sXz;{m?)t1q_Crz9B%Q}=kI_;~A8PmjmG!I5WGUqs{UXKr* zozcjZ<8azW@uO1?pHnw19~_ikD&sL|H14xpY5QUK0n^;@GL7cm%E+kq`GrPKZ@xs} z9vOX%OlY-q-;p&_Sljn>XzvRDQCa;DywmFn0;8GhlXBe4MuN^KT@O9_`f=UCo9ixP zIk6u+_cQ(MRGlv;?`-7BY`-?JmllUQ!kk2z=5#46jxcNue%kqM;R`FVho-@eO=@G_ zw{hcj?~Yn#X$OkS0`(qJ=O!~Aya)@q=1s9#-zn9ldNjQK{n(BRT#T#V^nsX9JHNLW zv}&TZa5t)&eZ|(yTAdsW>`7}U_3IRR^T)cbD8Anr+xhSrI$~7QsL`$?BL7H6KWbqK z=f~cgOW#J1<-g0a+;Qpi#{@Z&%A4T+MEvrPx?|gBgI7KO{@m?O%sMq4o?eWhdBMom zq}A)8r=7d9-V9zv7>({hd&cIL{=5-VC}=o7U6@_B`kAd9y~FZsxz#y-#xD68qf0-3 zq?cM9P&aOuPQDv|O}F{t$d~z##8%SK)%Uq_wpysd+zI8&wn3l0i!PQq4a!^$4rQJ4 z)r3(>jvn4~`hec4K%?Njd+O$!rD9%Z9zMOFsJQaH$)Si_A)aU6pIPV3{XQvk^BeE@ z8JogT{^QcTwU)-oxuQG9mI#@^;;{22y-{~LWydL7PKvY|H{i)d#^3dywffADBRmaD zhr>E|{DLOmuC!@C!AwZ|s6D7oTUE0CdR_Odnv-dO$h3OZ^HTG{d5614)t+CL_B-d_ z*>dEE)T@sdFF#8G@w`8%TT%DJHuo3o+XEVFaM=?h^xft1xqfEb zuJkSpd6askBRtk|Fl?WOS2MQ8cSk;7hWsghADmmoq|LfVK2BG$%ASavof;*|Tu!f^}7J1=*Ry$rCTk9b6&OJap(<$d^!D zQ>6LHxfSNZ{b}Zr)~`+(>L%^Is-?cSL3d4}$TQ)Lo`or4OOJ(E0ZQ^t{?H_Ree(O- z9hl^+kmzV7ZLd~e>dx>qy5i2=Ih!4c_S7(^@Hbtv^W-ZjgUD51%3A$hlV@`y4@{*8 zCwf&zaCO3RvS&Kf4>WPYc81=%NNcu@WnWuOFO1lGJ3Q;<>h(vjO@5IzKOPY}nEqME zL3WQ!-NUC1_b+sPoTbO_9K>2H{WSWvPFof6n7lXm#kDO3Ut;E_`jQGRsJ!nT*ul1p zrzQ-XUAeA3u=e|I&zMb*>IRh_-D&$UyaGtR?yv`Kh=BEc-xOZ2EkBzEzb}8~`TJeB zqLy$46HzOSD%;N-xFP@c`?J0+XE%ng=9-;KOY(mZm~1f3J!r~1MQ<%Mjoy#nfqcO} z8lElE(omUGQ>^jV%hytRmhz?W`&_|JOO01^OCH~PQn|_VTT#bkbr^oh`Xe%f-<2O| zr-aGJsqW8wczT+7XPWoGxHV|~VKt+78CRH#>K@U~moAH3vZ>(0#UF)p_I-&(#EM_g zxnEFgW_QP-9Y1dx`s}@ZO!rGzT0;Aj&&iZF@e)N*dd7p>7gz0E;IQ^)zS?kadQoM- zBH6dsSO!P;ijwwz+Rhr4>D%v(QB+Lc7^8a3K{eSyXYoa^$93D8J617h+ahvK>M_r6 zSlHlo=T_wNXBs&>%cdAV>fVs@$TH)54((?0wfA0Um|1S#rtO_bC<|Vx*120L z>Os^VEQ){bY@ni|NgR^tr3oJL=i8*7_!=ta*3 ze+Z&S^`l>Te7v>j{FR5}u>Ope>cHLd?$lt1Zs(?r4cb*vM1G>mgEJ$?7*B2m^L5-9 z*Ti4wp6ei&Ub!6RjIN=te_mVbe%+%5}zUas(u18 z`pDe_YP7nWMY2ii}mbd@L_YQ=L(4H(8XdOZfkkM+IUhjjJH@1(qRFPj~CFnn6Y zfm^M#c}W?j-q25Ik1gLPDV2)%UiY(nbX?sQ5i;g~b$Z~tkr*AZTvy1W)Xk|QU9vXr z3b}O=zU4%RYwX7J()&BZnQfaeU2gcA>l!~6omQ^Xd9pv*QLMiFa?qoBmBU56uoBp*Johkb%^y!B>@ zexmjq)#@bObls`DOFbQ|Y6%$)`^*Dnk!NsLH3#mm&%AID?JuA)}$E|$KxwwW=0QJczI#0o5iifTxa@Txd+N|jJJg?3Ah|* zVVhZq@0s;mR37#U+v%Fh-`z(;8$)?BYv)SS6Ff*{mu4}e=fEXv$LdEv%|pNckbgP( z=EXMq>SoIeTPl@(wF=rUzn_b^;wN7r zZn)82$*(PFUm@$XLt4#+Wh!suFMV!{y=vSZxzuj$lF?@$i0gOzX)CNY2KQnK!kCe*$__r0az4l|U`~A0Sn(%#7P(R6M@V#hTkL&A0X|nV! zX2R(6S#_maRW{D92Yu6)%kr`h51eXCfFPyb%V zCTlSA7VX}VX)%86Q*iz3;Ms!xbq@Mx?9Q(1;;TltD|5><-iEyzpPhq`9KIW;^}>mz zXLq#Z$!aaq(xBW&78{Np-}JEQwA=W-+z0yiOATw@KQcJ8`?K9ebV(%tx?c-<^7|+I z$lT%#gOiRP1@i?>_1o<8T!PQ{mMd(jDDctIvr)Y|acK27`A58oVAbAlQcaq@!;hxI zg0Dw(9rbOQSvV9*`r(+Z*C`}r;en2GGOz;WF~gUC-H_qs$>aac)MWcM*R<&Q;UiU zb#O5|8P{qR`p(6+UZOwMd=#;Fjd#z`|QmvAz@T6YgW zZqLVf8qP->B+=7431NkK_|sbF0$hAMbiHSajs!>uPJ8A$k!Zc}b%|VTjmT4M=&UrC zdCa$CwRg{tyYqH=dAs(%dS3c`Yu^u9<5Bxk&%JZiSXaZ-AdYj~0wbkeN=lpJ|*Q_=3ZC=@W-bCQ2 z|3LIwcA}JuImWp8#Xh%jWz(*>f-pwar`@X!x+6cAzx^S*SVmc6)c$JX6Nh(4Ze4c0 zebv&aZRzkjp?2L=_t~YzvxKKRk4?Slm~LBKtc%Uro-$=>UG(kVOO4_jo0-9Hqx3`d z4zx=P75?7MH?Z*$B9vSpLNobv4y}q-va_2e*TRJb- zz|<ICaf@sFo@xF-$3$_8myNs+edQ&chnmh* zV_~l5$`8uNd>CJO7B2pFrIYltu~gk z*PA0#IpuGM*3z(XxtK9ni8t<;&IUT^7mWLvUit$TrqF2u*}mzg>AY)mQaGx^FLW&aqNrj_si!44|w<=e=MmtFJF^?AMt{vu@1Im z848fq<*`3m@w+x?TN@oIm36cf1Gm2^Gg@~L|>Zri!b*6^%1^`ekFdP zH`qJYwA`?*yv_xSj+UntvX1AAWsiNHZlCpTH(j&&_3kL&_Xi&eDHG^5386 ztVFLZ)2rczJa%(G?WVKhlOI7LOIx`4h?R3Sajmdr#c7yAqu6zQ;7tF-&|2-6k!QVw_0*%kU%iZdnQ2vE>KJ>+Y-fS|Vxn5|(%9C?4LR7YOTS+* z*on>62)wnURnO@`HQphw<&AZdVzmt)YO%OE*zO**G+%WM%R#^5T~Jx?V14|mzNJRl z_O2<0Rrj`eEa60}aA$lPRn8HwCQy7DHQxM!Ts9T8GuHgr{=M|<#6(}y?J@j{ z`<$EH=$*A|8(xM9ll0SKqpH`R^K*Tj2Snd{dMrUy$a<~un7xc)`A3(x-)M;bx^ety-}&CWve~l9DDg_m7@nhQ*OgkCCr^Gd z{xO`i@2U9W^o7IDUthOoJz8aUE#w{Q7~cKB!ZyF8%#a_YXNSWw3R&3DOANp9uMs&} zI{6;k)m&$EB7AVIgPwO+Ozn$b=XJ%@fw;1>an<#XdqD+C+Ydep+C#x1e?c&{4Wgh> z#uj~7EwVFM@!NrSVSOd-UKz3Dn?D_nxZ>+9x07fwGkaygmqrVYn0!~{Mr^O{|H*O}fqvgDi5*3KKYofqdqZxrs$Dh!)>lCbK>vQ^IpFaO;9 z)nfCF8^2$5gWuqgf`_hj>p!pSSl$u2q2Opu(CCmbX44O+Ul8T}r-paBZ*d9PdEe#2 z-~WQ%x{fYME$q6{phmis8s@9}UNOw4G%ZwP?B#fgC1s{5euJ62iA2`G{#&D^5<&mP8h;5$7}ZMnttt5T8&Yts^@=y6ht537d*rs{Vh1PmW$l?Kg`s7u z@7R9RTE74t5Ikr7#;jQidj{lc_>{AWe zGMpZE75v*jc{20Api!;A{fY$~jh!?uk?EzTc?hx+`OD5~+Rrlxsci)bqPn$Ifxyw_vS4;U~E# zUDIEA{DMM@PAOe@xzSDO%G@-~y;IcoEu_ZOpOzVD$@{$Yi7@g&Tvm%(TUfxz!$o~l zo3{PbsMvZXF|b)-Kz>(~j;i6t70kZ7Z)khxeNCEI@gh&RJ^Xxoc2jZP=g@>+xsXo> zsUgO14&Io2Is*}wZQ3$6aUKz}&)Ow6kJ-7&P(Qwpm|skM>_AS=v(2a!{=zBuQ@6wL-&UkMNb+| z{(N^qrNLx$+WA=1t)Z8v{gTj4PTifB+b$p3rZ(WQ{kHS`ZkI~5OWVS*$JZaJM{F-C z3QnP3DvXO(xRffJzhJ#>@GnT=w?l4C(bkHEdtQIBST180=bj;Ibj!9a2&3OW;Jj?< zMKT+2W__Y@+s(@dz1L5wjN0#z4}Fz;Y!`XpblC+}d#^PVY2yd^9y1ZsQh4EmqJ1kg z?{82Q!!ypPOk&L*oLX`7bzgL=;aHq*;IV<*+~daV*o{1Pjg0#Nw|Gr2E1g}AqV(Cx zhAm%s9*RpGg`ag20$bln*Do3TQgV7}&S(1}S>hrGe?_iPg=Tf!$-e%ckJFQfj!BJo zRs=ri+qa=vZd#ymMe_>vvU-$`Zm$RNHh5Tfn71f1ka!{sv-_4A?F0I4YnS@%Wz_!z zUk{~x9a{GF^?d4Xhuby}TT?82)bR7kvAjv#NLG>U|D#_Q*55y0_X|4ntSF{c@N6UR z)-pZb{~7cB{a{kBJ^Z}kp3B=5uk-Px!GZEh7cZM7R9?F~_CtO)YuSsisMueSAj4;@!`J&$d~hqiU9LR5D8!%zF7ho3#hbS|XYC42Tj-L>Wm$T?e8LNJNE6 zME%R8-|PL)CjG0V-<$d^>A$zBKW4Ed3N8T(_DK{>`E2#=7xeoc;jeo@X`_Ej=|ANE z!+`&)&~F3&i`M_D&|jvJi27f!-@kKSDUwr_DEQ~uE1P^hKcc!kRN60iIyHFuQ2FfX zE1|Ld=K8He7pCT$2~Yi}hEw&YLQlO}wFP>(;RuSb*GNiXYDio&4ESep36o9CLa2 zZno2gD-+-AnznsfAMv`Co;^HwyLkLn)Ar~0)%>SZpIn#@@d58r&t6uITWuqINS)~I z(JI9$C?g-yKe@`W`uOXi$Zv3oUdObR(fo_XB5r)(zI)&wiTs?tuvbQ9g$Xj^Nyx3K z*P!ci`jYvuu6>cJSXt-R#~VHKcMMgw@h^;iW+$YpPOsPfP(mXHyh?I(tdSjWW1C&^ zn^H1qyfd_SbNoZ+xfhS{0GO;7eV;bl?202p2Te zWVH0BS?1ez^}O~3eczTc)EU-WbF2N;0V1XdPErB2jlH2^=tE;Q4x_Vb9f9}lgbni@0&rJ6>-xL~p#ugpK zz3cO6^~wi(T9h@0IClSu68j5yvKW86-;lf?r-`J8^3`tB=gMhH{LVU;-$BwG6mcgk zPVbbpP_+s$3DLyiHGVk-+@vD6bjb#d z44n`;1A0?;sWS`Peap2No^880t2B*A-nO5%v?ZT09?t`D%2oF!lxbGXVk|gKTU|5k z^$om8dBNZyewVa);L&p^F^@LO>*M06mhn2HWge}^UHXFgZ34aP`qM1<8mZ)K-NkWO zyKB#6^EC5yzC(K8muBT*EXFb3O^*!a@2q;S>yYI?j^(V13RO#_v;JoxT}RE?S?1TF z6-FOoRTY9)xPPbU)qf_=pp#ft5V z#t>9CLFSzh<-tBPyHXv0WSt2J#kotbzUtCtt!2bFh~wPLdqmOQZ8bU{2wn2{9p=9j z0;N)3+4^{5cJLJ*4WU%iTO&Wur7Fzj*#d2tbWpB9aLe~QeJCLf?jPlAd%pbzw8G~1 zD720@YgY<_dA{*9M?y!F9y5(Hu+{L3+{(E(MB@E27E$XYOk^fda!hY$Y7@F-2hSb} zSqza1eNR$Me!hN*EuKsA4ds#C^T*{U%gn^4-)ybly1RH$F5`rPL}L5jf1HXBaY8=) z0iULn%?F3M;p=d%SPC8*?q0fEb{}weUVmUU@KL#_9%UGEq+GHbx#8BCK%mm5!@$-* z%&de>z$P6we*uv*7d&@!aHNWf7W9IGm!T;TyM|)5)PM`0EuBx|?pND_uLTZ6#rucs zWRp$2!`h=|)S|<0ftOLBAeE#zifi6iP4-!rte)Ed-9O(%(z$o9;ci)j`^`A<8hw7R zwl~{D?9RFCN)}c?$iN8*(5x37fmES%IZ>x0N{ zb+YZOn==MFZa+~Q_jP8rMNm@AOR*3aj~v566FfEjobqbj+v}J1z}*p!y@A5dO$!GF zcji7Q>)bt8vzscFn#Zxd1#;}zU7t7!GbTZvI54z*3Y`eT1?dhg$sQ{_B{*x zS@S~+r|8=Pt4)o(xS()$_jM@37hiDQRlhcQxbSFw)|fYk>BhdfBU`2bjy<(CyV3Mm zs!myCa8+Hqc-Lw;;A2eDN3}lt#h|9mSJ%GW<3o!3j>A-5vDliO* z(#(1P(JB9cu8A&@d^}bM0}fulHWUTe5sv2VXl_neQp&Dg#29^O1<`xCpSp6_KcJ1P z9Jb`?9|p%1-3?D2i40xGzaf=XyCP4;pyamXNx>aUSsp-liq2glTqKkPr)1V`cmqrR zUYd&;q~WGLJniT0ft)y+^ZrwqJ{lV7DIgR9)ILOhuk-CU`fs7crbOixAEhnZ1X4K~ zMe+~SX&mY>ozCJqa?-FOR0ka-ZO!Mw)9M-VevJfeZ@4fF`C?PMvlZmYEX#H24@!AU zHMt|3;Y^`@%VZDma*oEFUcB#no5=Cv`dtX6C{^ZuC zP^hp_{V_zG^71?niIo{}udf$MW9|7g{;}*e;72qHLFZ|>%OJe;KplFf+BOcor~uw% zlNm8pgAY#KO5AnN7xQEc;K+OH<%zVLj?0D{txL4!LkFyag4J1fv$U4`2RDsT8OuDd z;U?+4*{b_`!5h-(u&%{}ih*z^)Jo{AcuMxL=k^P(?(8lH%MBh16*buLj}u`!@Llmk zPCSnf*XKc2+LFDDE%Ji2MIw;~CkjO#@}yGYVy1rzMVksVxN~tKAxhvRe-e z9}j6Qb)4bJX~zP^IIdVA&6l4zv5q^A_-;)!kSz;JoOB{6L#Rw)$O>{$#9Jmdp{U3X zbY`9wzH76;fb?-93LI*y=2x9YY`6L+u`XG%(^j28cs5V@TbxL%`;O4{hui`y0LQYd z$E08;D=zstO=#Q6o8D%~&4-6xiS4r^$KDYJe$$?7wa=dw{sP9RS37bJ?$pf1<~g0M zu;SapW>v($!U|H!8Ql}9Ei|nD0NqdH5&Ah$1CJl7jr* z*+=xzE)j7j{Gbadhm%{x*F8zI=Y*$wK>807Ke*ZJr?sv}#WV$}m*x(0+VEp`U57rW z$wk!dVG}#jWuJZrybAS*g_!}d!FqR1CIzqiC?E_l_Q5ok>d*Dt@+gEj#lcZKFIfj8 zK23J~BE~AL;ta7r|6NcFk!<(l@vV7UaLc#`W!&~HD!XO!Hh_CxGWENDy9gh`R&+OY zGyU%7X)tI?b6oqHc7ygom6W{GCqRB}!6Wb@)U>8t;nNP)e)NwUrDoofKa}kG5kRQZ z#XHa@pd`vQK!t^4)8DKF6cyS{Ftpi1r#C>%(*79D(0#EgGn6)EwA;bkd~c6rkxQ3) zP8hIIrzEd-0xlIu4JX3aeVewYegC$&xmytlId-jIV&l=%op9<#68W^rl^Ej`ty?uF zJMQl*Td4@0++iTEB4DGz;2hH29n{AC3+GQQ@s=22Ow)euXX%}%n= zMyi^O>)AImtCVc_nL_7l(Wea)D}EFH8?L6;lq^7y4=kQ7tc99>dx4L%l4#nSRw2(s z40bGdGV4^ptD^O;yy+~r4eylVLgtz0l?}GqmKmfxQb7}Mff0;1FM&TBfwBP@0)O1q zWdZl9uwlcp$3WSn^DP0%KOx{=ZN7TLUHkYydz8Bp;AmdXvfy?nAYBo8=%~&Ckm>ah zWRhRiEoiU<`I%VG`S}c|DwD84XxxqlaZ3xPFkJ!lxQ z!P0nLt1Z49+d_APuBb^~fAoUyjf99I&lf6-C|5DGL~4}gMXOU+1WDGMy4)+3j+sU> z{0Rw{=w$D6B0u=Z{?P8m!;3uld$%OWl>g)J(ZZ558 z?OnVNHt}L2n?&ofM3VoyHF!PtJqYd(v9>VZ#(a%ERJMxmC*UbaWmgc4KO5WqVOKKw zEFuo;r)~0$Ew(S$a&B2vI&uhHU;Mr2L5cQ+8q)hWSHB2>YWNki5vt|!A#D$~ONaNO>SeUAus!V==Dv+eu*nBZFh(W7Oc6Efv zy@uJ+x-OqZ8g1|s5^j|WDpdJa-XDq?MlBgiRC-9*nCrL~~i9xGYDJni@)q0%8Qa|4#cstZfhA0?h!b0Oj58mV4 z;g^}n`aIye*lW|H1gQDae;MZtk=Q(qZ0N$^=jnRKp9AA=2Nm*cI?8GFjBPOXjRL_( zYx56~I}M-g0U1M+B#Ot^Z+C(N$z zG}8I*224QHt}zYE+~JkrkiPWsi-c_AbZW+&Ed82J8X3ynyAbA{u5=1xqVeM+Cf5S? z4-BDnXX?dYxBQ!mBRS2mf=e&=QV64KWmm5gKGEoz^Zi;Q<6;8@S0rshge`}od8~>f z#rn1;_97RL8HU_XquR??^C%(?h+vt3Pcad1j`k8eiy8t>P)*BFx8+X zd9;Hpdv45RzRp#T1p#qRFavw%CWDfJL)JfA9VE?Imf8DeTV7N4XT|3rngoc_hG@H)Iyic_a_F7D(V`H7?3`#vezG z%~vsLF1Xvg)Fqiqh$s=_7JV=3Hd)NydZs_*d zvCywi1yW$+<^h-$vj<)~7{CI(Ws%u}%dWca#Ja*Q&4$;!Ggj-TG#aeUPKMTxpd}%} z1%(g(c``oJI1YSq@Syd zYdNtj0{Q!j&a_}y_!ca071j-R%HEW`(54#fo(RJuqhPbN^LmNt!8(I)0(d4PTtvWW z9s$!Uq@g-d|sAJuI#^|V_3nnBFJHhB!Eoa8uP zygO!$enCX+QlhNJO-|Ot;?#yRu_;EGw@OBSaeN;6Ju@&FJCb`>5vw=`FSjN@0Z_Sr zfBMN-8`>C<)yH;Czt=!Tl0x(-*?F@6Wt{NRk_{&vHG*;i^=J(jcCfM{Cf2U*hf>ZgFv|%+hK9A_|Ia`Y7w7MX4bacY#6CQ{Ef0 zhbkez2zV?%J=*H&B}d^j##K0||1{wvSKa7zTu$>QTB)QuueMcnrOoy@@JV z9mT-Ua7OJsMoawoI8$dr`@{ByWB?VF($_FuqF8TYJ}%q5 z2F+3qCXiM0p~M1tRUbUAnQt7wsE7m$KHu#UqfijshdQl)o6{?wtG2da_kkPUeD#TJ z2uNt8PnrdMunyi?bg52cuN;QJh0X32KR3jS>2$#4EUd9?U&B>?WyAYitG}Rrb!w*FuJsYi zw+jgtQ7&vQ^yq75bmcoOwx3F>T9wbUhEn(e)hS^#`wG%;(Nkm49YxD#$jN8Mg$fP% zUdRcoI3-(N9hAdUZ1K=l@$dfvY85|U)zhvAQVNQ@qN2sEbvWf(*5lNA5x!imx_vKI zo!d9CsOY2EDOI&n@^jMzic^AP{#_Vy2$9D7kXX5E9a%D0dUn*|o*_T~wPO1oG*|}1bCX$Y*`;om<0PTa zAMo+0k`kc*utFfP8NlXx7h?0mF_Llc^>@aOnO)ys?B$~XVeY3i^4(xXrkDDoR?|jK^i^|;;evhPeCC8RN#$d58>fl z5QWjF7k>f3#nLay=219qH8D=~Zqq&RB&kWy3kas5nHJ-#Y%gw$N^EnzDZys_I175c z@?#g|UEDyE{gVTDC)owZLNm4E#ih0WhW#!KK%9p}DjY?92c&_?e%Vx^1&7wd{_V+WF zi)27sUQdbH_orsI zYs(29*;awopP!m#$p>*=g4_MS3GJR>P`H(ipzZR8sZG5=*RMg?Lg(T(b?BSwpD(NU zqQ!p_88-^slOTUQt`qSeDUcLx&26XDREkQu&97;r_o#AUB$42|9jN2O8EN?WHjO8Z zV=<1AUt)4N$h7%Zfbbm)4CRCN#H(~xy-L!7y|ajeM+w)GQ`Ai>_aC<^crT(Sn#CT= zWezWjr6e+ts~L+~J{w5$9a@>HI>d0fXeN;FUV$?3IRN$P2kTL&EOj?-4Mk#M)s8S%nK^m{TV$sd$KA zc?i>&qs?&!rya!ty&;=;3i0^uN=9S{Ch7j8wUv~x&X(?>qMwHCaiZBS?~b5+xY$#b zH?y-aX>uM*KW>-50IrG7>VvDMAaz=C4PEt!K*0Q)wW%Qf*dQl()1^;$6`u=pu-bx{ zpGX%iHJ>jmE47-+5{fsby|sbef5Q#@elJXK{pfwNJI~P(obx+Gf_nC4QM0dwx6n7m zoJ+fp*@OdR+^8+YerwAGf~gnoN0`c|b^^R;=X(sX*y+UdJzy#u26TFR9W z{(A#=(Z{xfoJhUteAbFzfha7N9~ZiR%~lLeZ&$vQEzF~v3Fo;IL)nvNh+rSs(i zE-%NKakdb^HHG(W`~;aJ^_#`t*5ikV?U0wm~VG0_ZRtoR&Ats-!FB5#s& z^-wBYoeY?w^qI#_tZ)$VJv&wDJ3HuTFa2!0N|1?kX(TmH1=+#bkRJ=?JCgQkZzfQV z?OQ3-LyYEL!lBSI7kYFoMStGQPTGMRJXEhbt!<{5EgSx^gKGIuk|k`NXc(n) z6DQGQUY(Z2^kj?ERUOBT0LxX`%f>>g7l)^1zDJ(g=ZtRHHAx2hzs1Spfx*WrGlDUj zIycPTt8pr8b{>kV(uu&qF=t?fl|8YKgZo~sGkUJyC%_C@)YO)mlW1Ak<}NHkeJtd! z1g3Pj)@n2#LhK%zO~Y2<3hUThpP6E38gf#fjW;H4ZdQBEfLrjviHkY#&@_>_e#d7$GO^x;EGxA;)BJp9_uUYFkLUn zOH02)VQVQfdjE&WzT1K++}U(3CCuw`_>}%~Lrz4tID;=v^4oi;)=H1`V=bgv$cPZ;{OQ^iBJ`-`!CKg)vq2 zjEMJ7a4bkK@a!&2ZU~s#e+vrAnM#LO3^x*qzr#g76sY=)f2=$*vA;s0p{$%GTx=V- z^=7*O5c^G3RJSmmJdLr#P&KMHhK@!Sf3+Jj@GXwOm*y{E#7k)R&lY}s{c0Ajf6hi= zl=E-BDOQc3RONTRLGsfK4E(1A6`%P(4r<(O^3(S3h~{({SSLZiQ)3^@R&^2ve ziwhVh8GS`pXK5LLkwy7B{?gj??9?pCW);T{uBB8ZM$}&UD=4J=#OfN2dYsXVSaXly zn_cUdrM_&z;fHOQ6;v+#6)_t&t%?dQN}dLArSh4jm{OZ+zj*^G)fUDpdK;lLQo!i# zWx*Y$95d$Iro5<^0(%MmxG2}Tz%NQ(C&}2eIdBjgr=?KvlCxdMnE$ko$=BH@MlKXK z>mQYm%3k4*&BJv4tj9l-m0(mboo*9R}}vl3=Y8YS!nGDX^8^&`ZX1!8i=W z>InL9Gp09Z0xNk;5;|YQ9#8XlKWWKV^U9DSDHpFZTXLL^@BHo(N`d^$l=}&*3P7f_ z1VqJL4Sh|ZrgEfPi=U^?UeU%?uJ`E+7l3M(IN?vgke;meQHViMUi|hD{!W$<(Z_8q z=`=(A0>`*t5ksU9V$`Z?YLcLPQ85LgFj+CcqpAGH@X~d}xA??NL(pC{6==VtvJA&% z#jcbU^GDndtzZm&Bf8kHWQkIE`#;L6w*BZD!zz%w0{iMCgP%I62X zq>VeD!*Wb{wpUYF1&b6>XL(-btA#Cx_}KXNVyWWMy9Jjv^Lns$jcp_mgCKovk`crh@!XFcdXsf@BzzOX)^g z9GCUDn#*4{ZfzxVSj?>{siSSl%)=%9jiaz)p+%kV1_gc8g4;A-9L*@tdckhq4!+bU z616Q)fz_uWtnc*_`Q-UK)dcH)?&EiY|_NK=G!ThDTqCAFwgvJ z-n9pHN^No8TYh=-q|bhn0SQ?xlaTT>b@8!Xaufl>{P%os_aZA2DslOyu$24xDmUzK zJn_;r0m!=4<1mpbn(q4Dl3oPk+o7X|3#F#>aNr=Agw2`tET**lRZTMs1xKFp5Q+$6k>^v<2#+hnrvtruudCJ2-%M_AFfYrku zpKez8yz=!~{E(sIrb40tY{PYNTpc#@6%n^3`3%{#O9QM`qDfN)7Ywg z)Om#g&qJJ}k@+;t7F&>2Z3U0BB#vzAzPhFmswA8s5}myK$QwrfJ`n>8oV?2^M0{}! zn%hE1+)u6Qyb?ZGlmyC`iRl!zoqnY<9$(ho7q|?{84jopW~LrJq}s@)nmO15keHZC zo#`;jKG_I+^uNQbonhIq$+SIMOc8?EG$p-b3D9Q4UJF#CTPh|}ULlvgg)yCcpC0G` zRb?n9ROirWDKxOEb%V@vB53DK@albzfIY2{59DQ2TH**CjeGZuYxk;b z*tphg90K$UE~_FyM%{?quHy!$sr^C(G#93Pa0=d>@#oN>l6O>9LSwMzEZ}alAUa{WWz8}{{Z5abo z!Qh~|EyqP1R;Klq(;W5Ihlyx**I&OW1Scc05g?%xS-6;2j$i4|gAbNFm&I(nn*=l=Z90p zqy?^VkRyvmkos;Se=OW1a)762f$4e+MQ9m$jsxi7kS&YT>ea|C1ZhE;t{oCsiUOqV6Vg7zAVc5r(;#!)!A~1w(o~Fs=QSGS9edqn4v_w_8s5!l!QhTvX zE3uvDQNcs$;#&24Gmi-RAE0Ux0;Qo4WFj(DBA|K^6JU< z0Iqi=ms8@4p2Mk@RUBR^9uYqHy1Kbm@xYTUv9#}?M#2+(yhiRJ`|i@s@~bAFS^vWc z2Mk!MT1}OACDL7!eE>MH%;5FS!?yf>3gZ!39toX3F=Nca3H=TR<SmbAmr(KO+6O7WaNh!4sn*_Wqc@kqmTDz&xDq8RcEUZv163yjN3t=*h4{ zPE%(@_E=ox}9E~T4S)nC~S*Jzbq&oC6D+WF7BMRS-aL8*SPNM(LAxRMpp5{^Z zZR8YGTEjBa!Xe=oCFvyZ;v55yT>`;Wd&r?osI1E9$YPrnBqV2a>cKpbrYIlv1DCxQ zkW|y_217`BL6)G3DVV$xA=#quAO`EgX)Kv?VOPsCN;v0b@LzyDj^Bt(NMF&t98D#t z{uC+9AgMW|t7ghGxUAWmqWaoIlNe85C=z_WfakX)oM%bJjzF@Z|1@;wK#y0C5iDkx zUF7wl)7HcxJG#d@zaXUjonLGCGEECSem-A}vn!#=9hURQ=w|Wny8C-Log=O$oVR=d8WN7Dt&c*0WSH+}KCI z_{U<+cD^CC;o&VMLAk}%3G@PLE64WfP5<_#_kMpa-u{#COkL7q`a(Xw{*$D`4RDW- zIvkANiR*zD!Fn#YmC|!6R|Bj@>PL%37|s52KI&qcMA+~-mtuVJ=|9`(*03*_MB|v9 z2OI3!I~_|%eu~W-!oVOC`VR-@>S&lr?ttzks4e#eXmV&sSzvNwRi=L&Ck+E1-W^Fmjp1{hi-^@?Bz;h;79&hd_zMd?2o3LI}pKvfd+D zdKEb@U|0F0P>EIiCak(XOgDCCIkx#8=9cNO2{v+^rri0^L#@V`4HT*b)3FmcH6sJ- ze4Qu&VR$YojfQF<${M>n<+0_S>7n3T#ZQO0ZR7JJ#Y&T+;*M|*7*j=*>lG)NGm&Q4XSc z%7QLAcV4#dZdd?|tENsqcqm4+af3qQ->OZ|h1hBWe4&_QGmTRO(vFaBj{ zwr!`{SgvMFL>DO_-W+je+RFJAF-E=Rc?u%!;8UAYlG&Wf7C9u1oUZ4MiS5Ycbo0jZ zM7*EH@u8@%3f)0+YXNQOoTYRVkCs)%+@@(VDyMXN5l^LpS!h(0LDy)Cv}Qx1&a<3c zN~kxsoTaDillf(#T5GdHkM5FUvODc$M{^85m+ za*?aexVZ`X1UEoyA|R;!Fk&Tu!Qt_z=$+q6rvt$Xj(0lF3%>TFwN*sk8p|8l9l4$K zN1kAUG5&$mzhA1AdeV>0401{Pt{G8E!D8%toy8UQLFk(fUV}| zkzei+W7v@0_b6&{V(?nQlt}u#=j8>Y_nkoKB|hCVnHa9^lnWf9j4QAJ-SIv|QB?>7 zDK<3;g5Uh0tK=4$Z~OCY2=j$Id7-DS0f83Lq(__jVn6n7wk>I2RWl`Y;zl3WKIc$) zPHTH@G2CSpM==deK+NSxQUY0e0GFL+mKFIm4b;x2Apz(_nYYWYUf}CU0=^k1T1e4N zG*GgqRUs6sj#p1~j>eaP)mIp2rwAf0+9vvsKwdk5A)IT(;AOEfP@+D6L=6^dmVGQy zLW*FddxF>rL^TaI0#OMZCwf$wa9mNlo$v`!B6%~@Yb4QyzAPvmzDYi4Prw0%?`AXN zCg0m_^EhqpF)1x(k1Lt?f}7ZuAh!vR$_A7$j;=czc|k*^QKuBJo*P|qS3BeJ;#ZL_ z7p6h|ko~YE4gzjR4;JX9dZP;ebT}E0*Ca`OzEzwqpGozRsZ)+$gYn~J;k)EYatjm; zy5ODLL%#S33_A9f9faMR_N=cz#O^!9xLV-!pneut?(!M?GnvbUHl=+*bRbm+^JrVH zhl3XjM3anv$z}$U3ztUvY&6ypJI}XzuYFWL=x(y*W~wac3l$qpN(lp=A>LOmstfUHz_XD&!Hv!1F`8GgnfCpMhbT*RJJ`EjJC3&J4t#Jr<7=jjVfFsS zC%?dNT%}`(^G-wHC47_Cc7kR3HiU5#1q{oZ;6N*dm|*gH3jx}tGtMC>Y|!bJoQkgTM+ovD4c@0T$9qs?!@4gCRR7xdbM5yxaTgXCuR!iJTD3C18T>RVInTlee(wgYdw7QttlyAU%l{k zI)>xvBq8Cu$iF6H(>+6WS*n0zo4+IHa?Yp}pOphxZOs9NQWJ#jvCBAX=kW9_EPAVP z2T^vXtb2&q%ff^dA-_oXi#aigd^wE7h?854<~PKX(HDqv1-+S8H(mW z(xs6QRI?D?)^k`u9am%zsS8Ogth=%EB>nsIyymz~>_)d1Z_cqHiy;Nn&;CQwKn?&n zB1@$1`m|o&nNuAy!0wsM*zxsW^u^y-Fgs`lN&vT!ff9CX>hEJbq)QJ`!Xe}6T1gp- z5C&he1F2I1gEq1*&jJWSYhOd_06E#4SAPLa`EZ|i65JZwh-~rTB-y-DCuIl9`P~~rIx9(W9_oq5IL=ZJKZp+ zE&e8Rez(mF&23nxB3%nDax;A)qbK-P`yZ84tQf8Q;dojB>DB>Xl?RQGa2)@oR~SLB z;k1Pg4Kc@BGNce19_~JOL#(1#b&{p9DcvDUnt$+08$j4c{>Ky;Qxh&4v|Cy@uYii} z?Y`<@U-x$L5uP(91^hTmtZ{2y$AMGvbX*g?gZ15P_#!!wsSuT|?dYTXk4d!lvjJ>LAs^wm(GKI&i85*hp1l{5p~QBRYF6Hg12+u z@G1coCHrek2xv;N%Ml|Vk*d-f723G74k%((q#BTQH)vQavvps|{I>L2FSq7bq8#ar z{3>ZyF@N8Ob(5cx|MYK>Yxwg;PLG%!Wu zEe2?HGHZe29m?;N+UBkMLHsn|2w4u;AC&GG-9OHJxyW6zu2bfNo5FPLoO?BiSY@)V zwEWA_+x+Es_h$kkg6{KEw|+6o+WGO85OY zWNunY&{{PeI>8&Ivo8W^R1doHDrm&eP3-zGHC$Uq<%W1H;}T!dv&cwWz*cS>Nya;0 z6z;NB`pH67H&WaVTO5@i@>8l^>VW3ZG16&>j`l1JvCi{l z51I2Hv7q7YN=Vum5|=gsN0`!2o&$I`8pRWOPZ4pSe_!JX^3;+~4gp>!g$0Hs;o@CY z#dID~=*0}^mM6G zKD_qqpNVB{jdF+YM29V!ix8uf!7x09@XJk4lW8T;Z=XyO zETqk{GQ~`AuA`qxA)d(d0j@kmJ#NZvvf1CKO?uSHEIm((Swkpwg8z z+7r59PkW7w#sJNo!8~U)h03AZe{sY1@~_^8&!QZ9GHbTwq9xh-pqI&UZLEF)CJA-N zZCDh13^3=*tWxni{hfP}8ejheF-ho7E90im^Wo6)YTi4GoKlKF4)Hv2eU|}~?y_uX zSr@%)wsInSGW6)3MQspE{i(Wb7F9QVw$5e9x{*9r-&nhrR#K=Dd=MAZ+jBESQSG^f z%^DkpHn@a`iG-%k^=BV1IOV?rT4_=rucqe!q3;!*I5*Mwdp6&_qtLd(OocsWcy-3G~&Zgz^=)EKSbjxx-ae`uJ#uG`Mdkr4UK&_TnN!6ngpDvaBUn z5z1M++#)J2Zopmr^VXNkSaM>ZE_o5#+wZYv4e^{g^a)6`uC%t2ps&oEE&Cy#adJ4Z z)n0)&Kcl;f49EDmceoVCL|T1U0~GZw7^$hEec!HjIgfm~MJykA%KtJ^O-|pm@=5np z{vOTnR?Z@CG2`i8-Ukxj?Y~!nNdY{0y)XX2bm^0zP31OA^D)-Q>4>qXqGxlvgtV`4 zp4L-eTdgXjH2bv>=W`)0a;4NypBONRj#G%@kERf-6Dzr;5M#-Qgny~5i#BsU7RqX1 z7(M$pV`heQuIOWC8hAa>%}Id9rz0!83m&!g%RES$Kaxs=`cAc6Koz1QjVXjVAEdlm zFeEZKeaOH|OwD+uCqpQu2&4p6O0%0r9cqMS1(5&N)N~I#1kZNs{Fa=YHJr2SZBBO} z8YquVf&kJd5c&~TAX27uMHtf%GQd*CP_B?6l9P)74kgs(izDymQMV_&V8@GMTS$c` zPp|8BJ(*br?O%X$q*3jL=Jx_ew3N{{Y2z)|tJSv<14E3zfHZ1=b7!&&6blLOp?PDc zc!C#fLaX+l15_~7Be6*lxxwpf}6860kQC`m3=v(JRb2keE;JRZtZcQ&}1*~k0Wh5>IVeNk_A&(yMuwa zf|6G`TNC~_gFNSt$rI!5#w)~|GDT@1P9d}1k}R4CPf-#)5E+M=15Bvpu?E^B4kB+!q03*5_%wugt%}G)o?_ygKiH7G7n^7Q4e^dPv|sv#+N4D-}rd zUh;xV)BbFwKa2Txigf8D65`2qN7XFuk&xyypwYfcCQD!aFD?Q6XK&5_9LwrID?Kgw zA8aouNU}^%CQn>wFg9ARUmH44rh(x({uMjjalbWXpL7K89gEg}k3Y}Z{&sq1P1LvE z`5lQvBUSS2dFoF|J%XWfV&4_HajQtlSAy&}>s$6o>ylWRC%MN1^F#tKq9@Y`k8Bgy zuD+mLq}a^gF}}aPuvxqro(CV+y6_<2U`HI}+ahyQuiTsFTo@)8reWpcxN|ZD34tb& z34ZR~L5Z|jyu}1iV}f&qx;`qK_@LS9xnegz>-^pEBiW;;+#6XV#Jd5^3prk-ykQCc zFYq?IUh%wwd80Oon4#%y|IUT}$o*}58;}=np%b3(9?{nGSuIiU&3H~(OvUt-lk`eY zlCZB=7KRPePk|4A0sRQN0+PRg1@7n^m!Xc{H@?!CMQLTH<;FGTV*uXSqWU}C?*|fa zulJupwF`Go&zD{K4pb>aRXr{cqnD=0;tM!((rdAr?^Yi#*TM~MtgpZH&F{3G|A>G7 zVVooNhV`*1!Mwney{$ch3r9dbN*o`JhXABVp2Z<#?Y+dO%1m^CYNoi{&+jn&F!Lc~ zj|k;0yY=G@^!$z6>N&$^tfOeL2cJCutJbr(B;SM-*pN2SF`29xQLPC$+jq%_X%n10 zSlj;sR$j1et_ZsL#2S0_AQ-b{7P_RuXa8qkNh2PX7{S4Av7WB99=E-DXiL3ByY`p@wiTbkqTemDl;(k(>KviX%%uKl5gj$hT!`}@@*V}ua?jB z`N`D%bsI{ux0s1-jN?oD{sIo){tr7UBNKTFQ8KKhdQ)5D2Wu~LA8b?EzUcUE38Pu+ z6HCan=vYbgwa)HChmQ0&TH&w7@9NA-8^_0aexW^)7s9AHk8>wH~bNfbmjd%=|&x^GO5VX3xzL!c)RyrJqYz_EY%Jbpe3Y-b@QVfAs&jPY2SNe#P_+SJ?<-^yHuI-h%0+ ztX8~iMWKaot+VP|gAlB~%B@8&7tzkbHLWu?DbBu+TU$=Uh3hltZ*B!cs7lbi>_uA( zzs{Uj-(H7M^)+s-csczmm<~kL_9btvBR;kiu4^IcGegu$un|o`3%_ceAKd;7q3lbx z8sjcUF>*XQZfe?3wkWP=g zHRfe6xcg7GPl(z7LH7MW&FB$Lwfz&t_D^yj6rqZX;I7s=GeWZ1KgmoVtF(WxNwJm0 zp+8|%J|jzQ$i`T8tz7--Z_k0yLWd@3S&J-jN;MAc7}qls|9YI!e= z*8)fSCIrlkRwT<3k<{dmMbvjkN9(zdHpr9{hBnFSslA6*u7(K;?jy)Gj6R67-r86( zE?$aqRtYWfp5QI@_Y@iDln1@kbelin(A~b-Z|M2f ztBXoQ6#0w(#OlN(_A7od=JfVS168BB)&B@Cdc?6Pxf#j!RkGCe@fA9 z1+UnaxCJ;E?E9ZOT-2*(>H-?`Zr?5nw#vo7XALa}K)*NE&JMx=Zv1k<3ce$!w9 zm)LhVym4Li?%WZFk}39neGl-yosXHL;l{p`laj!wZtMYF{(n;I7E>zvA7H^U$mpfD z;iAP*V&{&mv1}?mn3X;6z++F@48HQbJ$M58$wkR=ij7^=A>?+<}!Ap5kKJKF6tJy&LR86H}%VyZo)_&Y76S9fO zz;x>6_N>ZdnRJP=9kGTjdiz~2IS0BGfnR#er2ha2>^4z=xwo{uQ$w+d_m+A>_6hgw zWmd980y@xojl#MY3*e#6#bjIhRi>-1D(Zmc6Xjme@s(d;!(VlKMP70& z%aXJ-R^HyhU8$x86|*L=-I3@R&jgUp?|M(wA+iOIXY& zCKHmdt3Dy3JUaAmhtS8+{?AhDf$2FoHOg^PkGY7kJ=}xA(19CUmSIM86bfjpGu&|` z6)7++t0!qhfvN{pQls?G9YR33msa~gdm_ft(l?UJo?R5~p{ z?^d~UmjTMX?)+4EysvKad zGBp!bQ*AU|zRfipjBIGD3pbWvNCjG8-Io%lm|}~xY)u#6{-tprE=9k z6|LO8#ZuL6_nwC~;{gU7b4niP3M)T_lL7(n<&637Y(dtOX9>TMup?-wihY$&km6kM zR9z_G>F+TJQT^b7S9w-mNWm^|dMvtes@wr&8{D^4o04o@19SsVA53|1gd8;)kJN+n5)y2CTc8EjJuZkTfa00FXT_;7J@ z;rs)W)l#GUmC5Tqh7fn&>g+A@O&HVD(<}?jSI+YA{@zO^%i!Sjc|;Ej%j;t$fEG4LyTpBpu@TS}UdMuFVgRiUO4@Gd^`;nUqF4?oj4s{h z-W6S39mpQBYEOB5iU47_CF)tIKa0@UT7G7bdsr6Qd--)KcpTPd!3Me6>hSQwg zps#qCaO$%Ud{8laln`Sc>}i;)ed2Dw8VZeu(d_%cv>nC%S>CQ5n&kDIR46EREVJ2( zE0y3qHOIW(fFLXySQqaB#WvvNJu(iRglv=jr~|jkyLqU@<$*w0xE=dM5#L*MX^Aq! zKamh*)OL9I+`XcV+axPZ*{QKK{3pj%@fYkw%VH9t?xi2|aXD(!ylsiTuB9(;5Zw5! zgfDUP0b4>xKxlPyJlCg7FdC+;W^+lqnO4WEVu?WVr2!X8MtdSPz&z+sl(4=Dd>*6H z^6(BG2>J=Qp0+XKgs5Xt(ArjQ^QlcRI<7k{CHK_3EjaGowvW~2HFdyET`%M+ub&$RC__^pZyEzmv~xH^CrPLU95?Qh~`#XtalLb+`gClGXVf8UNP{AR|WtK}Jc7BuG{Ox!cepYt4?o`N2hJTUav6(8hd&NIrIY8RZR z@iTIbwwQ(G1*`Buc9m6Emyg@wku6G~5pFYf?gAfr4I4Q3V2)5(l;8+^s?oDs7%4=l zs@C3dH5EfTw=FAD+P#!&i?5gJBX+_WCC49hD05_Bx?ggR&>a^*iwb*IZ{jo<-|V{W z_LRv`J8r>`uzvBtg0k3YdF1>fR?}ygauD@AoSal;e+$FI=^l)m6736YwhiQHls@HV zw;#DynODlgb4S7uM<6hdvoh{m+ct3R?qowEbU$K{LVpmeW zz!#R@gZYaHdMkz=r<9C&d1rNzT~ss4f68Q;1d5B$ZuEcqNa(FPK(M-UGr6PT1%GiE zt9_+WEeIO>vZu62%SWIf>#Qw|;;A447|Yf6e3w4g%$+t8pzl(Ho9(QND&V7#Hn?(k6- z*R9D^Tcky|U1$0$EzQ@BaX(5}*XATSa`+WvelM zul9C;P}&3KxlN>%8$SjdOL@r{(6%>ORKxaF5I=4@|aB*m~1bvS%wCdTs3*MN# zShf+@zs*E;dsoudd{r|lU3Xz-FAZjr**ktujY^eFVYjfxt}G+q7i7YBf3 z&qLo3L=bJD>?=Lkl|fHt!t!<3=4fiGLS|Jc_sV3$A~jf3@Qi*Dvv(JxQzc@U;r)v& zg~mD_CF3mBW*Sh^oHQC~O(28}evRvVc}m75e^#bYr66BG2Jq)vtZRP3^2>*7jGsr z=5vYT9|gPDSLa%c?WMFCeTqMT*9RBsPf5$m&3Yaf@bgc%(FcUJe}uucSI8h=VD`mK zrLmT6HdjqKXOG$7P&6vfMsaCU!KWp8(OEv@Ux3=H1& z!clnd1WrijKy4R6*oMxnn8WbL+6w7s6-9lqiDxav9Tnrj4qrnU@bdaQnm!(a9O>&h zIJ|leYF8%}E0_2lA4?v8cY~=3yer={x2pG!2%22MH%nNh3s>Q(Z?`mXZmj@V$$rz! z5%R&T-Vd;Uh;Vw3MS4K6&2*WN^tNF4y zA)e+76q3e}9Og#G#_|p^un# zC5p0!m-&}PUK}}~{*YZ9@Zh64c%m*x1~%_sm@w`Ym#jD7hT55~J|DTAkgb;Y{ZF#* zFRqxpz=|jUxwaI6%oJ~H+}1tnXO(1$pB{tJTvP}VJsp1o!|Cst81F3C+8S&@+j8)F zJnC#ywPa^~~S_QjozrFs%qrRCv|52XfC&+PC@5(6VfsaflA&(g1QsQr-A%d8o9_|K^Da(@8{ z*EK3vEKf`7V;IMlF-Zn&fYtcBk2Prv?XSZS185YFxjULZ9CwLvJ@@pP0@moMOVJXkU z0eXyuKm*~_1z81$gBSaidY8DIud#Rir9M7jw`mA!QuQg_Vjsg&y)U5f`f0kN?hvI| zeStM`MzL#P9kshL?*JSt3j!A6+9z{I!dhklqU*Dr$3>`64bpo%hQfeac0jSWn5EqR z0Jh>fHhbLfpH3MK5l!l2WJ;s#n%P)-k8F5gv>k=rN>!B-rLWq)4RT++eyKpwR1FwM z>P^>@@Y$u8B-piErJs3=i&4ETil+A+e>e-L?qE$8dmS-{ z2aLiYivBl6cFy-V5;M@(gNhQSFc!5{{sLXl1(*VhV%@^|%n*muXKmAWHmjbm>CTV?xvT9;)@h(plBb1 zS(GA@CV+vDWA=pW&~W+(sp0j}&vQq^(Ndwo>LU$$4@%+uj~#kaBx4>cj6JNW_Fe0W zpSQutBUJA-gKk>EDa=3pM~Pkn?*G<{3DZs zbuWS(u;KJRx{1T+s9BoVFh9;P@lJ8a(c-+CzahK7t`E%I;ealCnKFdQKQ{!9U7hF-XIopbSd%#*R%nthC z5rKXpEd{*PB1-fvoP|{k4nsXnK(ve@xjt2NX)VmMH6F+Yj?r%#J`hTF z3_@DDgA^g}1W`vAhftfgbBmIq+Ga;kj25WiO+3XmvnBfZ#g&L$1V#o_!NNc}tjD56 zDp3qt=Q+GNA?i3dI5{H-ON0Ci7BcvE>0{}7C=~}6FEvQ5mQl9`Hj1y5N;b?KfC+$S zbj98E$M5h;4eHdDd`Yd48a&4!HheZ!Vl7og@X7~kTR$kB@~k6~jkHs_t z@eE8<(nHB!`y+1qivIv=oQ=ZJqXq42*wNZpr&f&PwXe67CbUUcbpDL{K&X|?zISiU zRSd&j(BM`33_cDT=|BP2V4|3%)s?;l;ELF#AObViulvX8P!K7E{LwGDmQIPT>AL~< zABaxkT@ZSCQ}MvdhpFQDz8!j4^74i&4hfp2;-V!{X_a2roj(si{zHReHF6=;a{kX4tE5Yr}T#@ASidoRvm$t?Ad;N;|o z1If$3MNau6!xNt68Xp+6<9LS#z$`8!7Epx5c_Z&;T3*?S7h{uU7QsVml{9=MZ??%w zjE?aSa_U=)ZH?PjYXFp0P6mg}%3qjLvYH5E?Wo%s6_Pes3K*K?T`H9qOir^X*Xjkf z);7?8QpfF)R-VC*uzd%phpdDn4RUgs^ggycyNxVu+WGtJ_}s6EE~g^*2ENjx+Mpp@ zWZKr>)Jgl?1_zOwVO4cfwE2p_Vx2Q(&*jcz0cEVMS}mFwTih;1%cZz?dgZxkT2ijn zdw8^36P8TGw7Y>-Y~~YvXSc*PkGJm<9tyx*4USaTf@#R^tu{7N1Jz6?t_3^6QFaj2 zYE=aE3~i-&fWVYO?=4qj;yMbm3kOb~TO|}&q2ctgj}P!^_3Y;r<3OjAI{1?;HyFlozTy(+&Rsa@|A=BnY!I#zOTo@3XcI+7yM9IZhKNz`1aG3VE&MIebfS6fJWSjqRt|k%y zc6dvu0^a%-yc=}V<=<;#y0w+Dp-kp29zvb+D_6=R-NWBsrMGg^0Zs%RE43Ty5ac~U z#ljGbc)5Jn73gEb!wn3~8`2L+akZIKZP4iFPs7o-2M4J1kl_9Ra!cXleNPW57*o|| zr8F*aa`m-gR@EO1br6sMDHF5fu0MF@*L)C)x1HsOps}+LnQprA4?*fUs6&>Vo*3`f z+^!x{F^{89!_aSogO`(v-RvirowVxGu+i&MsrhoFZS2zrQeL(p;G2P8OU@wX44^fBR&6~)iqIBzV{s0c72 z+oZFuFNJiZFB8d_u>#B7_z)E|eDxWf$wfK)+ zxdSPNv?ph&a$StH`<^GvRr}GUR6jj^;0P{;g(>`X$pe$na&8`-A?kT}RAt5>mISV@ z)xm1o#oJ*eL(sDqjUNx-5a#(I!y|&lV7%Xqqk|zqVY7bHtCiam6?yi)biVH`FCI4! zdGD5YNmv*0G{(FP!#BB3h7b$W;{s0^j7_{12Of~36bi%<*j6d$RAt*uVN=Wtrw$_4M;UVkw1IO5vex6jP?-!kRAzBnPs{%4o@OnFH0 zqv7a11NcP8Fe0G48~}&2n9;4xv@ZmuvsLSTK1pDVOXHvsi-TsB#wz-UR&@=NMsg* zfvmNO^V%sfe`$IQ-7Uy+CLItWL3&Db3pMur#q&rNU^*CAPkqKBrJ}OkLlv?7%SqN1 zR5}1pd%r`$%fXCe!^iC$Xpmu4W%gl+p%G2C>0x4TT|!Yo*kmG6hQeVU-oSJRlTh># z^pN8ahoF@bXM!Bpq5db(>L4W)@agOIwN;~>p5Y}c4p|v7SeTzf&Er0@wk*5mnQD7%;?LK>04hAFhY@)*yewbjMf*r znjg0_#Ppau{`pzfB^MIB$?q!R<>iEUIb*}a#o{yexO)YWBD=m7tVAkMrm0L~>#OcM z2)Hrau1#StbfLfzcwOL>wga)ywwa^7OejLby(+9{B}^(wML1U6VbZrZfWIM#dX7g1 z;my>(Yl1L`q2%G^jAQ8Bv$hLuzy1Vgd5TfpVTTXIR8734c+v2dJ1B)q=o!?>t?fWp z`UALR1?yY+blr}f#c^6J+j~%|Zk7<>;N1bmH;w#K zprYtrum1qp2C#d(^gJG+4?_sd%Z#bf=zT*`^s$dGqff)qLxYR;tnx#aJRV1fd^~sQ z96WU%9v&JzAws6ozs2M;V`J>UV^4E6)=W8?^y1nj4M24dzZSuF`-J`v+j!_rMSCI0{j@_GUu zf*caG#xRUM7t0v%#y*eQII!GR%UMe9^2FAX(gtTag-G$n3aWp{8PE6W# z7W0UjkE^v&6Dz7xuHY;Hf*TU-*K*V&u?@U0cJ5!Ta@NQMT=-niZ8kxIzj$I=dIA6e zZSJy#jfO}t@pQ!tY@m>BQ{R|uxZhXjS9)cN$u7;cUlYG%n5QLKhuJ&!7qeN--FAab zThj8-9&Y-Ee7vbUFB#9;3fh*{Ki2f>Er0-R1)Hyi6=ttzyuWDqD7yUqCa9*f6IXb= zV{z8VON~7Els*itop`?pT6Djg&wnvImq%UJyy>Y{#|%cY+peWGZ%&=-`h~77F6P$j z*wQF@rwDKV05t&KSM9H#JxjG>!SVk9@1fz3rH>u(&3Ove>!H~ky>Kiut8Uj>sO|X> zZUi~1(bT1{V4wnk4FGYc;VNh;DzIeqRMc`l{{Tc0fp2Nh6;RvIacYl^$0@}MLxPet zU*2zNDBX#LrfbFj00GG5ToL21LF1E$Tsz_QvE`VhtFyX3BY58}t+LUFT87o*^lAj! z2C#p8e%Zj_Vx~40yWZ428gYf-jlTB$&7*FG)mQZ%Vici;D%&h-QIADWAMQnK3p=H` zW%hEK$F_^#Z<%FbML~|A+(A*%rgi-c!0HBO7UTl&0@Ty&8dNe%-CPhFX`{>gFogl8 zk7x8^XgZ-+j=s@w(vKm~`x6^IVD~fTh53hZa3JN{JXH7p0BA9cJUx=C2(bVJc=0jh z1`q=}HQF{Ss?`dFNMP~s zbue`GgWLZAGcRLxU)D@z)6*C}%&IO_JOPYX^ux+CygLz37BD$XNkd4ep7~2_e#~;t zxMgyB81j7vY4~z*b3cfSk;}oZ1`uPx6P7WLFE0rg&5XT`*R-ofHi|)+cl%DuIciU7 z+$ZfEQ%+E|^Rd7kssMha0zPOt{v;=be( z+N8pkRaZ8KqFh)=)C%(`zWT5qYX|M=IW-PMI44ozmkDs!F1Tl3#KtjWzZ4oCnOM?AkF1s9(i}7wHHJdC| zke$TkI8@WoQ8{@yeGFp}YP8Q*c3)Q%myK$vQ&b+61%-0Lv(Qy6c$oBX9RLjH0mh$% z*ILEZQ%7vt3IH*+7ki8VFHMfaPm~GTQF|`DMQ<6E_RzWp%`>7$vLXQOs0GET1xf^E zpcw)+$r}w=GqGv5cX67!I^L=dL-r8<0(TA%L(Oy4IU^n(PfHlaJJPDKFD^O>PQ$Rt z1cLO_xb;|ljKNshP@}y@m##TG2rlVui?eF zcb9VCJZFHl4U;^cgM-jLM(2DJr_k@z!-tkESg>8WaOrA?USk3GtX>-+2mVF_!@6)4 zt3c7m?;Hfw(L(f@XW9(TgauSBZzL5Ei!tam-ObshxE&hq$bcIvGJ7!K{sIt$IXUl! z4+i}mb5W0><(C#Lr2w>`HmoA66iG0RQV)W77ykg;?E(UZ5!mso;p-5GC#2T|Jtw5~ zbs2GteF|K-#xdpN_qZ^+ZP-k2T==*sBXw3(Tx(`yS$LrauyJNDQP(fN?O-6H-JQ)! zHJ~a5k-sUXoF>Q(x-h+Giz8Cb4o*mGf*zAzhmt(Lm6yWCJOE1IHqTGI%Lu_x@-IM9 z>|CQKfwi~!_kCgrV5nZu7G14d#;=E~ZU}K)cjz_22yk(Jf#mcNXT?F;y$eFNE3esxDqaHF2HP(B)EhM-`%`F@RoG?pjtE23 zafG>i_vm;dA4485hl0k&pCtbP_nBNXPs7x2k?A=h4@)aTV47@ONlKlk7i!d72tKh? z$J!U*`2nr_8HouI6prBP1`($Cl%i-g$A4?xidOv94XT6n8Q2fsT zTNZ}bx4gA6K%03U1*RvDMFblF_)3g}AVDo?dwb0x>K=j+gg792P7WAx*DQSxty3o- zy7^W4tHsMX)A03>nturwDvLm&>lj+C?qba-bvhOab(c3C<1o2y!FIvRbldryrXOP+E-0*Yp3tKu1HZ=Vr7IX;&yBo+#gwIv5pOu+{@_2Lr zSN?>rGjf{M^3~^;nxwi3>^*Awl#G!c%?w#9F5oR_)2@(Uea>z+G1!!Q7i{iaz8+su z^?uR7pibz}Y^R{+6RZsAY+YOC_bdG+MVF1(S_lDr!ld$5h^;TBwk%+z7Z2bFazoH? zdP#8Mmo8ks82X<{m2#tsf}cNN`Ge1HNMDgQx;#w0s?#6`fo#_rejc(A{t_Gz$;0p&0Ha~Dup(o?|WI@MJdG9i{4vvERdH5i?LUUVp|&8v@{Q7*7_hm_{-sNhfJ#? zt+8vkGUD-k_rt>M{kA(OVUoiz*_6<~8sTMBnf!5g{&gZh!FS`Y- zN}{jC`vb-M``=<9E7&GH%&W_yCK41X_A+!es9U(?vm_|}?y6E?aGEpUd)gc}&0Q!( z>22dMo$h-Q`M)S4Nm{J|7Oyw2%hEy~l3zW;n~YxsW9xkkcv8d0O8i7pt%9#_I(`u} zMS-S(=cq8P;8@c`FfIM!9zJ%GbT)UaMpi88OJQypV{*$qxm)P7yM#Il&Ly%L>Euff z0Sw9AR&2d$V+a~x9?Zkg`iHLN@p9$M%)dub^s)3jF^DzW6~Xeac(Kp1iU+Ma5O6vb zYq~ARW&Sw*A7;{%a;Z| zmOL?!1=FNKs?EfjMks@{0ppwq_l^<5#$Mu}87`5~(oFR!!rGJXD8j&E ztEt5dExAQfrgFSs1q@#VA?dGBhX*$WN7F5obGzfAg3|&p0 zXKcCe*)IN;Tzj$XD!wXx@noy|C8Z*GUl{(SK08*LtwP7h7SGj9{lz(J#K4#|Tbpk` zd1rF7Fwy@2>;MqEBSr3ycv)?gms8Y8UVsb$bP$K}^)6qc=H8|}JU*}9I8BDSt0>x) zSv~F#H%b*%0HuK%JGra+0N85&Ux{En$+}Xob{Ssv8_k+sl;x)le8X&bZRa7T-~Rxl zKyuJ_Q9AcQTM8DqbJTQD`@~cQF4*nn?kp-oc2qdk4f(_Z3$-&x7-ThGXPpx8<>1q7 z++d;BG6gVpzk)Qo7&46xz5f6R&~;sr;l9tb4M>-5=9=}D(X7HVjh-V_AG&9eNn!bn z4$e0V91eiQ$*NqXgMenj9I`mtFcra0W|JoPrU58m~OB;=$Oj%_nR>WP3ErJ z&NUj*I-7J0#ye=8$%d5|X1%kwyeSw`OJKI1Rv0P^St`mH@IQnQI;be=ZCBpDAeT}h z3mRH2Q!q@oTE`=5{jMws8YRWCOAIVZFTyzmX7^u|s2!TD-&xPkr1U&Khn&%2Z9U)C z!ufczt)RifH2f#AZSJvMedVKxow9_Ebu;-xh6XGGREpMhD95;L_JFSa=*g>o zcJ|i<(i{-=oLoI`rln_!;PhTNxW+u(EATGXdwq?u$7Oj%S=P-xpzH#u$ic3Ry7!kC z<~;`{_#BY+h;ng%!BV)Wz-FF@hCDnhS$tf%ui+4bZK)GTzyg#IVfi~{g8)^YlXO$7 znFGr$bu^kWEk0WIzZ{Mp4_OWlUqcDp4r`0x^)Y<~;Ra6Nm9-Wlb%DKw^aU+h)Y>D- zSIc?758vQ0$#+{3(d{R^cu+H429zH)bp#`=A&x40wwvdVD1;>~oZCMfU1H2rK*Um5{Mop3xrtH@m{vN%(2k?##UMu)tMaEq3 zp5q=E`hRbSkS2+61{UMLF)3DvjiF;IEs{$X!C6ZM_j~K&P`X20j)fhnMZB?$mS6?C zSoW6|h^xq?bYi8WGcOCTaF(H4j1H0Bl4h2!toE96Td>WwcBgmJJB@wTG)M|e6(I8o zdnfS(n$p3MX^#vdls$A7t+l9Dixa^r_InHxZ6{j}MsENw%ufbtnXh%=DKoqsL;ypZ zw&)1@!%zb5=@{)CDiqiSpmT2T5z=16*{0Js`oO9RrZP2uGqnvkG&wob_vT-))aVKq zSuWpcgK`uGLsZ%JUCe6LkOmi6RU{WEt)3bSLYE%vkhL%Xp z6_^QtNfA?vVjZFAA<4MCFQGWj1tvMyck?{ zL!hw>qZbcuhy(rgS($?00orKtAQdpwwB`T`Ov8nWsgywDXO5uy$R!L2a2-TF1UPsQ z^t`OOk6&EeeJkbQ!yE>Omzr8-t2{dDkS_dTsF|WB26>L19ZQSz@KaD5J2E9%Y1h26 zFijN<)GiNlTXZ~Gs+UB2gj8`h427p4g{+oF{!g=;7itw_6K+lpPf_W4yi0|8`{v^g z81a0V$_wUDu7?$<)yq#}pbM%R>4x=wB|50UU?EJ>US;NM_3o0JqEPOGDNLoN1%w%p81_N7Z#*7u)8p3A+YSIH^4r!jaS)!kJ!xmr#Kn6->Mh$6dS z-vn#8YF)|~TN*oNa;T)2ohBWa)F&UL`3j6R7@_h!9;47hhxiXhBN)o!T! zR`U1#z(*;v*_mx_+jA7RjW_`C6&nWDDPE5RKmOA*U%Nb!uIn=Mwqr2=C-&gr5$NN1A&0F<#<1d5B$ZuEcqO6aXRK(M-UFx=Ph^d5oy zWT+Oy(#z!`I*&CI(8rcMBz<4E!I@m4dTQ>^E}>a5F06TTgSuK&6$eV*eURKkDw(Yd z$_uCr_a7gZR+g5+TRf;_;ik@)m+JojU>(AS&>tsrukNaT7zbaTUJwUBSTK;QC+^+iUW5{ z^Gp6QrKzx5te>%*5`{YotW$q@GhW7hr*FapoOV$gte$k3{8Ma#;_-W-79>(+054hh zxu08zBR2|r$DG4ygWvNr@3^6t=cuMBe2pwZzH%e82oFMfo-wewi+d?+A3_%FEe&xzx>2EHT*pX8bi`U&~QV8)7LdA zf$LZCn3A}@KYxKh(5o#O#ijPbYYRxOl&fmn`Gsv0!Ya2{uHv>_zyLfHV|`D6Fgkxw z#lqe-uMXYe6aN4b`MvLQ%L7ONd(eBw@1Q8jk8R-2=W+IrvG2GTP$+v|ADNoYPZ@i7 z)}r|%oeqo8Zj&|nQy3@1A83_~`%~;zH54o`5{`;>;HiUcRKr@U-kD}j*lT%rzSF$h zympWFAU8?SHtDY&$N3l=-8j?d`BpLyEQ2(<5)aiSJJUkmFzlWgU)FJ30=s$=={wIW$ z#l@E&MerjYKYxW7GFuDk-1xW@)mJstn-%th#R(|g1IXO1Q~N`8&vI0*q56YY_cE>k ztzZk&F!3r%`qnq1(p?b@6+#ZJv(Q76(mhp)Q2qysl^!l%rsD)L7HqDCn0q6rBR{L7 z6}#yM)o!FrsvcW?sqr#(BWQH}6FRD~ zs1~nkjmyA>-RcS}g(d6yHz)`dL0e7Db*F=G#A>`ASJ@U{#+k6MoXi^TlIqUCxtEU4 zRqp;tX)4PN*5hla2Mb%*;vu^4{-FE1I_-DkXcCq*p?Q>+r}kpJ;#gc%ckBp?rM1(uXX*wJbPDynELh9*yt-;3 zO>Nn;rS=_EdMMbTk?F-LJV8jc1^@~J*a&Qz{vLu5^^kogy%+p9#mkp3k%hh)a{X@$ zkKf@(#t$CXG!cyihFmx77f>C?S=FK{gX{ySphC(h($j5KRaV@qWf>c-vvz(G%Iu1? z8^zvz+XB2_-DYMn+`+q>9m+vdpaxj`%{>iSKzVBK zY%srJv^HwGQKr)Yov*Tsby1jQR&N1P%HUuX=W1im{{X;?@+i<&KrirAwvn!Y@UK1A z;8fTcGKC+6QkMGJyG`o%3sd^Ts~UKqeW7DPTOlJtuY}UDmF}0=k4+u?Dv8nU_F)ntR4+Au9_e43g) zEu**fm_w7&a6^lOE)N$j93Q~&$I|dVhnmhH&5#~^UB{ZVg8OUojDfX;kGT!ae-BXP z^&W%PMZ<^E^7>f%*z(Wc;DHEbDgw?}EaxqXPvHn8aeRePro0${`1kuljoGka?f8`V z-k>gx>M>=~bdW(&q8`ir4+S~)ebv9}Tf|b@M{pNJR&@({RL_X{N(!FAYxtNJ{$sE5 z4~kWB*l+rjx-Ke}g}o{v7PG**B|bN)o(m2hFa9T!F0i|VGORwpn)#zxwXhD_-I(`; z4i%k&3vq1_+}H5+4@v0j`7bbK@p9qlzvJHwW6M8(g-G|+30CsP{La#MHuBHBR&Lx+ z1nX4D4o?BxF;({stUwMh3NJ9un$V0d$6eidOPHFq;LEK84=!N30WpI1MUKyy%T;6U z0)68=7F?5J)ozx3;s-tI4B7WW5VF?SU8b95s98Owj4|x7io`froeeO+v7zldYz-pu ze~^47aKy^;U|tw;%)2J=?MRrXRTWPyesU36VXv6?>1}5FILhD5x~c%xrIOErtzd@G z-4SZf)Cb06x15t0b|y+TK+)NGs{YXcYb){x3ohRKgI0W(v-G;jZ#UBvwMiktiV(8KfnRO~XkPRK8*l9KVJvu{^(0Wb?dJZ05Z-ME) zE-&&K`}{EM?+I;^hQoM4mXyKT7;B*A+Q3m(pvx`NTkbAoZPc)p$;voX%D!e#A~{I9 zAyc&0XO`^ASv!ru0l>txrd0e~DMy6;o!wnh-@z>0l$JFHY0C3*%g8O5(7%k2}fc__ka^=C|{Wll*t*s7G`TWLiqSGq9tYM`7r>JsrFz2og2!Ao?zF%Is zd1vkL83a{{vtj1DmU)V}76pN7*IAhfsVdIP+3yildk!C2=|6?^zJmG3rS!7+V^vvc zZeBWY!(`F$^-fPg{0H$qn~TNE;o+C-JhS%rRAv)$yDp6Vh~NxMRm2luw9^s1PTHt# zL-sBupty#GSaYhTeWI-)u}i?bg&DYO_*cQn{BNS-@Jr$6B)>}Lk)ZEOSw-L2K4ArR zIkpK_wdIUrT?-7GD7Fe4BsNVy5BR4i@UdmfgZzmuU#j^1z7~rcvmr=X&>D>!1kq|E zEe3HL-LcYvmP^Ptj+=_sjuXjhvqIx)80uC=3x$iBdu#HWhDfwqE3M(;)b?yzi!MPO zW~qj%Dldk3V+}&dh-p_K7vZs-OFV&C+ROW4kD1sPc`V~0zYz2+QkKAm{pRi)m|%K! z7-EgGyh1Z}+gwh;g1>kqzw!eXYjtI%k?j%{tw&X zvebQE3<~)fCO@I4;R#Ekb80*%q10Sw_iWy9E>G=W*F%AO7p&<+oK- zVb1MT3U_l47sfBAlUB^Chp?NVvVeQfv;`*uk$di23X=47`gjbj}E78`}bHlWO{@8Dwk^ zyu33>b$7!p9>!&bN^95#@?VOHl~(Nw^<2~a`~6<8`@Wy&pJ$rabh*xFc`u)_ zjB!rp^AYtlin`djKq1#3fu3;&UTIecW`kZ<1-}akfxv58q2vm@5#O+Qm-o)f!ME}&K%#$k{d|aIoOq8n)+LAekJAxcuiqRGHhTq(MP%> zJ8kKze4DWRJ#ZsN%lqcD%^PUp@XrO!&ma1$ ze+t~rWn8x^gVzN@ZsY%n5t1Oe9e3vrk%(OOr&te&%ghyrotykz_WXI#+D*&xBJjiSABgMi zhZrqZ)8F@=U5gY*iOpNAup7dPU3$?=Z>V`ufBKtdm`Ct%>gvz@?BK0+HSa}leJyI_ zm+E$#P!V}M?mvHg>)!Qy@?7RugW~JRL{hvTAlfLl);$>>da z>ZARibbAjy{;tO#A7rM}c-67w`Ng}-T3MpLuA1>2A8n~W&i7c(Kh5-o0?phTV|5iUf;NbJ>y4X3&(?c-XF$1JNTC2?P*ijHUG14&5O&K`|`eP*+Jt8 z;Ju-Pp!1sk?Gc7A$J$NG%f#24H?Rr)ZjSoew{6L zl~PwkMJzqmIk{kTbvg_QUI}S1+$#yCeUkKg+`3<;CS5_0b%U6T|5> z4k{Rv`CUK!)nz24t0*p7o`d7Vasm`xA2DHz%o(1&IdM-N&uR5tvN}iEa6A1o89vY< zXX@-d@C0vv=1}5mG$JmW>i<3`czf`Zs4Et~>zZRfGrydbO|G~J`0==B=&ZMx;%JBN zZN0Q2(}RB4xj_oizx!4*V*aYPOF~fL{hk+BpZ1I|7zBM;AQx)-T;>5^lhOq?4qdjM z_?`X%cQW}wqC7aS(Ay8)QvLhxYu?+|UyB?lP_*Qoc(-LdyH!(Dl5e2lr{1@yV`q2& zmN!{`_6L&q1Ldxq-o}7Di zop~?<>c?;MXdBe#{wQhnOu9jL_)(;&>(`9_{6H>r>Eh5{tCQ4U{jZFT!B6Lh6&uAd z&5qaN^fi66Ww(A?*n3K8|L(g-ZpY>bZqeg6hBXSZ~E^Fd6*vHhMq z(_VG25htx|E+wza2ZmQTJac{CuXN@1TfVq!lJ9hQf4;fixJjZ^eaf*f8$QIj^Z=dw z%y(A65`6ZF+xgs*Pt{ep=Uj$`v+JGVZsRQzduQkdXzALJ*Q<_P?e-`#_yI>Lb92x4 zhg`qCekVR%3=wb05Rs3zPj!Whzz1kzURxCcd zc&+v8;hF7OTTfi;3iLT+g~y!8>HLL|uAW?BH7BXf?VEb3dk`LjLY?(5^DAC3#W08gAh&`&O|t((V9_kY>3FYYE~_G+)S?d&I#ULerN39~X->r7OII0iM2X}c9oUZAm z$A(zqBs+9ZnsTLG%^#>X%;P0)1^hoFng9R16^RX=|NpqvVQvp8{=aTpcK(63#QbH; z!DjpT(;tXx{mcAT#k1|auWtS<-J%@!P5e~xiD1RVdly$DegMi3+h=}ubOxv;{)C$G zZBak3w%(BYeBejfjl>sS_Lg#eOg2U5xShS|l9WHtIkyRRQKQYBnY!RL7U4wP=FS)Q zKN%)~4?H&Xw}OK1e;}Zp+>b8_x1a9(>~eWA1V}Y`efLee_03Jm8^Q0-{p9RSuB!zn^`>;LxguigJEY=ea(GRY8whA?PE76oEbAUq8rkRfnKLkJ5?WRZyk3WBG? z5DlWU9}x&xh6Mo#o(7@GFdhfvu|y^X@P;5V#3U0LD1-nJ(Krag!2}x2#KL$AOd!Kd zGQy(43H3bA9Xetq+5g`KT0EPxJL2)X(&R-%30VHA( z7Q|-CKoJ=bjAmmdGH?J45y*l@u>lY$5FH1Bqj(wwQHTVHeMA4HOn_iI4rT#56d15z zf(42Ql!1UsKt>cor$H2^tY7B6cMkD~;Xhfh19U>Ay1u_gkGC(^ls83`7 z?f?=NNW>NpjYYs6EbzF$b-)eL3bu7h(cH(jK+=u2myVF z3Ikz*8ca~13In^*I3O2WG&&9>0v&)&2myrvnrJE!90D%mDF_=68R$%8QDNX6lMEU` zKv*Ui22d7)Kq8(76KDuXr$aDkL7=h41d(*Wf=Z;Lh)fiW$Fea4g9teAAp$I;gW_bE zJy!rN7KW%q2=F39EMOl56Q~G_O_K;}FJA+`blFd867fpmZn1Op5(3xdHkvM4}U2+*OUfT{=@RA&1Kg9QV? zh9Gudz=%R5pa4P`7{>sZDG*@6gkT6nLPR=^$OKB#UN7w*1cNSMJU|#8gaHgdCEz0t zxDS9Kcu){fz=8^ZAPl;IEGCG=!hi(?p5tIPAQ*@Mj?&5OEFcjYhXBC|03H=alYs>w zfC$#?cr1~DgFqNyfu^7GMXBMbK1sH5QpoiVniqS`k?|2=D^f z@Kl5Vfk+6nU;)v{5DVmjj%2oapg6z=K}049BNOQW22c+Nv7Mz531AZktOr>z1iGVO zkjtV$Oe_MNWzrzv^?x-Y0N50m&UO=KV!`-9AQ%lHObB725Ht>m&vu^$9Q<324%7hJ z;$Q|C9xSj4XhH-}C6G>_Ab2nd6e2{1nLuGS0Kf$XDRe9mkYxcGfoNb26sG)D04%UD zlSX7S!V(EUIvijPBmzt!G!+4uK|2->(1by8_8Jrc@W>zqW(8Kx|&10t3tpj?Ee@KvOVUXbQrh zA#{ihj0L>LB6vU_kOjU#5X7bicGw&NDsZQh5r_hG2H4n71U#7tAkisA78zn;5jqWF zP(W*dAMk|-3%gMea>9|&O3AQlSvO9W7vY$e%`02@FBav?Hk2>~QPA{G@vqlk2X z83HcAXe`?%766Qc7*rxeLkJXvzzzpe0D=$$2jeL)o(j}p4+Ds#{{;-uUUY~gW?b#z@vdR5wIqJEGi5Z zbTUi_&sP!j*w3ZW@P0vQO7us|Xi1}uPI zOdN0%MpIxs8KzTV29?ObLM+gc!qy+aKm&L{QZS8R#;`DiV=Dk!5U4P~46uQTg|G-n z$75mkm_bAWPyodS10q={hza`A*s?=xXMq&pLkMKyL8-rbG5}y4gr~8&1E_T12ml5_ z04E>|9?>X}4gkP^$AHLy5C#M@*qZ#e6e9C)cLqBV0Y(6J zbRZ@fXb9n{Y~%zg0Dv$75& zP!_PJLJ&|43(+C=r$h*30c&Uw9bg9Pkr68dyKq&|S1|I^} z5FQ6HKv@8c4B^27f&os@8WacPghqkZ?4t}C!lV$<6gDvS8XTfR1S%Um1Vo^KNSHmM zRG5KMVW432p8s5*0RPkQ^iOcDLpPMHqYTeZHRZORKj5mI`rrL_ zD2JZRwV?34lG(iZv#1hWlA;%p{3e=6Jv4Ok!z+=`Zy3y;oz+YCOj#rE67PNXRsDQO z?z8=!)N6krT&UOs)W)-S!|26`-8b9hv7}%r<73_aF<8@i3;UlIm4+vtC}9;HjPczj z27LaUSBpL!5sdLt*J*j7)iB4pHm;OFZjuuCo%{_GTA5`SlOy)s;tu9xF@O4PC4T!P zP2SY2T2nHs4P(>%nhwccgS60X>fWx|7g9w-0xn@5aER9U3}rl?I?E4#p2&ec51a`#k7+xtXHy~M1#8}q8UK&D0VPXB``-{3pg zw<2Ov5vw8Jb{iMUP@eJ?zo~qDLh;do0|N(+9`aL(&p%!asU;im4P@`DnZNk$A-F)U z<#by4_Y;+eYlYJc$5dS2TTG4-I+gaRc3jiBT_K6s)R$gLGP_?C#7&0YeS7nD;QWyi zJ?=@@?=T7*9{sqO+_w3p4X3dIuEW3;HnHQpls+>Ndt0Jtuk76`f1sUH33XFFiFX(# zr?YQW#Xs8tF{LwU#1}pvJ)= z!>Sant`peyy=HH{{LOuB#Mf~$7v-W!VWt%DKEY4#t(-S!TLQtGA#r-BWOJSbQP%=<4iIza1+--yJ?r zNKR>Uk+MQBxw*>u-@SeTH9I^-&~~U=U8QGORqZayJ*tDmi0Vyh|5`JMNc#Hzi+-{- zki#b1bm6=};qo?_M;#9!itdnA_OA=R4Ls#WO>8Yx37B}TSZHkSZkQ&+KvwA9UW_}}A zGo{gnd9UgZq$Hi5eRQBUsJ}pB@8#JUWvaQ^EN(jg4v$dn-q3XcsZELe`l1Kg>ah?B zV}Uw$U$%q%5>sSzx#NmxvTgg@Z;3xSv%ss$Todhl_V#LwlG`@|43@+i??)J#?-3-? z@iz;_giZWt~j)nR9NG?T%qw2 z*S-gjZf8CAhyOP{ITvYCNIB*Q-oQrXY?(jYM({%C~AsGdJJu;P0oq0xET@v>Pa!vU0 z>BZf1rvLrF!y1J{vFby$i>}o{Ouq7v_)=4 zH+Yv?VuVBfB-iWTm;QGq=pRL?w>j<*13O(faDXxO&3{`Vtp}XrYN$vtI_=A-_qF7e zfxh`EZjVx`#^Y$)pjqj4JPTGQ%35p`iNWi$g7Uxv_E--*=|0gOcFO{GmRx zo}#-8+ZVcytUSp$78sJe&mh`BP<`y$NG9$bag?`w)I0ZyO8S*9W4W zEx&mpSQE>2mv5P}k#PyuE zeh*W{IxZoHl`XqYD%zw=6RGRI4)a)Z`zR$=jgInOdeZ1xoxPSjC1u5-&n2uUa+MpL zY-#_LZh~&V#VIVSno^v%#Y$i-G5YmMc}{<WyMcDQn-yj-_mHEHj1nrb2YmaGv?sF zc4Oa#Z&Dw&nIi{xuee=06KEUAcX?3ix-b@_)9vk9Y2#FMAr;&9N^xze9_}a$8(`{~wfxRh*nSNCC?ZWk6PLxK1{h?u z>=6>8q_xD88uX5Ipr#dds;!6t*7jD~3PNip{sxRzepsJhW@5jcLcJN`yJkUD2R5Vgdk+x2|T2G~EkSS+r7;PnLOr6e*>;Y-6$ zTkFT_^3=5N4mNm;k8}4CBfp2o z2^|BNXRTr(iVhiGey5@$q@Kz7_5Mh6ETmOFoIac!Epgk`mKu`vRYY@tQ&P{O#@YAU z=udXO^NN9ZOq0tE0+)$cX%r^&B1a|gUS&WkQqd0-74=(aY(6bllD2VcdTUe*qve5CQtsr2IorA0(^7+ z%m8jcKtYD512?116K*AKS60=lp=)qMp#@62Q27#*km-aLjYij`9qk*Wu6vxGiSy?x zHj_##DKHZpbJnUP*}Gwp)8{2_rMy~d9U6WzSwG#W$-#S~a`u_p^*~zfq~xqrQp$Q( z(N%Tl+Y-B4@Z0yL?~bet8IW==V&>aM2W+-;zRlZi8~gtG+pspBo<8c31TOq#$FF|m zyqB{l2|Y5eJ+=dpju@%3#|O%2?fRr~&3;u|GqqQ?Sz|&m)w%n4SWdi60$C_=*IC8S zJpI4r(UqBwpD|TWty@XWZGzH@SGvkn=+`mh1DZ8kL@Fc-hLQ#j`dHxaagxB`?wQ+p zLy}^KFW<6|Sto*h%#7vjEzgtATuQZp{F{1R9q%?>!A};F7WH)W^9%oZW1oIZS!aV* zn)}f9*U0A)e{o@laNUTX)^Vl?5B1Nzw##*Sl~%rd@LEo&MqESVD5?mQg4a0)LqMysgai&pFSb)~-ixOqj^WrHEb z@40!0lI@fD_hP%{skiG6GfZ+~cNYKt&a?Hs?W3NzUCesNMog)uo@c=&DRgXxu)yyr z{Wxjiz|iW3hWf=*|DVN8uW$lEM2poOGFOK zDlVb#SQOE-DYKpUo*k8%D}GwlEzZl~!_hAyQ);A0j;;R;U~UJHv(`CA_^bCs=>NzV z+{#7PIN@O%Rtms-dMqm6ASNWvLI|QH7&X_eVl!{L<$;3`D|aSNF#X zGpxriuSW;Je+ZHo1tKC11M(;Y<7a8d+u7sETvekQ7lF;#z zwQJ4EaLjDx`%!xma)>)AJ;@~SFrH$6u0Y?nct*H_r;2~$wh3LnDy0s-e%c>bUv5bx zH&=2S1c(e;)9uZ7Sl+5O&Z|f&;3VQhE(^s{y0-~)QYHsKy240wiPTvI)osg*_WyJw z^VqZy)|9Drt-EWb`l>w>{bKl-E|%)%J(Z%r0_0Rf+?vz8$#ZMoO~Xh8{+6h}&vQoQ z?Kw#Qc&dqRTUdXuNW%DW?VN0p?#5B6AZcftS?emx!MFYzj)6kEs3rvxXAY0x#0PUW zpZ!`?b{fWE+kF@8-HnpB;+3OgqngZI6>Ul){DtdXtig2)Y$g<5Fog{5cb_$AC-bY5 zt`&b+SGbYddFwUzjazXUhspQ19XMadf|qz#{P%fTZ)-|#g?^KEsHhmlhxLR z-`Lg4CoeV^FBnt|p-Y7e{OKX-qEooHA0Ey1d)It*hC~lOCk^B(ZQK2Il_6TKyG3k| znVP1jjU4**_1UCG4`;<)Rhmya@e2XXluMPhA*g-bW*158Ul=(bIaL6#r1qOEj=r^W+PMxq%K6w^b0`dEHS$_0iQewIJiyAL_0T z+4t@88NsT?mo@r{tTbf@iSpvU2Rc5v98_PW2Ck=NC>2?s>e^NiBi0B#Qd*{}?sDVR zjE{^xD*krqTu0wFx zn=jRaLXUlxg}>X%0<9bU`#c z*`TXB$ysXQo~Pv`b{jdIo;CJFJ{BY4-@OlA-=MSnJlJ8s0=2N3;Gub8GYe)io8wa zd#dg#3^x;Ut&Of4NuwYuC)kyo<0cV%F!vG?L~@qgza4xLXHD9UkP{g=h{j;NcoIN54W&N5uZt;_~*b;<^$J9!h8j0 zn=4T)c`Kze>X-7ojIh(Ww#-9Sc9qK*+syRHdmRrJl5)cx5+MJZUIEQM$NA zKBaOjP-4bbK}|_%Yb=iNJshq5eBi~IzKlihrl0G>KKL=UwG5fCLmpn4+@S|Airk+5 zEg)^$wUT1saME8{+;P(GRFZ|t6t6gp{X@DAOgO9|^Ob7^_or{@Udl>%1Kn z?8JmjC_Xl~Lz1xMQ_mV4%FO#)b@#5T3F-ttJKFMsD;SsxPCmG9J@`V0~19z;tu=(J{Vr#oTQP&_3A)Wfq zJML*OffJ(&y{vF2Uk&nSCiNFyP*dXkP#b&()fa%V^UOHnrFOcdJbFTe@|^BzRAF=c zYop6r^OzXntNXTi?bAXQ(^88OJlmNQS{im0A5!Xt>Ww^d?3Sfc)ZeOfwZZoW^f65{ z(K~7--#H~{pQ_QS=^Vdj*};%^{`gR1;!?rbqbZ|??N1Z(;q89u8@(2;Q)*kIeQ%i- zEn`;0AW~%QIPaD4v@4XOA#Ls&8)d536=x(!4~4b5I~63--N$kx)gyQ4tK`dYY)w$H z#q^@rqnoK&;u2;}dhM-ozsI#IjLXcVaSKfY7ITEr1JCL;y4w8)g`Lf_+LRPhnp%YV zW7NK>k?w+XS07%NwlX@kdZu&yVZf1kjE<(B=mqtQ=^`O&A{uuyF2(eievVM{3>lHL z_}DKDi%J_R_hOx=Co=EHAM-9G-+r*RjJ}`LV=BKb$6Qt#9c105_flf+PX9JaPq5s9 zY;nSzpGm^>HaFh$+%BPV%s^7M-h8#a%RKK5)iC>J38lA`+OJg>I@|{j`3yQ1T~%(b zHN4UpX|L(#2i+_qLiNH>VO-tz*T zkp>4Vtr}U$wl9w(Du2bLmH+$)S-F&vQL8LPPF6(j1Y*q(NH`q0;>MPE>qkNIXzG?Y zg?LAKmq3z#cqXGYqV%4ndPz|El~2KOvf2%Yh9VMsO}@!$qIu~K26JZpTV(SPl7M^u z=iVudyC!F*8P49n(1lX0O$pnEci_Eh=z5`VscJ!WKiOHbA`A2 zu+96^X^t0LB$E$Xe4anMF;vgW#~MKhC+miX)9VWN-5chgz@<`-@~S5vQPgQ-Y<%OS zNowCv-%#}Gg{&>hjXQ^SQEdYXtKXBRY-x&%d+o00d*!`ZGnh0a@#>Ki3LnQ1Yz}d5 zlzhBda{eRX!|XGgb>1;cZYSsLS*xHyMdz^Q{s%t2X~A(3EMcaF^ev`5{v^{cM0<$lKftN%t;;VF zW|P$tEO{Cgb-%N-zT9l3)(dT%68RxKBj46LMxu@@Wg_n9i$Xy`r!Z*?ic_FnL7{&1 z=m*}nGYTf%HgWUmqqghV&J)g=_mmVBb`KZtIy|GC*)GqMoN1FHANkzT)1s>#yscX| zgb-Y#KB%0)>0DK@Fn+v%CsHaXN-QaiM`iEox^W@@Ty^zIKC0krl3(gtokis?#eqE~ zpKs#7=5MKzjJBM>%$P>aqnl;LI`i%cx}B;^FwW^aQruXQBZ6vpP_V$&6h$syw5)!# z`(-1lCuN0n#$HUgzJ$x>`Hs<*bT0dup1v|)cuPu*lkTb!d7^S*P3kUGzl3j9{e2-% zqrh&+V$s%aovQpxR9p4{!A9oMoVUBzS<2#CPEozag)7+9Lsz(qx2vPnPAH7y9LDfG z1>U2l_wiA3%$~pbD&u3urOkt~46=QvrIw3`5L^xrU+e0fniRLac6aTg^}*$8or@^~ z%)*n3bX!}Fw!RESrwmW!aEbkcS7<&p0X%-ypJ2lypNd|dK4JgqiP1k7@CkAGM{*^$ zb*QmK#Z}I4nONL0%9plOK#k%k$r1TwFB6Y8g(c^kA?}uX zS?U)vq;{DlT8+DCN}3rusO`Wr7O(DGRug2AUX#7sWy6k=p4k*o9HJIXmCi(yD}91; zT4xe)me}e$Vc0nOV}~u_DS{#^oNIGJsC3(9)TxT+Z^b13S^P{7Z@nl1?O55D8Pa}a zhqUw(Y63UfFT{K#D{t5Kk;#9F{;l}UEo@)NOOg0CHM;6HPT>{vg(Sftnoe`%G5>nW z>B(v%sVRI|&o{x=CP!9rxlN8na8RR?Uyet6Aa}m&Zp4pA$K-Sgk>)AT`;XeI?2NHv z4r$gZo~jr8Qm4oeq=IHhCY*V75~)@aQg~-0w*!*Gz>}#fpQQ7+YY9%^75_6Kf&wrCoWlxaa+xv;K$L2HZBq8wi)0`j;Kd9-Fuw zd+sUvwT}Iaw8EO)okL!re_7krUCk}{ZsgzL<2@E7+BO4i)fgvjndZK>uv2sq1Jz@yG#XKu z&K?_*jj*PNgjmQ#c6f+U44Qkg&$BFQa!Qpn;hJD>{GBV?K|KD$jpf`HaMm){R8^Nt zl@IDeEsxEKhLc8EEjo=TJ=YuhCZ*Vdx7?V3#@<2RX3Aot{F`pdHmZzjB_wJmr1(l+ zQwXJLA54qqU>^e$1EDA8> z@}UUc+X{D;bNOYz>-{)qyWWSZ=}pJX7#U(C!pslr4%BCvZ={a!j=6}5&oZ=UW@I_5 zZwiX=f$LHttMI<^Js0BqWkp}Na(jy`*#!~&9LVq0Lwqys-g39E zdhT~d<)hx6bM{q_$r{GFBnA$u?B8-a+*hh!fV1j1Wl-sS69pIN_xR50!6)j2{6a#b z1qBHsg-x@uNf1a<0RUJZY21yrAr`(@y!YdFp z>8t3@gnu#3A7llOZ6{RYbMrT?db#kBRT^kyG z6}Z6uY=2s|B{krr)%Y6!mp+>eLOR7mjk&d4S4mX3{oKzS%s)r-{bm<0Hd*&yy_lWh zI$*`ye|d+;aAAF*@0r1yF5RrO@u0dV&bwJ%+_{=NiF-$Fx#6*cJkFg@0#o!oRt;s* z%Qo{a+9z*icK3_&Zl(ouc?lcxo)fuQ(kiZqR`GFtxL%x^*~y1hGx`I4%oKLI-F2Bc z*e%JI<@0da(LG>19>K)~e(-V_Ro~AMxW9+Qor2U8R`y^y()0_*_~E6QN12^sV*!Vx z_jle7lvvom1g}NBKQHBUsZRLXop|>yngpuz{E$}lo7wD>^^*hlLm2lz87G{L_!z{2 zoe=e4y(mZ@tkn_?O$p1wdaGM9&dB|K8K9I)wbhq&+BLW)%%8N|>G6VmxcP%)_G+EE z4ce4!mBVJ-0w;oBO*me6x~Sv*q26D@p8jh*MPH9$>| z3+c_U5|6S{C#?4mdWpY_5A5m*9KgRMMsj9!De-lv?$)sv9NJ1gmKpNo0ot91?%h-O zV0%k}b5^$1lt)Ktr@zJow_cqJhpf}W58*IhD-DhA!a5Fpc|8Hk##96Mi049+SNZNg z-X+VCC1T?lE<_5Dglc&>&F(}UDK6j&I54R8h&w`6Crqs$>YWUwEHAxsME57f)Ev65 zrMl%>(^k&4H)|>s8>E^`LhOyXqn4=kn^Dw-3&N=!W`svS%8YHJvKucR*@<=w_A!?9 zEW7@GLWtnDfD@AG^^L({RyrTeB_|XVWMqa|y;Z@8B;5ZI3?u!R8D5(^otGmZ@|q*j zZ0CNIrG?Ff&>WAruD7LDyjI)eO0A5Z)!mhn=jY;_mXs${U@18>(zmN*tV@&2lC#S; z`b`EW5c`y`DYNf23MXRi%uUMN_=DZN`Ijbw*H7~*ARB`@s1LiBO!HQjj#X&vC+Ams zb=OyIR$dJI=&KSDagdVolS=fdWkoD_2 zGhuCaNlGH=aJIC~L_Z~~Y}YpN57xDJN?YXi9TUvJ@l}>e-1EJ%bn27<+^=K>Mkg#O zV7g5zo8|Moap*Gr6RI`HUH_yOzr_*J(qE2u2glEP>PwqcyV$rtI9Q2DIm8x-Go}or zY+lk|<6lmoO1XboCr8Gr`M*gnw$yTK$Hta1ZPU-ScLyPN>L$7pZ)isb^V(Tup7^G# z-$}`#3b$vRnlxan$k?PGkjFHdPo;Y)60?+$d{TqiZt_68rn7@~%2<(&{QTpgS=30t99e%YcURVpq27t8(UAy$k=ER&r(`;#Q4BtR~Lq$~ymVgt)aq1P#cl3`?}Qs;I8)yx{c@a>K(E`M5L1K}W`*8z&-~;n%8>}auD;f{ zyCL(qhZQ!&VxPX%8Lg1lT2yF0DgOOo&YMvo{~XYO_)3avYrT$WsEL8AWuJVhXQnaM znwLaI^>#SdOL2r}>9uuB^49Te4Y;1I*avxLe7GoFf6ax|e>NZf$EZZqlKO~5cKrS= zKh*hSoiV1xZT<;lWUT3efeByFsSWb;KK2fQ32K*zMkXcrR791wTiAPX;g;)zjy`D> zw12WjDNWs^Zqw%*+>(x$_Vn+ZKC>@xM*CNC{f92Z<$)|(?&RA3i?>_v1)Xv&C{$2E zV_q429CgoOy=~67YiUAx$nNe|gtWuBpcy{4lt%2~`b z*nLCZ@hERVu=Y$~{dd!1%t++D)f0!FGB5{xCZzFYkzWW>X{T&{q9vE-viI;+E?*co z;wj&t6b>x}I(%giciq%}h%@YS8aR;bkP|9sF<7(w>Xk2gLJ|Rv?Ae zx$-<8`Su59d9AL#8Jjsx=X776T!(~vdE6c;`=2$xtcP<`SjWTm=GK%WngPyb*Qu^= zL^70D(T|VbjDU}rNtH`Wv)Yrnk~@!X-LA5raF<&IF2dADm-fLKhYa+mQQtG_8z;}=4%t-*GDn< z=SPxcn1Zvr$hRC5zi*W1cFT?ijr+*NeP^g~_}Tx+$d}an$Lqab+tjq*%^9sPQ=%iSC6SmB zZfE=WT)_m&L|5mC$EgcN>e^b0!HV07^=cxwS$XOX1tISIno}nO&pi3sV2h6YsG4Po zD!{ZRAVTVbj7snYf~s9Iel5D|%gs2)UyS-D9&<4fzsO!piH2nUu z??8UVWRu9Xneg^K-lz*l?nVoAYHd+3f^>KqVt)2%`rth}RBpg_77gB~h1~V^76Ui~ z+cXZlIEdj|m2WyW1oewK{9{>uR&>yqGT|*%?(OPz_y{#g>!z66bfnwANLuqYSRCj>u``%1O=pVIq9N#ba^ZePRv)UBz4R* zQ76)4+ikk@H*ZBXvQl3M);X%%W* zmQ>_9uDC4Z6SB|HkMv#+ddG*_-Wl}Ga7T}p+7IcsB1+j?qh;MUq6~Ra1?2P7S?SH! z&7LgBPp#T#8EVX3Yu3AGG=WM@62(68eWDzxP)%==xp40bf5I-m8#Th}K0Ge7T5X}0 zyq?WFx;rKEzs=6wi(LD}8!QGjiNoyyoG58m!T4k9UiJkk?i7EFJI~E-7_K})u!aQ8 zI~55TzJeY;@07NlTIymhw&v#adq=Js8jKHiSgonwIz1)mk$O#oYq~@Bpp?C5PUG7g zL(`gP3=QXL&fu#02tt)QqjEwEA0XmzO-li<-gx7q`C)Be|wneCm=0ug%3AT~1h9@Tq->b(eFmK!&1~)UUhE-^(qw=?VrP#;4rk zE;RkXi|iVz*osf7C)2%NJ+>zO$j&$rW53SZU%1LZrS%-`~^eBj~_wS^J`~XF6?uuWq?#P*8H-vozon-1&?#s2wfvLu=KD zPjE&bMcATYAzbG`8rG^*7@qjBrgX;iUAMSF(m8EG?kt0F749by4kA3#AqAYTkEn>} zuwpK7FnYMPr|RPlxA+P69M8C?;Tp8myMXD zQQwr?v>8}>8*Ujqro8v#t@E#!x6xJIm$RPTGjOKOL|LRsDTu2-8c*H{(Ps<~$=ca% z^~PYzpXaP{vnEkwjyv8@2$RZF+gmc#P^?AAK$@|)<=)rr&*yg;6g)wwc83lGOuF-3 zMv;88#tixUTd&l!-dyPQvb;H{wYFum%=)U*;9-5oSGt^frDdtf{4+K5;R!6q2dGaw zNwLk3&YK*2XL;9_fCYJzbD~CB)!I2H^YYN~0V^BnTWnp)&ZxuDM>T}pXE=;w%lW=1 zzph0cmqmsAw%FAd_F*Wm<92tkt_fy}NxWDP?6Q)w_!*t#t}jqnS$!v9vQRF+(b>Nd zB`ww5bn2hw3Z=11JrPUpTj?3r1XYKS{HxILVs)xw+w+D<9{3Kq@O;i2`L0y4ky}}J zwuMS=Z+uhzRM7v{5eT#W#?McwNBSH>fB6S5*lZ8~{C23RalZb{nA00CLHviiq>Yry z5tMyr_qGKQ2Xfl3T#85pSDJv6lB^N8xWp1qsq(X2(8OSS7)PZ*Bl=pKiB zZu{wqeld9FVZTcuA69f9o6zrTn8pwET07`+>7!-+mhIc``cUe$4Q0iIv}c?HCK85< zCt4osG-8d2+U3^VN9Djtx^GJJD-7ORP`V6t9-MXWB1bj8sX=i0~vyl?F?T zdE|JU!dfF|Jy48#7*H zvfs9H?W$&d`?!z!@XehuL0(Um&i4+7yIMRJ3{6cs6iDUiaMeAm2eom&W<7eJBrMY} z4SS0&2b5VPo#?IRP+M{1D|AmUi|HEHO_jCeVvc*IWTPK{dW zaevM!eiJ{=-nVaa(JpH|HdZr$;r!?0XLf>_sOdW6u`+ z3>^H8dE9gTYPjv(sW$t3_hUZ6^=2KIJNLqjzAxzWqg_|m-^vU`UEvUPJTYj)>3TQr zSB--Z@nFb}mD%XXA_q0s)9uyrUB1QG0OQnpBc1JYVS6K-o5u%Bqb4clr6HQvv%Ygb z5}r7J$an_0beA?=bu59WIP{*akY zuQbh9N1B^)XRTS^@e09b?^|9y5#U($=&YXFMZ9K*tuJQG{a9r9i3g8F={{G($L8+R ze~l_y1lLEON6GG;o_fxs-ZuH_>br}AsR^DRgc?oe-My3SqtMIu<>WQ`JqVv=lqJ!J zNQDDc#@au~sFAs?q^n0YrR>M1NO!Rjm=8pgOzVzyhYNOnF&Ngl3@sMK_>vh>Ts`WA zUue=D&vNNis}zxZC&^Iebo}TsyGpt@YWb{pIDqe@a0fs7rBX$(DEX60{wwZ5MWcK( zGVg~E+Ib74-U*eZGLBU8=wN5XPMt=6-QqgWhCLInXXW3T$i+VTR^iuLG1ir%Mt@aRW+d*OF8@TB4EE!0$}9E>H& zg$TLp*tHstHQ(^n@=J=!SVPn#IHHCJ4nu6M4@ z1vS5?P|XwG2gRxdd?WSz3N3M``elv$D%N+Brt;m>roJih*|~oaA{{vRo>$)_f@sKR zEzo{cGVOipOk&q*!7TyCCGtO?JTk}3yh&BRfA{ct1EmXeCh9{`rY+>hcobTOzt$2J zRsJ<$mOr^-f!eQ}P>^75kd%!S2xVr)mv;K4Em|>;CpzuRZ4BEPZPwRnQi@;YG*wvD zs_E-2{)Vi(hb~136+6B@v5VZ5(xrLky@|$2^bpGRtAUbMf9-Cq{9x{o>*m3^HbWoo zF~ao}Thfc0Qg-vpjIf;bdwpyMFAFN&6!KS7+rInOm4%{)+JRd#FWSWSJ6(TGZ@l1y zkLKO1i!s^w}Q*2LxtI<4Jsw?2K%20dpLaXI65M7YvC{Y^eO)>rRr z3y)8Ek1>#%LErc*sYf%!t_PWt<4SL|(b-Y%P3x<1Uc6X{In9qHV$!|i} z(fy(a`RWa(KcUYqs#}y=-s*jlS8LNkeh@Z4CzY~ZtSG3Mrhiyl&2Q#a+QkVRsyi)U zxmaapHq$09|7J+qfq+J@MC}UYuLa_yzJcAaE7x2K!_JM$D2ZLiouj8 ziU9&c2%Wes`1GSfP5*0r*p~UPHj>#nmjy3JbIpCA<&U|Y(RN&d!nc}XlA0r5nO_pC z9jxC?axJo6R8^>?6)5<}b6Rbiw+@}VP@o@GHLb8}Ysytpy!VT=uF2NjL7p8ESn22Y z5%YJP@%eSn5X!n}!dTJ$4n%WbyEdspIgzBEJvtsV{H$rj#!5Z*d7M+) zU&pavT`sKSQjUNhynSE)T=T<0%ehe2HP23C?lzZ>^4~$3%+@EjzIx$>VQ$q(6D+B} zW1H=Pl>n@a=Kmq;y#Lw!{0QxU1?#wdwULbIQVHx+iM@jQpa`mlkgeE{ z`A(gwY$gL+oj|t~o*OD3f`n)W#CP$WY9lsV2&|(5@CNNZovlc_mey(N(=HV4n>Aon-_#v%7V@sJ47E2->QD_4Qc#{_##7_)Hb!x z@Se`upQ_+z{w<7_dmNW}aJ}N3cISzroY`Qe9Jqbxh5y@usWscdWi{BZfG6}V>(@vp z1)zjwy5+!`vCr|aj%OdxQ-Au$dpWL;ao&!B>vlGWs6UX#^zGM9$fp4;SH?Fo=aFyI znb?k3%eAsVda2!!&mb9%LF~I1slx?*j!BP%aGvf18VfQNq%0w>_$DtU{MsK=(d7-B z-0j@?KTceUcK$YI@YMInYK4J^8Sc7C?<@yii!0u?AzpEL??=*nl!oCHna)#rS94O2aF-M(o+JP+!{)jlsak(KCz;ChjiQ_2QX8 zcu76!_wY+wpSk;3<29L+As;(u>TTHDGoB8MQYqIfzW)LK2}@M(dvn9Tyrqi~zALlI zd+X^L$~M#ubl>^uYQ=8c@iMzyJ*>&<_Af=F?K?q?t;E#ieckL6)!iKlp#S*X4Aq;) z=%^l5W9hYIgPI*~qm*Y?Fry?`$7y2TlEH>C>h*$@`oY=jgHzI%Tu?sAjfmni=)x&wJ$E@D`D%q{bACPMj_Oo)Pb@GwuzjPF z{R2ERA4#>@H+Zpil#0E@)wM%gYJeLrulD8~$&h3v@72XBHS5w@uQ&(r+!gtNi>x7i z_L-^ItTM>1{uRZ|3JAYGs$iYsI*p;dPPV{MVaxo_$Zf$J7-Fn=i zstwY*x#v+Jgh{Bj%j6f@n`38pNI8YvCU@Cl8ojk7T7SQm#|Oy)kzX@YN#pb?h9=S2 zYZ!9AVp7Pwebl!^{Vyk=T&H2LV1qLlvdr0Kr%b?3w(^b7MHlltT9~NfH(F9H8)5Z9 zrrbz1JmdX)V0aQpKhpjxiu_9K#1Cl8GGKCJW!q$Phx>0{+Et-3uE$SX%RW9}K+xOa z8;nlOx{1Z`#8!e8XR#_>2i)Y6Ll(14EkrF1K2zw}?=CX^{8wh&_Ag=Nd3cjaNGk4Ja z;!60pZ&&uwfBpuv>5zVMPCO^A#=!Ek@F90esdaU>hS=}1o@-qo%Mgo2WBDC0vaRE< zX~tv26foi2?disoTiOZEGY$Q^b4x1TH=mA?f7gAmwx&e2je|)Z`ux=lA_I@%2Rw@e z&kRrgkej@!@YZSN{SO)l3JNzsCs&RXj_qR`ov1z+LHv%rU^F{2h*CCzN4n;k1YZ)4h%r7go)qbGrd61?0``;Eot z>ssWRK$ZaZ=Fs*7K}IR$>S(2}LkBZf7UJ-o+a=kNn6P3;r_cJ0#+RW+XEyP}3v}cw zP<(AdSt+K_V)jc(%opzx`x~-3Tn(lLrT(r0jjRnOIK zF&KLlm$D4icm-(_=U}$)BZ+U>X*D_36&ePVL3P@aH&V9rMfAbBk?+`FHkR}oA|neE zc6$&_jln29rW>}i_?fbklBV}3!$e3!oNK@uPh}GzupTh_;9&Y)T!v|EBe!9YBR{XE zEM8dpgnqWj6HWl$bogmt@^+e3CVVJDlfQA$bfoEF0X zhQ88u3uD@zfKB!^6U};99&BKJI3dZ#rZA7>+|nV%LC)#R=qc%@AeE>H;S$D=X~))p zJ3zrH7RmU<B-(yY#Y$gey8?^pf}NGcn9~( zoyB{C-J%7WIcC=)YHc`>ujo+EL}j+dKQl$m2CKfyoruhB{=!^m10!F)@BQXD)AVSh z@g{eZq|U(wtwmrhht*&pi|QZ4mca1M1C;*DjcwfDWHFLSGLPm)`Ut5y*|9rds`d8U zE&Md?=tIg6E5WRUY)0aR`{)zY^)4I97`LlKX)B$6vcITsJ{P4q=xoaA5$Iz`V;eP& zLiq~OVa3FA#McMsga-=&$(u1FfA$?GQuku!V3eAgky&Z#$H)1;MV>v(Wlbrz6an|} zQPg*32IFKDsT@o$%Fv1vixY5LIp4ocYxO;4@GrO}qojhQ{>D{-1m7NqVt`bQ76-(TW%nQDw7O-XU( zZ~<>lf6uJnX*`KN{4h@m;}2Ai&Y$z$Be|>Zdq2OE`tg{Z*;oFMI!s&EOpWi1K>${& z>;rZ7N8EeuXqZb?Db1mMTVXfQ(sDD+=J{v4Ao1_3;Nj}AVkz0?wOB5f z?S&xG$*qV_2{t#g^;!jU+wbm)MD7;vf!oZM-jfj-7ypOGQ$bDDrm$*(a`k3{*re6g`xWmy=VQHOPlC4nvbn)>ijmJ>?dhQKY7isN4)iPc~ zt-gVc2*M=#HPP}if)DlhmkNU9JZb@Zmb$JiHu^A0LhRtNU(Gc6x_zqGsIRcyLruGk za5R^X)(cs3ck_uY{#>)BosrHRvf8C{0_^xc0Cq~sshFSP;>XnkoPX`^@F4u>80ti4z}8_;EFvLw)RSB z+_Y4VMXoKqpXOo-X6=_gQ%gKPf&K%#O^@wmd_f#H)MRHXf=$r9W(&t4s8r=)cQp8< zyT7}MIk%kSjMIDkbo;Sg#UcVsx`pOf8^&q*6v8hcy9W_`?}WrM^Jz*IyY%H6o|QKR zguF<;*J)E*dEqwI;IIsRn9hSkST+>y7mVA;lPDblmc;U3v9v5!RE^FndT!YjoBiG@ zN-+6kC#KfP2dwc6M7tF~i(ZPOHX&IWc|+Nw^^(_qaXa&+_ms7ECTPKH4LZ;dOul?n zcf(-TJ#}N(=a$Aq5xhThA*7R)7KFn9?L$^$M#1Z6c)GajO3BwNaTbmnu2=<1dIcrm zx@)Q(*9PT-BJ2w_@x@?l6uCu_ig;7ZR^aiv>czEm>NV+IB@##a+2?>r4Evt#k>ng) zuWX}J5b)Kf2n^4VkQIQ z%UhH^_P0d|>Sq*pidXn6=YOR#;kOAgW1GjSVooE>XO?AIec|r&@46$Yi%&y2nyU+X zD~{Bf3tqU0;b<2ut^+;#ZF)!tsqZ{B*{(HY%pShm?mS3wG94KN4T03JXofeshP_19ta7XFP3H$-EKe=)~N;rZ0Uc>VrROMSyZU@e{ zvNWu$bFmU3(mbUaVKPz|L@x(b3CjuT=`Qv1*MlVQyCRqqj8!Ks6NNM@AkglWLie_R z)f1(bu|+B7qkx8HNnnj2w{ECtlszb{KkQig7n2$q&El5;m;D*W2nqPNzc8-2GJZWD z6hf0Ed^P1Yps8kIS1dtX1iaE${5|zK*X|+V2@%=@rViac93}Qmb+kKgma$CytV4fl zmCO>Y+0*%8(1eYGa&^G!+ILjJsQ3W6?{05cqcbSpKF%sI=+-%{sc-;_T!s}LsQt?? zAvzhHYd1}&j7HEs&%6}R`}8v&>HUf&cz_3W!PRN`jy$19HKn4mt_AHMs3vwITby9~ zw?~2d(1~!P@RWge74`mmm1pRg>#9hKh1ODCAyG! z_~|=)Hk>oRqq83nE{;Y-@m1Etnl7>lOgAC3N*B>nZ^WI_6iLuz|FPKNl@*`Ll+ ztAK@W!CklC8Q(+O$@ zj!N#>N$oZc{s|4kCx;qBAoOTMZJ2>ns(m6aS|?9Bq>pdKj@72dx?}MfwPUwDaFLON zZ&^K3=84Y@0Dq1n1~IJ~X%Y~X*fNt-U=n~is1^Yrs{#|V(@?B<`XuG<*;ydb6^ ziKX-PJ!&IN3iQL}BmR0@C}IF+B2!fr5rI4UPGNn{Vf=8IC@`gE=ee#Z$YaHfwqhrd zYfi>`@@XuD<-Xlnoc`qZOq`Q()FWuj?P>KI&i4u1tyH1@qSQbggWd8M7wL)pv6U=y zHIQ1n%W{J-rZKwQ?u9j$QF zNfvpVBCA8y3pYY0`L>oG?8%;s$B_}MSlP6;BW30G1$$Mp$;>7k@jUlHfK$Z!J72LF z)vZE7xfYRElp0G!ZddKBO^`K?$;z~5qnIj{Vyh#UH-XBT{G5#fBCH)OU?mKea9xpq zxI!rNKzi5z-H`}>d=l{$93$UDUcYGf^{a{oYHYw%;+N!{eh2LSnFmY*tk~g`>^swV z%fE7eM%8YtCN)V*(F8T}9L;&rdORgA%K+LntfYZmNCS?_2GkhVqgkq}fBRiqE);XV zB&OlS=6{e|BDkso_C_-nQHfi^lr|xEOPX;oR@?ZtM;usfdh^{#J^~i^ZCHCI{@Iqw zW%`}eWcNhNvb51(WgiDjwwz?lN$bF5C!wOjnKvX+=IY5Xk1>xvT*gEs5lB@m+isYo z6vErL(s0anScr1oc(!r*iz(RRPVFyu#&=~`{xnRwBD~_*4%NiZ@mYN6Z$PMKJkFnp zR3zFLu~TE@Y)ujOHk@v7AeMCPj>;d2q1Zya{a855dF`;jVQo!Khp%h;-ZNHRrV7>W z(%mku0tdVgy0In;4V8>L^l9e0sw3lQjM1UPI@l_cg}yLDT)RjtwQ?7rJ*qx%N-Kc# z_F(5zvU(?n(}Xm@N7U(M0eBB$WUN*0x!)u?XYt6rG@GWNV*DBF1;pQ2zHz6u^tDi& z?FSlEwd#}3H*n8*-yq%`c>B89$hmFzd-S)FS!PLzJWpgETYQx|u{(|#MEQul7RuD! zsd1LFlXS*hNDEkbw;WuCQ7*sIk|D*^v_;2i-KC0<^{o(?b2(VbUwQj&IE7sJUwz`R z!PtWWI!QF~KxSZrvqOPpoih-V>QFaGy!-i5XqH z({sD)Y&d6iVo3UMOz}%i&niuKF-c;32p#G>YGhcUmw2eU;Li5)<;y>Biq{jZSIH*2 zZ8X<;^7&Zlo$ZaWYZW<3QYpi2SVR6Enc){~E61NU*MOU^$ymt?A`d?M*sr|)oGZ;v z7CkWJk!eZb5b~0>yBxd2jK$Rf(`Tm=>z-ao{M#kd!t|v&s zx4^g+Dtx`G5aqShs@YWM_Ce$R49c7`D{=+$(kZe zl1h5fu|GkEY6~p%`+oq55HZMt*!*e#w_cS3-2{KD{GggY#&$Byg|{^fy#i0~FFUyn z25+cIe^Ys0Dn}K^Q#`*q3>B$Vog9-sJ(gFucN^fKs$-Q(A4mfJCGF_zDrq^&Ds5O> z@Nh^UeEInxYZ3L_0c@Rf(sHzeD(A9{d_Qyet9T$#!CTTrgE8B(GLSi|i&*!{x7$r% z&y9_rx|^<7%g-g;HLgx~9UMf|D+xpuFXeH?O1(fmw@VO}c_Lq3EI%Z2tB@*bmi?S= zjQ$gS(lRBj*Ik|=cKWwL!q~T`O9Zpf@Chl_NWSsoa5_{QIc8x-jAm$GQq!@TML+h= z4qZmCte8!DYc6}LcJDlWi)9B&?n*%-RG1we)ZsDk^Z{MYL30r2(_&H_Z?1TZ0g~iy z&PYX`MSd9xo=iL82rW%R{3Cuq=w1}9$PH1n`PTj2Kln4Ys#0yaMa$I8UF9fnx-vN|n$bBu%*gk>(5hmS?XP%N0UeR?ees{R!Ed#gP`OT1Z#FnD^% zlU8qk&`>{cMtPIZ0G!{9KVX0+5y-+UpQPexm@4DG|qn;&(6pz)=+e6XfUfl#( z^_)X`!puaaqa;dh2fTs!ej8Fup!h^@n)&nMDmD`!)TY7jnHq=ml_B7;l6Cyj3a?=--4PGxp|zNk2CklV zE?SP4ximWcrY>YIHG!FlvVlE)w;J9**mLxizr{UbC2mFwxS!aYvQ8MDD5BT);`7KK zI}wYm%3~AyN{6RM8^>0f^W7z>h$LOCtUcPN(xQ`52qSmqKdt?CyLQD29b;C5jO6e9 zaN_W{`eg=U@KXkLe-Glo-R#aI0-%4E>Cp3x%!~2~f*-DXD=(Ruvi?f%na&wVn_B{% zayBP8&g=uydIL0aHcl)3rXOhG@vLij00}K1mst=6n`_2dzr?PTOia_f)F5%`B(Ix>99(b4Lc*dsU8@Iv?**-_WtH8MK{@7%{L_zTVPup@Wb26(opK}IW0R5 zx%3V|3u4~RNzLCmWK~;v|9-OsLG-cd})>37IG8A zKGM)w5Cr>z++Z-&qrIyyQ>&=nZk=Q!bEoHo8%a~JU+D21DK6NVsYoIA>gSDia{YXO zeZ`j@a$-wWENJwdw?x3JbvGx@)yECR0BU-dR1aqsvApj#gr)Jhg65bGmFh)Q(~B|t za-IB2CVifpaudE0r$Rkl>zfN(v#n~WPiSW}?kF&sH~F_xNpv-|3JT^7!?~GVVvNO; z=?EK1?yW7Z+bL!cgtKUzu zm96yK_5U%!TiWSmOh^%=_I=lu`~+EI=pmf>v#OB4M4bQJb3zyp)cfSqBjK`{Tsy`H zR3v7mdDFiXIUP@T(5g&kyr(E$+X82SYi=}{o$$hL>bj^)yl{4)aT`~>i4)JosCCSMsr`!TVuLEIYuKp(x z`kdRVItnk_MVYtoSYdkQD`MILfn4StA(0pyi`YfYEzi#QK^Wx|Z4RyLUOBBF!I{`x zkfAXZ_4clij#}G7cBks^jP?>)P!x!&droo@>t9{TI(%7F65xDE(bP;(5h4omKN*X|0~-_{Z%3a(g{HC}~O>Do!G*ZE%es)pTW$o>iR$-G@$}VXKR37M}=^N7RO$i4@i)!!XyjcWkZAB^ysSp)*#BvlsXZ%%ExSQEy z_ULJ;@L6FV!IwqPiZ!JghQPjae&Z4BYLm&Zh7$g>70w}(lb~cm(*COX+K2jvf%nmp zX^L>uXeMmhhIINC+asgz0+2){kTz|i`Wtwn1lFIyZLVEfvhgo56-a6b-njYmgBI4- ztM0KC%~xKEuYX6{kX#8e#W>SM9r?uz?Bg|cJ?xMdYq9prLYUYx15Fm+8(g$IFw7A% zsl-q2LeHT4X>iC0ntu1tZkMvh*>SW#jfp#1$oJ>jDhzHh*CJ4!x?iN{W}djUU>D#M7=u76>im(oIdZw$@$GJ4eyPCC-yF^;FyO@#3nQOnGrI#eDh7jdYuolk0_` zU2NnCP-~+6VwQB$kovfgWLeGqnNj-->YK`LNkvt8UUwv1xNc8c_GCqUalo?Vo*atV zmiw)-33-W%`Th_8ub#tNfHJBTCt3TGN0i@=Wq#a(Lu%y*&r2UG`L%vc+f&#bF5gQRHf>-veKt`3@AGof;sW5-LNSco2IEeY6Y zk7Z(a9OhKb35f(&Y47oHvMJU2yj5#238Vkxg3;gBF?QRgF>Mljr9NV*pCOm_KLF_F zO+fXhuIG0deF0iT>d})qy26ZMUCjaaJLucJ3bV&No|>WyAgVz+NsEpAzpr+ohq+m$ zbhZ!ks~R-P3#6ZV_4$T2eU|WccjP&#({JU|d$D2DVg?lX!yp)2b)}}6Gt!yYSQZ{X zd~f)@=|4#6Fp{dBVX#VYAr8q}CvF7^tfkZLcRzMCZO@~C=)Pp#4dNBgx4`7>I1jlk zBqY?nX8uuVO)*+bUHFab9v}0yu>JsX2PL!UMSNX9MN^9(jy|QVBeS$tq5av?r#^dX zO)leLm4tse5OAFHQNu?YZ7`;Kk+2bX-}|e~tNhI;+woW%LZWRw^7GS~mz;?MlQb?~ zvXBPb2kCOId(`OQWca(iXGUja{U`w2ERA<%=kWu+flD%LY)AUe4J{eHuQb8^bQT^8 zdd{#HC`&(mNvV~wZ{V~>Um5A|o6*)(g|FgjVQf6NKBW+E zj>2$-J4n3ey>w~$5(&dRZ(Ne!gA9}Gin0}$tC_o@nvQ%;Hh5}I(x2p_3G@7t@l$`Q z)>;PB%SMPQ)Dq*0ekoxkQBmClv)ANuCQ&DFG?qi86bsD+M1KckwOI_!Pl@K0BQ*5d zkU8<(kr>M1h7vn0gGaN8Z4{T7{qe9Z8HYb-g1?HMn2wV}pk)PUrPk}?fZ~Ce9^dsn z^Wm@EXS(O3xW_0!;6Ks2@T?9|U)9zd0hb8?%$NDWeB(#n)MV8>bGGT#GGn$7&g!FB zaIVO*Aec=^s6FK`5+qg^zwS9kj$2_cYPq(Jb6nfT-Tt$UODUhD_kW9QTMsIO1`Drk z<4MV4;HRG&jlw@$<)kabT?j|2Cih4ZsqSDUe*C-4-H3-tM5uXU>%k| z(aO!K-z_C`w>@b5^-Juxuh|}zVn&RZPi%*C!pe38Ip&2RRr57ZWgKZqNhgJF;eX`D z`X<_9q;)DB{v9IdYu{5{Ju;3YnMDLXW?@Jbddk3oTCyf(XchzsNHlmg-F;9!Rb)E; z*BB`LLJY?DSRee7f?TR96zbQvBNjo9+aCHKpq_G}lH@r|!ylBj|tV#)p$%hy?te;V4H!fXI0ci-J(YOH#dygN9~K6fh|DQv#* zi0boQQ{z=+XERNZMR&+tCsj890AMB4QjB@>>AJLOCZswrUq!Qm%7(ZRh(Ta2w8F^# z_~)%Y{E4ktBNqc;L{o}X(@M*E7>PKDWUnL1=B1u!eS=K}6rH+``K5aLECnXICi65m ziWja7j)NHl>l(P2Ui8?Eun}K%@|d>P(EG(9A&o*KU*S62zzSyD`Y>x_=$H!pc&SX^#6^7C0O#7!;gF%X7E%XPbb49$rv8 zuVwyslJ@O(U{<ar-c$XL&ac={$VR5-L!PqxO~L-GYO5WDQmy5w9`FwFi$(+m2r&(~33IIm$ZJP~UDjdQx^7s#$K934+MYB1yRI1<`kOOMV?NymHU|tdB zaI>4W{NWoZq_4S%T}0Csi>Bqkg^%SeXRLU5k$M<|5E*IXs?`Br7k`(jOw$Y&D`?0q z?iJ^8VU3SWLJXoxQzE!=(;XIk=%9WL?q*Tp4d!pslmzyJI+7FbNF@D?M`L*u7cY{Q^wW07IlIC0hop8>xhT!peTbTu*y;Q!$HvD*6z|8tA zL;ge6Q=6NM_b29O_?izyj>3qC%x3+%D)S+W{tSQfX@Lbh&F!j5oi0f}y&OFZHmA|K zHz**u$`4;*`!2%9^JQs)lzK2HmEHUkf8Pnuhm#{fQqfa=4W^KgFlL2qszY+E5_=X+ z3mwQ+2UF4tLa|SK=JH(o&l4elwgo85=t}qZoq=mXP9HG+=mHKeD4Q_)#=K>0?_}BAof-l}q^j}=ZB9Yropi)|2AoF1(t~I!chxrIf+{Pl=z2r z~-rDe7g=?@ktZQnWg{mMU4<&+F}YtGICNsCpkNu+1u zLfH~2iXP@0dR<%L+WQK0=);lvFaM4?a3o^dk98ZrDa@oKQwH^D71(jdw= zte*i3EW#aqr4ptG9j8eSA@2cAtY@Bj12SE7mM@O3Dm<(h@prMxacv0{$zmE;YGSQ_ zw6KSHTJ>$CWGTg&K@lUG#uxcc^J=>u7%?=V#GdpuwBwOiva6y5eMUeBY(H<8c*~^4 z+7$cucUFeFEmqe4|BVT#OSxPKq{bViE5s;&iS~Em^Z_zN^~Ym#ia-MfG_^ilu~FHb z?x~42y;ezF4*5>F0zQ4;Q}ddJAB=LWcDNz~+OB&_Xq3@YRzGu#;pjWzKMYWRlah+= z!v1*sYy0x2+c2EY6b1SRzPzuRNzT3-3e1f-pXG#ElEodyw{>wQN%v@W;w%SUZdeJk zrV3U1JdOx1iD5W?x%~O)==#hs(awrnzzyw^s8%RJi%#rs?kOElF|CPiZ*ZH!{w}%vo1z|S85<#xf0rV@BL6w&maB%$+xaJYt+=Me;Ni`Jz(2!JZ~zf| z{Ui(E{(}Q*B|?{zg1WO#2&Gkcd^o?(jEDohJ-e{;>fg$C(0Xs)&XMb-ab^+xrF&>f z@*l#apro@`;mm3iRF^iiPH@=le*k#f=jI{eeAOA2srq;UwGAF}MQ|eob95=BFFyJ#Di_nPQPo)0HzxYJEvkNzKqH zU1LV{+c=HIH3JLL`w6~2MnUk)Gy$NnJBx_opJ!XY-@K~a{YX&8jo6GrN^~H0dc{hr zzc5gv`fE+Z^?1(BR*c?mmYWmK7+)ojFxS8R7590sysmcnU=f?@iK%Dboln z%2HUIr0S)s$C935H}z03$l3>4lC@8?-ym}{&4sHKBnhhm8dRULXWJi zlV#}Ki=)RE4PCH}UWljLRu2OR-o}LmfeY<87l1u;u}2pqUB21V%?uFX&}hvU-#gBS zfQD!l)D?9&j~6e*$xqF)p$eoo{Cl}C&t3V?7X=rQT7o@8{c;fA@nt1#OMFyA_v6>B zVN_jW?>g>rXcE&-AU7^3=2(?*a2_&D$o`7F-~e=R&1Mu~YvcZ)S%F(thNnsL#sOPf znlUleouTp0ukt>jWQ>HgNpa!MV-HLj5``7`y009XhV;;Rjb z&mbf=419?%GfCq~2gx^+NMrc)v=v^h42QAqB7Z9LA+Z784p}&ti(!v6X_3bu3>5i# z`LM!;1~2Maxjw~fo;9IQ#x2RjI|uH%73b)LQ+-G6i`D|`#NiCkDYTFfAXwOH3RS>{ zSDY=%0=-~zIn$weF=joS));povteU4Z%`Y-d6h8Ex|;FH*a5L~C1kkPBscc&<+FhY z^4j;>b8>H&zD+Fb64 zi`c}npnledrQ{Bcp83sO7Lo~9Ab@6Z(n6enRympz%Pv;v z0)3cYgoP8eRT4K4+TcS-n0ify9w;g!Xx6x$1Hm_TJ{P1Enrfs29T?MWrDKnBq@gz7 zeOW{t^^XhZKJuuxFc_8W7NYpIte%J5)UO$Xc#CtM)%mOOtt*l0MxSXw9D|U>%XyIrET~AUE8qY)zouN92*);`@^1=iMXEBbZdjX-y#c~rie(+zr)BG9d(?5G9|0miet z!l?jL*5lsdf+lg{nlgXQy_mC3YrilrEBuB=6>+T$tS3$p$Sad27oRse*+adw{NeQ7g#kjlJ=zFU^lm`GLAeUVTXis)5U9dpcE0%Ps+ab55npp z7!?fcnQs?0Gw}xydai|mvAoYYkfVb-7U6tEtsAl~5HNO<^`dHe)`y82x|j*sVYY4M zHtV*4AgQ2;zST!(f8SJIorl!TXMw5@z#@|ra%=}+UTsD)41MU=veHvHMhzwZ9)6BB z{IU}`+-Wx|Hx^}&LF!&)T0S+g|DLOQWoUhUq^pu zg6xVGSj#F=4RO0|(?wew=WJzK#g)=ON4s4>aq?4TMX6{G{MQ30q5PB+?hg8reIgr# z@MeJ+TFP0zN8I)WSqXrrj{&*w>6mx-WkL_nLc8wStFbEmMD0=8Vo9{*@oTjv?U|p4 zcayLE!VOoG7aC8#g3xAyBakQ|d=#c6Ms>_`R}nKz*d-CS+!7Zt(4q+jM#MDdH)6%7 zw5%wvT*Fa~lKn(?ws}fgR^*+C{o;wxtA9y9s5Cc?n3qE>?8$-HO{7hA+UKvAOQr1T z{u&89ILQ4~+tOfGs5#d>Gk&x$-bzbJ%B+(wOm8G6KECc- zfnu8PUXItz+8j{xvTd2IddHMB#=q6K(JcRLF_JgT)k9^J52V&}^NYBl42VCECwbWh zE=~~U`-Orwnzy;-a9u!_DEJB|+{ekqTW?}KE1;GPTBuK5JP^Toj$unP2nP2XbivKM zdvg+{&=aXzdB2y&kp=0ueM>c->R=Y_5;@`V*p4Z}m_?%9o)=+K)cZ*Tx`<8-G~pt< zTa@g_cRJ2Ffw*QX6=kC*b}1uDx|L+m7-}`H%Q7`avN>MDt~Uh3ISAfREdn|T&v%#u z#m4opr<2qA2=0Er;U8Qp*T~<}p{LjL-B)i#knjdr{}h4&^4_CCyR*!nhF%Ie&)JF$ zFT>=xQbUk;L%hnzL$YeFi4Y32G!DJn2x2%R4Bo8U4^RsA@5 zY{!^#Dvqa+!yxG(?LZo|7vbPT1i$b{Ou`_0kz8WqH(9pgS?nPq4qql{N>5f4fM#4M zb*TDix@Ae8?i}aSOcZ8s9yH~X#(E)-)`6K~n?`lQ!`A?{NLPMm73kY$io zxz^a~hoK->S_S5-a#uxtry8Gj*UUTU&>G9dmnT zyp+=ogm*)XKK*H6NX3W9+!st?C*q#T$-sRnHm-JQ-m47>C ziWHTe!lO_KU0*&p>JQ${$Y+Iz)Yr-EGD2=bk4w#KciSSDbPbOv9on22TrP!N$ z-wimB-hMzoHuu-p)XRn#Ip)O?u!;$m7+f&dhxTY?#p8D&Xvd7G=qR5>wf2;6H7;2m z{e$tHRZ?FzXn*rvgoo|%1Wya;-t4W|jo({y`%0lzx%3(s0%IV?v1|tOX>wNG5xj}o zL;HhYaQ~)Y?F1Va$)*QL!C(sPs{3BEMZgcNg-Reiwj(2w9kJ5xYQnrGqoKRVB4l>! z?Gn$dTc-_kV;N)uwj}TS|CVd{2=9Ops4+q{J8qpJ;N>?EPvT^;_6ZFLYNstT{(65F zrX-W>Wcm*Lb>Uhl>M_a{`f*9EJu9|#jH)|h+m&gfydBsHXsLs^`G->~Ok&eX+qJ|}LtT_oE`x>-Fr)sax9exKyPWsu%)ZDL+yMm#T?*{}Pu z$j)QE7yx(oR>nu1enh14=6qAu9jIxFP(a{B6;WGq1OvF9TR#mmrJS+K{{H z{QM3g!P3)@zj$QH4Na+t2!$>rU;>;oEE_lWof_Y4-R^73Pvmx6M?m6TyD+{RAf zRoELtaxC~;82&0Cw22ab;##*g#F1V;nT*J$<9z*mQEkA|UCG!w=3Y;@+e3gj?aIhT zn*dXf2e_dB?bvaH`66w5^UtbmGcPBFVSrY9V*m&Hq;;NKfKBq?2WEmdGU1=f8S~!E zdC;FNw$7&gG-W9Vefv%Ht8ew!SJ?bC@!SVW_9x}SR>T}|$YKG=UWMeokS-R+F2a~EFo<(o{_tDp%9z`(7!-Kx`>cWFFn zF~vXVLl#wvhN<;#`w(bKLdPfS8uIwIG`|eSHVQkg9lqS*;Zcm&Z#7~ z%VCd=)|YRG|2ug0970S1EKhP+WK|ZZh!HRqviR$6Ex!(%#$s41dS%I#?gp%GmWZ1` zT)!mxx2xg#2z%_kGQWia>{ktOoetJdR3H=YTq%Cuxz+HW^=15*MW^jt{-Bq%XWJ{5 zpJ*~#_+;3O15=55>+AQaehMt}A&h_q%?|<>=HAn%ckGUF)%yuvtO&6S6WnGK2PPm7 z^F464b`$Mmoch98n17+Z#i(@@=uq`Q=^d%k=tbf7@LBjuc;cPB0uraz24hg5bs&g7PjJp5~;)Ar-oRR`!8u_eaO>7Jfnj_og;F z%BfP?iuF%YBB0!uD5;HE*QOzTs&ap$mv>bZLl=85535ggN-69Q?a6F>uU2(KcTYDuEZ%4B**ELBF7&!^jc zZJ#Hpsp$~Y0?6lc_#h?{3r;77HwY5Nh5pd00GNZc5ySXh`1#Nih-Zf9r_tujhPM69 zO-oy`kyA|}-BgC-MWHDPSc-O9mM3Sv%uGygM_A>(`{rtOk}Mwc z1E0@JI_a-j1hqmod304z+5FohWtlr|IaG*AzegLMTyJ5bg?HzVAv6)#v2WLvOU_ti znx^0b=cKWLDSR>T9P!=)YPPoFSuVz0#YT#3CU zDcNlDLQijXp*qfKaJZVeYNV3gykJVkH>82a{ zoEwrkOGEyd&CmgAMn7OG-~V&{Q@@sq_ZGwuq&ET-zr=U3C8|>>NK4Qg6e4!18udV0 zpC9TPC{tU;_x#u-SSAnLtF3(L6PzDqqs)}V3jn5GQC}!tf2HqWr}lRYm)3tquDcoZ zGx`kyLO@=6c*w{s26j0x>qT<9=^o{BeO%30@%RsykN={4vpQLLYRf2jRga1zZ#CT- zuadYOf7BcoA{Td;yVjyTT9|Bg-+S^nQ+JiAk&n#Ai#F=z7QNdhbL<`4Q-g+& zap(!!hXz+q-HvU{T7TE*dI0#z6^xzQ|uAbDK{hy(8cZUOt330jFQ)g z6SF0`C39Vo<^De*m?O-df&J3%1?cpodP1$E==%QhgXzEz$h0EFF9dtuOGndj41ypd2pU~gp6{1eYV(8hnSxZN0zaDa)xbt|EN56%6%CGw=v+-W<16HSqu04(HyT z7Li3y9|=6YvQH0qWVvDL@%hUtQ$N==Zi1;eQryn@!cu&{kQ#w7@ahmseasBS; zk~M}8lRp2-e^(E_)RBpq(O%&4e+I9E)yI!a|HyAtF8|l}vG7IxNBo<#Z}I+TxV-yO z=6{9-XL9%YZ}Z?x2i{xgu+5B(Klmm0^ZyKP?>m?OtK#li`;SZN<$s13G5;AD*-i%i zXLx@1qsf1UbN?B-fG5a4UtQl?e-12iKKY-t6i{J={NeD^|7!0G`~MYRzy85;{eP|6 z=6|^U?tcMRc47Jf=epiRZgt?U7LQMt&Dj^qx->BL|1z&}Wc<&t{yzf(hQF#7u&w_J zEFG}JuiI@q3;|kM9OzQsrYS{l_zu|$P z`Y*h!Yq04l^-2Y|o`}aS?1ux}n)>rlo8vhyo*#Ba!zVYKf!|y+Q zCWbeG7pB<1+`s=9M|4H}p=lv2<>dcWHk8zJw0{22VEyI({l6??CXYY=QCq!87kFFd zc|~jc7Hz9=;7yFn{{3foskC$X`};qb)p>vK|I75|Kg04Lwx2KlI~oSu3wQok{`-HE zN|QbL-QU$OvAXfgX654?{{IZFKy4}VKmPb@RTTVU+9Gdo!|Z3Npz8X+^2`1`IN18x zw)vBP!k@`E>{Y(;pQHxIA)5crRsF*~x2I9VH0rtyw`smJ6=v>>pQO5F{~juZ1Hvvj PHpZL44D?C8{{Kw?@3SWu literal 0 HcmV?d00001 diff --git a/docs/images/menuboard-3panels.jpg b/docs/images/menuboard-3panels.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51d45f1605fc2ef4e8d86eb39c92365b26115646 GIT binary patch literal 164792 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�}Avz|VFfCpnZuQ4+%ubxg0(^iib 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

924lJlpn&5c&ybRkX9qb&knIi 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%0D}`bjYtq|c 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

yOmY{zvLB{s<08r``4k zGjiJ2_bH-3*Z^}325sYX=N^2pdm~T?&(ZEmn>}>&tLhd)I88jS>g)@g`xifP9{(a5 zhprD4MECE!>^|;J;X{}I4}+6c#B*dPyZLa11;JgYzj_B3o~RkS5CN{7k=sYkT2)Eh z;`w`-!q3 znh+mFFDUi_z#_uC|mKf&V9x*ObMS~}kR+0WEQL)~!wq$}D%?p^M8mp`- z#6y-3)jVDw(uN{p_mRosOtF$z7eyG?SF^A7KINL#)qc}iuS%M5}`iBA$ak8XAs z2&r-tJmQ3&@7&irG&(rcO*Q2Y(iqB&e1rkdZBGLt4W6Ki4Y+W~s{-iIHT~F}c~79; z!ER$lAMlK`C`Lh!0*5o{gxHy4@q2ZWplvnOG<69;drLt;7IPP#ItF8XUB`P2O5%E) z;v0yoLG5&8vMw8WD}Lv+{y#3{Cxs6Mv%4;*3%V^_?nRaE>DijeZX32%-uw7KkC;oJ z>kf4oHCOGMp7vIcmP_CL`GTG;h2XlWjNI+jDPQm9RjMQfFxtSrpAAbtKec*u2m8me z^M7FrCJDbq!H69MG*UboAv?ySZm4Fmxyj=?hP`wpc(|Z`%ADIcxhEM zr*tMyYJ5xb)57~`@!;lfts^oXv(iwkUrSAT_=Zvc55A01)j0JMH%Xgde!U-4uW1Q|{getD5q zFlYV^L#jh*3Wdv)toMaB|3b-$INhOeO3wO9!RsVT^E#Zd{^XaxUDCQ&^i{gRLL67f z1Rwd=2bSFxTwZ@<&|JjHSj`3+d=~l)>?8&5;RTYj)ee=h_g%q^u~cBJ?XmN>TJzP! zD^vu<6gdi!8Pm}K9**hsTY@641QG6X+0T~=nE$ORMQ^{kf(yUqxnVL0vAnkqdYSA= zM>6o-0vEjj9LgKiMxV)*kB96-A)5nP0ug}32E@b-Wz=VHjFKQ9$P2INtWJ+6QwuZI z%9yRhSEaid+IC>g9)rXV2vb9obDjje=rVIj#NPp*saq<%rTqvkORoP9kQkO!t()l%aCQNUj(=JC$4 z91lrK*=flL@#M{n=cx?9mQLwNIo@2V`g8H_TCo)*&VRd(VN)mKBzo2s7{os=!MSI7 zsb)imG>xYBYG_*2VaKmjluy2M^GOTnZMTrJA+`@?F+KNG{KHa!y>Uju@vKk)4QH8i zT~8Mksf;3PQo^Z3Rx^s!$~IxO(C+U=g3|@SREekT>bse^5`umFJd6sIWLEV1=NkxF zRR4oeyaF{Uo$)#wbHxiU3W;l+SZ4WH?MlNPuKn5-)~WoMwz#3∈Yon@q#Yz*qb% zu`TJzv(vEVhoMs*U$K^CPGXNCD`HtnuxOz9Wc%AQn)+$iW^D{Qy7vy6> zXs`yfi#yucsJyJj&VlamYWj8X4N14Z+`uYD$d#Dr$Wfn1qluhf>x3Ktc~?6is*e^u$xJwC0$rE{LCWG=Yk6sz_=$+^^}cYiB?t`%F8}s|HX1Ul zoAkBX`>)qCG~KH8+A}oMaQWEXJX5+<&Y5fk4`a0v8l+7WK7g@!xpZJ?FpV&aR1)hY z5;8(NR{U@3K&B4+Jbr4vIyXM@=;x6DmGmioO#lz05>>~CsyjIOtZ-_jWf}v>FU60} zf~W$se1_vPM*T-~SOe_PlG6g|*nphIFe>*=d&%j8>TdEuY8wxu|6dZVv%81!a7n3Njj$PXK z-P~_u!z&^)P!0LDtBD3FJOS9ao$(cWZX7(EHSo6&+z-CJj|%0H`QT#w3~e;I>oQ@QZA=ftyLtUp@x`RC+3A^HQym&FX$zTB!r*G;0xH894g3 zwvU^GO*C2!;bZaZ$IfqMk!{tNHwExZP~qjB%$b1k&MFws*Ps&>*wN!Y@DZ!_-3na1 z_4A|K+6in6XL3pfWTTVM_Uyqw;u{$R*=$%viBk#-`2Iv=eni{J9BV;}(TLJh#M*Y# z$#x11sh4Rvp;ijTlra#&c4v&ou`T-y`O#cza0Gwfdf?uAH5``;L#Osd1E0VLSKqbeXXc?YU0 z_crfe3ztu`_j{rx3%3HxWP|yggjBHZy9hieaF|D!1lFLt8Z#YASPbo1AI?|kRaUYc z|1e0&m)?aTrsgwH6!1xZ3>;&y){dUegdt~ObJ$2%92$CtOne1}`3zngUOk}~I)eVS z_LoPdtxM&jBTBJ|H5j@9=FE|y3jC-%`U@QWT}ukwgy^RLt81wF6H%eOrU96wnd7|F zP~hri*<;~tfz zpADxtI11MXLyH04$RsE_X>WI&lXXZ6nLJ=)j4c*$a)QluU#M4)aes{;>w_UB!B0J^ zjx*^CNW8TNov2Tt!X2B0vl&F&WMD?~g=_ZxJ&_GigleBPe&VLUNr`vkB$!MheEamX zpPU}yhJvbC@VTF}ocZNrX%K~C3`)+V556DNex9rG?aNF0 z^j=AnT;I~nISLg@?PxaCd#&-#3&jURiL3HAYdLAd_jJ)p99+{GJIS zfYL^VNq!CO$ z@vFlqZ2l~Q+D!huX+`KW9j4-6Yl^Q@)XIS5$a#-&Zs76mR2NCJtCccy*T5v5?L%v# zuni)#N_Ikx3zr0Jj1L=2ZRXGBA&$let+zyg@oO$d6ihXk(m6=^N&FVP6rED)7X5IJ6_~@I}PfMN8b1%ZpQGx5gNqV0cv`381mNX*|hYAyG%J$h* zF`4e9o^it5be!-xXDi8xN>08zR!>W-@SWD!2hZH z0BUxmVLuxs;tlt#VSoqztoMI$3Oy47ypW~PEjy%b=E)}OWYn}tDHK;KysTm}b{3hR zauLt(j5Z4QXT%K{i5~B3$ii9r8d38j%*?YBXLv9r#c}_EY#meZE|=NsmZ{M}#v#Yc ztNZwpeLG_mCuFu4@@*1ExpIVy_W#3~steoFQSHs*>i1f_a|Cq`nAsNrdTOA4NOuU} z&NAb_V!T?@^Z6I>O#t(4O%iDL&ZE5Y{Cfs9-UNDDn#zWYVRJM-tD6voo`yre#>%2_ zIO-j~_rM1O)}e-l{#(KVK3#Kt9Vr^R2IG)ZrQ{!cSkifx5vLB3pcJu;b>qW`wRPy; zdaAP^=PoJav}HRCTDUqU*0`xFt#)0J0obpx1z$3X*tZGnmEg4LEpeXs$XE**mT>d` zv|3ZY7if!Q5rEdJQp`n>jUP+yy~O;UnCJ7({9Kf6KkcNAC$Mf0^m-lbHtrv?|6|NO zPXcc^xcjHgk{Zmm;oY2;zLR*UD$+Iyk1ojOCi^iAXPsee;iw3`U=gG;>XO`_pPwX7 zFSbDrFUQ`n?z-o@>7(BEiv3zLhZ<6rqh;kl_MNc6u;u$Fr)|rnG%Z`)Y0D;BMz%nd^iMj_<&DcMz55cm?*l(=STn)*0CVz8a9T>dpW7Lr18k9|BtbiRob6Qq zFoP3Q+@(HnPzp@>BY2?YpQv~?GliGH`YtlA`l!o0r3K3dUR3>f$b|d_z|~N)eV;Dl z;B>7caHk^`dO(GrIp_`KZZZ_`X9yNBs=rvW_G<;?r{PyI=u80J2R}`P=Aa9p zEa~(+I@q%|YX4}K%rro%&sYK27P7ekSNE%BBTaj18bf#!5q|s}w6)k-oERpHEV^Yn zdY~~j2Ij+`l__7`Mdfjo-!mVc=9s_h`bdu1=(1Dbvw88F7AP)yL*Y_@f`39SY<@i;-Ok{1}%>2pt8Zq0c>F=riA^tfN<1!2?L9|ASn==99p?EE*gB*YSnWgR#B|C{D~bwfIN^3M~N8P5XY9NF!0f zs=4p>$~V`rkL%W2PSyQxmaLt8=Lz&j+Qaa73__0S`ud(J?b9x9;3vV0u6q8%f(Ftj z6IHb42t)bx$x`LnMmXQbcF63xivC3L_jLs9n5&IK8|L#?WgN&p)3gYlrmF$&HBn@N zQBiKkc`Ac8dk=Gp;6i}H8`d?RSk%U6a?BOqriYAa16s4j7-#enhdy|-g|~iKrpF0$hn|# z;G7~&qdfdPs{ovXTNkhzzJ1aq`(HUtZ@%pO0qp|+0HJ~%c3P_tHBK?47O(ZJhyDBL zWIe30^NYwA;xSVEo41{dP0cBXc874nG=KKLd|6abnjXv%LVmvnfzS9VorbLJ+Yi6( z{pq~Yng4(Cps#-=U!CZ5o0<(NnR-sUWTPyRU2>qAJd9| zGn$O!@$CvE>tMQ&nT7#h)y>)G>+0CkXjGLF+u3A?D9m!Zs%cR-FxO{tob^~V)I$RQ zM9Qa!zvdLv&?V`-3prfQw6Txd6OIl@%K%uwHAB&70`@2f{#|4F6|ts6$lOZ+`PsW6 z2Q6jLaVlF)S+*S?aR5901pAHdE}<29eSjOl+ZUwF3iAX z?4#$`-V69;U->`O4d(zx^U@h!xknN#&)kJB^viN`s45NLCSFG#3z&4hW_ziBGZQy{E_=8z-%yVa;^S?JO1+C6n2Wh4(2(a{GxLjnEr(y(0#Z?A#Qq;)XuepSD`+dE;= zL>-t(rJQeqqPkbHcfl9On6{9#&JV8w=S;xW&rcc*D1$QI3fyy+x!Eu=58{uv8s%8d*f zQ}=!>qal`-8d=Qo9oMt&shYqWh&o(}t8v1giB{fHm)VrNcTaDpbqb~HBYH5zCqypg zu|02uIj&brxh(@5GK4k)^Ji{L@+FssGlPYK(UNYM*yN9B37E{K0L#h2P+Ob7+3a5#GtHZ$ zKbArfozWMI%|uMDJuTCrH{;s4PjRZHso`jB1BF z?a=(m_e<+&txt_vt6--F_I)^%2p<=rG5L%C2C_|;o z8Atz|H+&hfnKdkE%q}+Xp%wbkzBbW%;Zf={udj2TEeCQJhdWBaP3Zj4Uix+Q%wDOo z+jvnj;;+5)k9R%*@kw;|fU84hz)6hl;DYWC>WTarj?xe*l9Bb}t%+!Cx2YFq(>ilp zsQA`{*QVkOo^me+^Z%Z{yGU$i+=Ua!&3$fJMLI-rS$-5_GT{;*tMGW1m`LaI1^$db zXVB`2mZ#K)t2*?whIC{b&o00pZ}WZKBIyf?EQ@A-G#oIp8@E4@H#8vO_13jN>)G`e z+}#HuzY$A3(rIsgB=rmSg_4tRalMyZF{RW^PnDXM{N#-PEm)RITOaf+%f$Rpcck$b zX5xLZj&MmfehNBjyH36f89(%t8oU{s4QRQKP%(vm$;-AiX{NY?QRBZAdKeyc^+2A2 z{|I(%dEoWK7n5)O&$fp}(r6qg?ivykjfKB^bozM7oY@>$`7ZqX-IFKm?9|j`Wa1=t zynr!6*0%PZ(i(>(nGYsltgI*CWYD0 zfyZyL3C7r;+kA>ULxD;NaylY~B$4?;d~v>d3v#z+&MJs5loP}D^bC2> zMin;<3KNgm-Yx__KKve+tlC#<_4qwdY0*V%d$oA^IrmlmB&Rx;zYNx$(%$e(c8rp| zrO>-!@>U-556uMij3gc1+mM1PChi8aE4I zz7#69N}p!Lf7RV|w#PY=KkzW#(5gU3+U%6< zQ|vIFUQW!U^1avN^pLRV2X)M@e;_Va`*fQ1lwxFZp+=&#M|yxj(?LU;|CK7o!#19G zCTF|#Y@t~5?}50>r&YYba-nlmD`|Gy-hX8QFf8zNd)V~&-TK688>uU2GUJefS@+d* z-|L2Re+@f%81DBZtDEKk$ppzbJ*?;^uO$g#7dPk(^Qee;=XL$%0b9L;cYM)JD+(@F zTax?yDF;B4MOwA*u+tXhU}j!po;b) zkpAHnZQ6zL3)a>o3bmKnE;AVj6+vIH-x7Fjh40yUtk%pB-WF4Td@{4bOlB!m3_F>& zca~P4ghH3&ooiQtm09c4z?l{u4!_OT*DvmeXx}{j? zhAkzsA))eQY(_bOL|6dlgD-wZd}hNr$RmNe zA2r|wmwvAi%*pGawkIiQ-+&-GbKEZW`YFg!nh~WA zG@S+uI}Dc1p0MSsXCM0QH>S!#Lnu-@*E69Hn4EsoxK;25yyb;^EMn1ar;yKIk_Sa! znfX5rk38Oalh>BqA-7bR2w}lTs>dy_MFy^C(d-_;VoPLiG(;=aA6ar zY=r%Vi_$8+$Jf<7XzR%*E*vr{nuTVlwnb`@^6DZa&DQVyUgP~ShQ5FbPS~ntt7}uU zCb>3HK_qDZHQddv>Ta79AiU~$XvOjmQC6OW~{TO=*xx@{utFVo3Z z%q|uo)zj6#eR5-EH2n9VB_UxZ5=j7LqfD2-nyQAN^RI0E`~rL)#x2Tf#aS++#tLcqEgS!!wHiNqh3!S$(9 zx_Ms}t#8mYJQW1TKI2>yl4B-C90+tg%~En7PFRHC5J-WC*0Z$JKffnuo%PkgyZ)ZX@s8WkDlG9@!f zP`WLNAO2GYO=Rzl7GVzy!P#t8gmpTF)3N^%&BDt8t&|2> z_+XZ?`6##_6=Q<}Ba79|KPk_s4YVUwFRdOx)_+Vn+L4^aPB#XIT=qRVp`3Bly@y|q z<^JSqEZmoT<`D_H*t`;2P?Qgn0voV!e`FN1>**q*EgB++eq$%?vUboMM0^lG3uvA} z1_IPN0Pg-nM0ig8Yq1uPs|tAs-&pI2cPI@3k4MR4dd)sTqG=6rVmD-gDWinY0w-Iz z((QE9*Wzl_n`CS}S45v4wCV$?`);0F3*LEx4VZ`gg1cEM>&vMt6ZsqW|IYv1Or#Ic z%tB@p2dE9&vEtvGUy0j-Ukxs{(rd}aS7ncQ#B@B9-l3g_t{qy>P97>PtF!(seuy_M zB3s_i#Nba^`kR3F?;RapUWvXKWcQ5y*M;h97Je5ERokyw5EE+RCr=irZokw*L-J_S z?g~!`Wk5A=Y(u3>uUo_O>SEhJJqZu4vshn;WdN-?8FgN}j8{oANCbb|a4f~aL&TED zO>#PG`kKSbssyJjt|?=_jk4SeqB!J7j7l11F}Vmyzif}4#m4N{633?+4? zIyc;NfNx#X4Dh#KlAH2LGCG=ixMpsJpU|7D>lzu5%5nAAG;plCA^Zu#v%?7EJ&ks_ zMIQ8cM8poc-j^idxouOcH3OuXO(gpNrKi|Sd>WGV6y6s2y%K_~)JLEJvu^FL@8&09 zZYbvVlPqGY;Uel%ZH!El05ntPl3?U6=h}}&HC2?ht{%40QdAx0{*WU5isdN_^$$T3 z+HF%N?ea!S%HRdw!n!YmDRNJ|9|UCqCsy@2MP22VA>(8_a(ykIMZ4~`TihXKY)NBZ zs@S{8m3Uf!d}XYSuz#%Q8DSL{qbWD8M7}5baaFiQQbx$tT{KyJu;!k1mdVH=Tl9O< zZSdp4O{p`N$}fdtNT2<}-K!oXQ|ev~ z39yhnzHNHd^z80|KBI7OVa+q5S0@{=*%;xqh`*d+G< zarKseQLf+nw;;#}NQlyn64Koap&(KM(nxGtI;3F)1Vl>d?hrvhx`##@q`MoWV}_Zz z?#sPD-`|7#Kj1Z-*E-iaj`y)n(V?-dWvAvNr|pk#AD&(^wEiB49#(d3g%B@$@gH7+ z98f51Ltjh!j|F9%uFNF zA~I)o7jf0>T&T+vdbzE&Cs=%Xmfm~wn!)(^8KljJBu)h5?6bui3)mlQ;h@XGs{F8R zO-VNA8R@FTtRj|*@WR;-Mo9UGrtkbGW1{S!34|Bh=FhY7)JMZ6Tdywg( z$X7d%C(bJxxi5uJu}nqorB3enk9@qW3v~zmrOmn~9?#{3cLA4Ohv>_{r6aK4UYO*;+fov^|v*%Fei7}mS7za-;RmXQksu|091Mbvr z^eId#z-rWmbZZwz;65PPmEgX(B@d~!9mhUDL(x(&zDElOAU)>XN2O0iIJBuZkOj zrID?5&%V5W(eKO45!7z9r#l2R9gH+@?%S7JV}CuESHg_lZsv!u8ze zerpBnX;u(M+KV`ev!dY*Xd%Hc0Xdhnt5KQc?~a+X{z1n47Qfy!T`?TP zh-FT4jQvl0NOfdt!t9Q&mpAT(51gBlQFrJnb!QiK;pGN+gU1fdKn3PpW?d|Kz9mNG zC+r#{x_a$GSis?QPL|Opu&Zqs2^0CmG|UJYd05FbcgUPW_X1jZmH8m;Zt7_fV*?=> z^s|zf^siz@N;rfGjzSKJ-yz4@w{eF&&=_w1rNQ5)GQz|4jGnt~m@$QR*-lJq!^zHq z%`mEMi)Bpokv$K_f}oFe3jRm-!6m~y?C~YwIwlqy3#|*0`P<9YekEf_E;#LLQ}))A zyR~Tk3B-E=hvY27p{UTmNZ3=~`h} zTiVEvrb}oonGSmo2Om7U0Jlx0KQAHA~Y?$kv;>&6W zWS;-f*&aLlRE)nH>%Z>0=lZ8H37|yhd+=gXPVCzUSr>Fhg%Is>LR*`G%nrn#rB8G(Ph@sR+gQ(_tLn@c^{zPU`p|Wk7>v+VT${>6KkRygnOzN?_1c5F?IqbYws_bpQOfW zSc*&Gg8w=gJ=R-1_Y^s;!>c(HJUqFR?276y^1_T?S}d4v=?bYo>lZ#jV?Te_0581m`0ePf7`at!8H1m^w#`76_gb4^9VxIrV%+ zGinKz?^FL+DRn3fOYVgJh`Wv8H4SwS0sAM#Z*MRfeHIdsT1#%++wEeR0~O=-ixl0e zE~7+C19p?_&eSR;TG!`>80}Nqtb@;P%uLxycItPFU!B3j8%uPucIw@%hg^dX~3Rf5!%gSWWycc~LGNAuZ#xN(G6mK&2Yqv)Rwy zij_$-x)Vcp)B<@GTg%mN{ZRdyZhypgo~Q6<`d;q$ml>FLM7fgvU{RxC!qfp+XLH5b zhOIy4SA8#KW$;!Bx284$ZUllNWo%h%&+vhf@2Iq>A(7?++%`2Z4o8J@LdgG4z7rN&ITF^*$_0Z&d`}HdQV=P#PSC?qrZ=%mdE`VcgxC zud;ZK*P_gR6uI07A0@(qU4&{#Eu5z_Latth`$fxtXr{g7JaEfAiqXn%SB^Kp4}PB% zai8)ny=UHje0p<=GZ!=J{Y<)1jf=bmsWIh!eyF`62slT=djw=?%>?z%jD5KS3+TCcT|ZF@J;9=0~ba+I|8kmQ>#&O^e$bcG~048{L% zp3V2COz7aY`54@!dXPP}1$(5hn*5GBZRO1r$^+X*es}MjNgXC4B)RZSv2r0L=FU56 z-!*xocVehPBiJzNU0BTu9d*Ze)ANruIJ}l9p$kblrnTA`)9Vt&>+NBY_sS__QeVv} zp4}tzRsN}7z|X13;eE~AoBQ%*@Nc{<|d6MOTNknqj!m=Ub1Rr74#zp zQ*E+1yq4bUVN*ZRq(ZuX-ub1@7k_Byi<}gb*=@hO7OTo9>4Y|Fs(OStCp4f(@-%3c zSc!+7Ynr-s1vMx6v>5yBL1bF5x7O{4J(rqT=m0El3p!Y7#S3b8iPV3vg1#$#*uZOU zb~NnRPUQMKoi^+r@D()NBYDXe6{SytV{{!oHrbRJ zJvL;J=f4t({w?XZl9l^gU1rOB2!@&*okUdfT=kA@yK+#f_}g@gJQc7rFN2Z=n`L8L z+K=t(O#I#tee7@#Gde_7{f1?>k9F7>5=j+hI)|3463J|uanNdi z3rtfdztO19MJ$G;jj|JQoTm|N-!f;U8W~__#+b$+ZHx9e_UeV&ZFV@4c8u{;FT$Gp zak5A=@Z>7b8PUVJd&sRCyQB}>-IbNH7caNrj~`uxDxQq7OELJ$vv{wzr<+szW*{Un z1ftZH-qr$(wFG*kLeM74;MFNRn2_=k9(8{jEIDLYWI@$hH5*H!Ex{WLS)A?K6h$S? zO8+KCVxOJra`M|Zv>+#Vfvzbr{K_TyQ|gY`Ij7JrdRdyp%?;&8O8Z@W5gVOgo`0YG z)-x$y;}6$@Lv^h~+uU~5-gde&T}ps;)ze57OXm!Wj6*le4wTRA8(BHNft25v_|f#b zl%ym(96|HgsAU9AsG`8DiDY2Ev^=T#Pa9{%g^Azs(+bq_;|GHcd%N*TqTt|22m@=O3a((1AJGom;R;zYw%{p$M{XJXfW(5Ed|Jog8KOmEDFtG;K zDko5he-zs8k9`jV1dK+53sVgzGmKzoKXGhUdJ)jAQ&Ve-(IijDc_v$VK9z~FNHck{ zuhy?hKmCAP4}DPNQ&nK=+oTD-%q?)75ZPxkPjZ{s+Iu zTD&lLPVpqPsi+wgQK!~FGKvk5eLF3idYE?p;|X97!Rbi$ljA$<^-+-#$^cCl3MGbr z4q%UQ6j<~l*9WS{6>0kGR|56yFzI$U#VKK7dn7 zNh+|@xSlGV!5^}$;~0ZiX<@q2W-DQPd$hwp>zx)P(&~SwpU*yo%xNE(=6BD-T2LW) zD=d1(J}(l825W~+>%MBpAfD&@5FRNVe!f^gG9CQ_j&5OziEy_0KG~EoT|FYSD#~>0 zT%0{saSS5D4r;1j9^i<<$6bdXc+Vv{<3_JKO#bsy@Bp;k7?FHdu)gQh1PNBy_b0|! zzeeLc>n2gp-F(t#{$1Wsl`*1PdPC>16(g%JtgwMP>g9}I>wY-F@zFePUyP}@TqQGC zzjC)Qt`_I8_8f9Clo0R%}OgYf&p4IJst8?s(g z)#O^~U7NdV!O&SDforJndn+tqfBo5Kg#TTZ9wrrniU)mjCU^Ag&F`N6&ur6o{LgC} zfyA6cTlSW}ufrZm#`n3h3jBPP5;igf<9NmsS4V=g;4nWcC|=9>>um#jn$5wZbP(`3 zs4x&@f;hqPOk7!=R!%G@#`-UAiFbMLI?MPh@K&Nw?U8qx{A1>`9Qo|*c#w>J+fn-&kwcF+AcBKVwt zjD$*K8aB4pl<4cM*Y-0mK!Xpf@g^>kyG*4?E?-fAY`!a+MpV6EZTYLTK0O+glQo^F zgnq%N8-6StJ~?i?4V>iR_DwZ*9~O3-$@F4jyWpS6kqhwI>q)k(U;3#Wguy%>yi@!l zhyfS8#Os1%abLrXw?{)5DK8&cF-~K^E7aD=-b`%-R8uelsNEms*qEK_QE4`t4A*awm#l9O-iIa~1Bw_Wa1@Y;o%f&ao?3hO9Eef~8WnQ3&`UZDMu=iyv`gh4lG& zV>o99vxwr4ehb^;kj<=OgEMOTbcfRuSyL`fwTrE?u`YSZ=0{au558>s#(tnH%DgcP zv(9K#_7>zI>{+rv_#i}-mFL~|CQbyg0ZGJ2y+|e_rZ9zKw?;d(QzSeH#`AD`uAnEn z_$BiDWsuo8KZWv>_1t)q-B?-JQ3vc$KMkWi3BSMp*Lg4%Mw@!&^@iQaBBezF^Amvm z{tc9fM&IM>pEgj2qdl-(<7a%W2D!oI>pwUY;L<29Va1;NPlogSSLt2+!mtC|ELC)Q z)(gu3`2Ey>+68L8>#|(EQM)Y4MM$bc69Fw8IkyFoBJqLait^ePMLw3UlI-P6g6Nfq zOCZWX(25umtn+SjSDWNeO~D>T3G8eoW7q(xwd|{(UTaj=sGC!_b}YOT*T=~bfmR3& z)|N;+oP732CZ+AhD!-}eJy`yIO;gR&=9Zsp8?Vwx+AWpMGQQw2;8LAbpd4j_iZFU}!{7njZ3%3 zzJ9_S)vxf_WWLwk9IaWu*gzj&Tfql40Wm|FEY#QVR~xB&E|B20f&25``+?jn1p=zX7)8nIAQ60p%ljC5dE)#Rl={Dg;3dW$qa7aeaCgG26H1bAm{{BKUJCH*Ur zMBMN>#SL7#{ieOtCo5~7x*f<^>Z%_L zH7|6dCJN`UGUHxE#!qJt=y8Pyez&tF&m+U>i2bfunJ5y&9k9)-&j_2drU{R2-Kt%= zL~rIr=18aKV)U5Nu*`E_D&c))6)De4uwYcWkL?@1>QXT(e>ToaGv`|#b;|P zxe)iyyrIAt05@`u4@4soPx5X9y8gt+H)mAg1IGsy@T4WrCE)?$^B47!Lke)L^D%tv zKqC|5@`*8+!;MShYRkD0om%@_r!ZE8&(7s<(@*5%#eA1{Av)4TE!Uk?19$JGF-|hC zzUusAJzp(;hF)Z_?4zqU4J99ilWG71TY_v6ywZXATWcM`}m0BA?e+*Q+kN07T~5ht&I?;ud2O zkCu`B3hVv;pPYG8JRafQme6QNGAr`)AIbeA#;g!9z{k|dm_O=@6mKL~-}xsf5XVBT z3&tgM;2`fPehiry%LS_}M(-ahuR-n*%lS#WGfB@@k#DA^n5%mDp!iP4a7-u^+HP*w zl63_Yxce!D7iQ8&#BU5C<2wua)MfAJ2zw!h_ipl==Gle@G-&QMYr2p#PqF9TGb5*; zR&NMR4{|Zm4?V9hO?5zCXgUU zs~f1G8Fdi8!3lcuFxp!4>cf{g_kl zd;ba^eZxvmJ2$q088x*{d#6y%{ZTShxKzq_Rv`MQQ>c~0+QwK!Lgn4yNQGa@PX%`mEQaHw=r6>fUk0n^`xTEFsDH2Yga9{M~GP zPD6LNpX@)1e<@C$)*mZ<_Gz1c8AwRV2hQW3{@$D2*z6*f8FRBOTC$=aft2IPxinqc z@YkGd$a^ZDfvnkjF@_CZ@iIk;fm^S6qY$oM zU|p=7ErY+d2_k^D=eY%&KZq?Y10lHFd9OX8Ka(XBp&&+hOQ&f z(ZRL&LH^=Uxmn*>qX&m(anPvEA#M3!LwGCDJ1~m4zBwILN#@CX zkLWtdQr+lP+pJq~O4L>tpYumYy6pmD$81#5?z+VtsI#ZZZ=e0;6C*yJmBh`g^pJS> zflrID^Sm3;qoRDg0XuFDF{ehJvBQV_iY@G@k^BkS5XO98m2KF2kg3cHKvK0-VV@54 zIf1V0kFlnwCa0GxaZjKArYj2KpuFyXR{a7-X(FA`dmxq)7ISXu(5foOH;-GZn_10w zA2}@I$itH3(+o~1Omg<&f#^&0qPW{EX}F4}=J>OV3i#T+Mo3X^>f;BoPc|;t)Y7={ z82odlevnTJwDakio;&YN>}YxOJ#@1CV9V^8jq10YL~{t>`9FM5-5X5Y>_u57mODH< z`UENE-UI_MBfp&y5)3c`@3|0sKdavF(Q?@$sPV5q$m+0sA;B>!9{i7qX}YK2 zYmXE3TnS73BGG}NsP*3#fkiQDQaL!Aanpjrn#%fSk^9%2ngLaoxa5Z5o#7rq;i8)b zR-1-3(g_QckoDVyw;!hjVJxwec-``r>TxfFVm$7m(_-O&OroaX(D>eWbEXRDVtb(a zXZyIjUyZiD=|)3QbG-sE@wX*#eDQrlLq>SSe)ndgK1Vi;h~|5yygkj<81DRsbj>-yR z$)~fViU#kCZcg}M@DO~PpFwpIy2qvedyOH1m7GUFu1u+aLSqYfG|UscZELhK)zChP zWBjJ-<&5d$Qo;gCn}Vo$2q~1dL_Botykfi%kuiw1~tv`BH`UEEu>WFv@J1 zPu^-s>lhw4#5=Shtd$So6>x;1iQkcq4+73Rr~;rXxJ=uy?GpOwycU_3m|TSGp8@7X zY6=^R24TWQk8pdWSiG46bz=ZwoOEB_;{`prUbnaL zn#*xj#4zA4j!KDL+w$r?a-&=hOW?E0MX5502ahGn0mDpE_i{PBsS80>x3IRaIJc z@II5XsWK|%i#et=$KR?*@(azQZ8ed(=ib)m-`KJfKuPy&==q$Ju$A${qwZvQ_`4|L zPs=xF#aFOiwHb`hmC)(Q7O@Qu=PWpR|H8*^C+ip7?~7E5CkQg743c&kb~%N74g5|S1nDJTXKD!^z%Bax9nEqv2Ck_K zaM6vegVd#1{)SzmqZK5qQ#CFcI^QNGA?$$KGaAziTL$$+hO5^xCi*$9SQUd6d>9Fb zDkx@QZo7@yE$1tVr`WA4J4hN&g~~n*VMv7xPV9e=kQMz;zRLV7Uyc6iQ<4b6cir-x zc`UdAr*4t?1H7Dmkyr{Yxc5f`;v}~{2&BuwucOS75O%N^h!m9 zf|hR_ zz4G5+E?k3_FgB#OIWx?%-0AK>)uQr z02TKHBcJ^PwY;F)$9U9oM7WsF1PR+_rS#7N^895IV4j*k)55OS0whjv_kZ)Y_il4m zG)hDO`TmiV0oJkBnb#k4ytY0+)(qV6K)YM*&IIor+GGdl5=n28^hnbIuKnvhRikaU z-%pGtJSq1cB-44#YEp~XGDfEhC4n;28*&z@x2#BlZ3PnJVsZroeG^T+0#g)S?GLgY z-rGBqkm)fykUv`IluQK>Af7xJN@4P?{|QgjTGy>{JKLO5NVNkTb7iD8nKjEUJ26J6 zfpKO*gWA*nu-oUU&K2;- zNotDUZyzz(%~GaUz1jcxVFlbXBPQ4GZ;D$-O|;^Ua*L-Vnx-?IWA7!|$ts$UUGNGof$dv%RXtSw=TAd^w zsQGvAactX1py@1V->YgXRHuh4Uj7Pb0$7mnzqaeF2NYs3_~8${AS3~t(u4pZ@J z+{yCWyqHi|GKRd+)aSM-L%k52sg2GeRYfa>w&N@l(5c6?@pM}pjEVvF>_Wk}SD}nz z+Y(y}BvOlZI0wwE(&+k?03|RZ?v1#dF=a+ZoEZemn9AH)ac({`-2(mTBqF+)2+b|3 zj@HUt?+;NMzNw^pvTzF-F56sGj}Vo*`BRk8TjLQZAn$W~6d|yeA6uJ}n5&V+q%DS@ z*21Dhm^@!=&NKJVg3jO&p9|7qiRG6C52YX zi(9{l8?*mRCxpr-nRAHxJjOYgY`>Qh!}oK5lr=18z2ttweLURW!q?X|e1wki5~1{1 z;-P|2DOd8H40UFYN7Z}JGs1ez+jUmvx(O?=12Rvha8P~Gp%FSm>H%o?aQAO8p*0X} z!Vk6!iwp=#87EbGjMJ6RIti=01yWos7TGN}G)zp|9QCnug&k3QcjZp_Ai?5o2>klY z#k)fxrGia-7^?u3cKpVCmBT$!q2M2Tq4u&l5@0I<*$z7I)!K^Ev5CPx`aj_{{cnrR zkQP>F07l}@%;g4kVK;Aa&w+m+g@)SgR7Muw6C-san|g^OyL~=_1rZdf$Eu`4|k2#ex+Uk3)8h=u+R^#WU%0S-KU_il<(~R2ieEsClznGAN zci}XU4a0~M$dfk^l1gb^{qu%CTFsVZ-f-4n~Y=fK_iY0^J$a)43Ar1rq`>brppI& zlt6ecC`R4D&qo%*USX3p~#>Q@9UZX+jPs~Eh^@0=A{ zYwlX&#t14Ab-3e#=h-ex?5}fPDc%`l_vp6s)9vAK#s>AHnj_PNhoh#`VXJ2`>RR%0 zl|@zWZr#~?Y#H5N0mXAW^t0@3ZZA|*h97-}Jqsin5eVB7SvrxiFfar~VAXl<5mJzK6X}0&k;f^v5nRW^3pO?uH{erZ03(D* zb+86*L_KlyW}S!;ZP5~xMaHZd=THW`Ot~8nuA4{ z_3;TucRFS@8W7&3s`#nyS$~poSw=2wnl4UbFb5`pV6;0Yi%R;AYV1t++4bIp-X9u? z$zEwX|G~p3v%|?kHhbYHxc&C6py$wE$|HFMqynIEAHk?a6UoaVn!{?U?aL`0vLL7b z98pQo5&b*bnWb`52nO^4tG#>Qje%q?o}g_TNd(olQ*^90tC3^tVUd-<@=ni)ZFSxkT=pot>EH~>gEe>QL zy35@poTycA84T4S0``s-)k~1ZYj|{lT4v4CLuh)>+1#-zY2B-3zifPj#!~_cm4(a& zd2MQY$K*|2BWG??|ErR&=!ohJf4h<3wfzC8=c1VSWsP>fzlZCGrIo+wHL>@^G zAV~O3TsnNten$d{prFCd8~`PxKNmp1OZUjd)H zwkD8y43{1>Rx6bFW3JuF^sEQwU=*r!FbW1*5=SzdZPBqIpfgs#$egX3R!|r-!S=w3 z_2za3!umRvlDUi@&ImRJ!bPxQz^Ov5cj0z0t)YBNIHSOP?k#Rbq}>pZK?DgW}ZxiaNFB)* z@x9#aXH)8*8#9?U^ImE3aZly92%GE-`{aQdjeGI5(>;3^IcK zi>W^?R%`nxmVZA^Y%dfP_LU$Z`eB&V`Fhwcm$*XWQ2n0%;pcd9x?nt?+w;^pg4Ao?rh&1 zflPm&*3`i52x-t31wRXrERM0UYmB9|&vQ>^giI4X<^cir=ZtuSO1Jd$zv#hFL!TpCps=j$CyY&5{-f0TI zlhx>$@8ye&h-g!QCzQk+Swr>xg~au3$WMKpfq-j{=OZHOJjf_N={Izqh+%ja`hrJ35IVX~`(|*HIX9Rpk z&!TCB^!Y1GXIHsqW==QbM9-BnK1bZk?|1a=z%j(VS}^T>-*+m{SKx?13@Wbg%dwOZOZsIK$%^0+DiQU~Wld z!9%d{MNnXTZ?wSrXp^cVY;X7ca4(f)`;2S9q7Cy(mj}TfB%*~z=_)I zLKU_0)1vRmDXiJ-uAIwXQOuL%W!8!rYNX1l42)p>FOwnk;G<88+L73Gb(dt7YV9^F z)a{8-aBG*PjD}Ypwx}w$8^3EMhd|(loYyDUIt>kVWM*XGx*XdJP0HwxNcOJnmy-k= zC!O7S&uptHHm!___#Z(m{d|fXV^Omtr8aQe0 zur|dUi)@!-4pe{*BAeq+nlioI!8&AvE5#Z?gf#ai#`tIQ^>`bt?x=~RZhWEYHO>3F zbX8GQ{<1Rw7F<%QpHKK-jKc>j3RB|#>)n7VBhCLwBy@ihMfv_Ilt4&u6Lb*P|09v* zl131Ygjtszf2FmI@FuglWq!?x+*-k4P5hyU{lDf{B$We=C{7ci4t5LcF-z@DsF9;Q_kZ?DqFu+~<7!*u3StxBAu)>2^(K@s(1fh_Up{>@;_2f0CC9Ms#$M%ln@@{FX(jPle+iqw% z?)7`o)B|T6*(yimD#-NVo|!g*WI=SJiHBC#(NPM$BS88fMsW zJeYD8-3C4DBws~iv#D9PDl=32um0D$k}r8F?vW8p)l< z_gJ3$^<_;Y!8iV;>idEZqog$$jBjKaD5<7#O0Cy52pPSF{RzSz!|hlmbf z(U=)Do1N5#a64RQ_@Ttm(j=MNUNDOIgj0_z*?O1v{lS!4 zBz!wR1Jn1X_KwXpD(0$zV?^wGhH|0z(Pk_PfE zlxPca5`ZBTyv#C}OByZKzvQ4ob|o*ExH4{)t&#MU!Xug1_BJUHs^nJRe#_ML6z{-t zz5dZL#YTYBMO*0ocv0Kno5uT0r`uy!X!G*T)wc05B}NCQcc)CxO|Y5L8JDUU+K4Y^ zuu(KimpLdR%pFlIF3jrNubh72$k=%=TVM|f`$4zx@(5_2an%vqtQY{IZ}?&Wusi!v zo89~6=leTB!vDs(-sg;$#lEPFS)bbz`l%A~xFa#V{nOW2i?b0yf9~f>S+x z+igdszVv$PSx2qz_oq>B62q#N#YGH7Rkob0M}kIoO9SxT6-RcKlgX~Y9^7u;l!xbKyV7!w$e!YVK+XWD1hE51Q^->FfIhdzY0!b2Gx=9^)yzHs%`Sk=6_CoTN2DEQxB#Gr4m1_T7qm$6naUH|>#h_uckT zWIYwgkoFX6ucJhHx;MtLi5L zb9D}!R()@mh!;w^WOR7>yWuio#I-;6p15W_OECYQLqMVE=K7D9MmE3yy!WP-dPG_2 z1xL62LXq$*J8Z!ubj$fjJVtbdkb5+HGx&T|yTdw$tbr{4i4x&jOt{OXOopIgJx`5b z1Xbs#DW3*U!>T-$l6x`fZh!1eVY7F|kyop+o2GM5;QLdsx3Awi8?5-!AJ59)=$298 zFjksK5HxS~Z1zX!`RA0{&-?HO$j&x)al--l1~*C4rQVviTz1>pX1qqXX|WUy8gwj` zvt%0_fhtGrIKm4yb#HBn&5lDCLKyxkJViifqC)kSclWN`O64udG82KXG@7dN;#Dq` z2K<2R=r}o--7R|M-?{UeFpDmGOYb8Cr6-h26U8I+s9{}G4Yr}XS^SM_(y z3+#5W#8|xFG5|I0?fH2acu_CV`D-$9Do}q`v6WE@wA~+IIprxw#ZdBkBDl@69v*0P%;QPxyo5uN^Hcc;&Af!Sj{hd)iE8M;winFW(^1#{Hor4I}MLVz(APsUcN}0emhDW(y?l1F5|r-(r?JEXaLA5~F1} zDD#O)^57BZNCbl5)4`i_0~kKpF}sBF@L5bmTFl|EuPikX6OuW8&^hx<#r@-7P()|d z@a4r?zJ_N8ZqBY2-Abd<`RZbO&BsL3;;-Bv?x`7*WI(-z<-Xl_$q>!sn{HBtBBb=0 zncTqCB!Jqv@AkW&tzQZf@_;Egi0#%KOS^pXPa$7|VeWC;b$N#C{GPz|?J-#{q$rZX zFKRj4wRg|$*3qlIn{Q}FfL3`u=|0eW+-6iB#>h!$k%Z=rFr{G`=tE;LUOu}};462| zxPc~`Lcwggi2Gyy&oi>(cnz5s>cMk+jryxaO=r8#4QpX%yZOX};12W8>`7)m;Gs^* zp>Dr-uX7znVEbM@^(?ebzp(#_eojhcJ%IhrpNPiVJSyX2A6IVWL(nI4dROEm#A#SC z_-j#xTiRwC=n0F1Z&GZ6Bv*{)GvMo%4XlZ(^US1mWa2~GRCg#=2FwlcI~?yT5EZ#s z_L00M^plmMg=O1oS;@_;4ib5V{HkEg=mTQ9Gl_wk5?13_Ep_J93l{u!2E!U#rsJ0L za)$&67u=P2L#rl%A-ULEL1JhjqV{28&(5zP3mIo4`^c z295x<{kHz*Wt5DUm{KB$@oMX7#^V!%{gi_2sNxxe!Y1>QfBw7x#s3zje2}gEmx7vv z=;l^9nT0Y^9x#n4l)l5fmB>uXk$zF*%WW+e)fzFyQW zQlN1^jeGj}`P> zQe*iRalP#4oO*Af<0)UGYO&=rWmrfN4H#LPs4PisP9oz;#C*I@R;Une@eu3e`FWeR zd7432u*r*~?BG>%J~T}qycjXW#czl`LgZd^w{7eQy}7Mbz?0C z(7QO|)a#^mvqG+XVG7y8xAiXm?L}Yu0x(Hv<{Un--UaUB5yhoDHSxcaL3AXuY#XT~ z{Ny69w&h5&bonqt*4g$1{w$SlX3S_8TV&e?QZ*{6_WLi3%x5q!1uTlmC-Nj&jg zv10NvL5ltfmXENpgj|qU&Y5hlxbwQIUbDfc>qc!x8A_?vZnM*AN(A4lF! z2@JYC`a8$|&$~JKH?OhNbu(oa*eCTU;s6_?GmL^C9_)?nFKM|k7Fbo4fW3yn#8aDU zZpO{fqKa~r_`T#)bdk4)n%U;F_vpcEt8_=6#<3?wDq8>!aw;5{<+mv82P4w;tTg@j zw9ZrfaEos+uIUX_@)$<&8a9*r{_q41a*DwlsEU!dP48BSlmC(``=n#B^Hc^6f1aSJla}A4K!?s<>wg*tW+|Nmyi|G ziR)*qzI_Y&d6dZBIIY+ib#_Q!lxjX?q98=J-_iR3@3wi&oS4+x< zM^$$w5i|t^mB+Tvw?j=F%(tdsq{B~@s5@keMhlmevpppKA#FXXTNv;Xn@R3$b#6n5 zi09l+!C^3Q;-Y%NTKIiXZthBLPvb5AI+=$n6kHsrxpxJl8qy`EN%FntpkeDzq`H97 zR#PytbA5jiArx`GIIsR~!c+3NEMPC67}{&lwvnj(rzwRXf^yd(o>lE056m?>DzNkl zo?6|O1g?nYEHt5dikG%tYq{gu{L(K&sr7v1=wfI+RtEJ_2DPgI0>d%uyY^!fD}>wK ztgy3Gp?8xccKRciL8CE&9aba>D_*7vdNPycI!53-X|P}5qAfhZ<%M6Me9HtKzSV3) z?%Vrpt|_^;9VfqJnwu)eRr8*#&uUFKN1YnpFm6=m-G2dJy34;{o$hFfJMT?e^C@az**Oh)GErHDpCu`w#C zAIvVd+KIxu*V=OXc?0$SlXdr`6RI{h>bT{@_>P02iig4CEG1ee&FfZ=7^4!e+(wcs z%qvO03t-rUD73KhNPC7xS4YGU;!eEb>!TOH?ct`=?$5PTwRg#)XZ-@lHcvKOlck4G z$cnJ$?7PlwE>FMF@d$eEeugG`Ytpz!AvaYoTn{4POPVcO=W0x$McP8V8ch5Tp^QJ5 z$2%YR3WfPU#!zR8$s4DxI`Ts>KN~bl>hxYF#(2JN6 zidulb8A~B;y$=8f<#{YXaA8mTGgk>Qab+B3;rZFktcMap+|A6Ht6U4V4t&#kZv61o zAo0pr@R0k!xZc1-WILunW_QgVYP87ZtdHCqEGQ_N(K`Sg*Wf5rnGFVfhxObSbttG4k zmF{DWA;owhJ#iwk=d%-M^)$uc?R48;yS5OI&BqtUGI&7$nd6;NN8NMQ%Na_5)j^R3 z4k zqE)%i(H`-$Evn!@^WERh0BKa^jVlrM8+!DKHo6U>{syPx@QRMFj|TtmK{!z&j_x4k zao1P_# zroD^io%G+sk@{;l1x0zwY4W2ob39c@^1qJe&tw>Or}BRO%Gt|2iwCPfH>fHcDPJ2G z%!4s5S5|9LLMntMAS>nmQ@L@nioF<=so1MZJnVY*T^2(fr-}13Kz96znbo-XPR2HU zG@K-CHK8a9V>@?dk1Mew!1i>+T+)>v{*i{Q4C^AscG0iuQ!4t`rYde7#|uEgM`^=; z12E@G-JOcxnuZ(T`qq6IOwNSEp6$pT%-Gxx-1Lvo^;-@7wuNy2jV^4y0biU(x$ovh zF{CM_QlUzI}6w2DV;+Z)MriQqJYMofT;BCv^%4PDmXe0c#+o zu@SH5bsOml=s)-VT0f;QQ%_T$|B$h|(CYUaC{Rk!Y@1@$wp@o@M~zENoCx8-kgOdM zf}sf^3;YJdGJ}uE?*wQnj7xnqE?iR`S3cN>J~Vs9_sY!_%18v zyGV?)l#(>*?MGJE*%x(R4Uy^_u=6n}LvdF33wkxQ1aR1M!E*zsjHH^7_5I!cfy*Ya z6HeNjvgF|sYd{{MO|6B!r!!y-?EHyZ!1}C{`gKS{Y)h*bKqPi~6@_2)BMAayo5HC$jk#X*L0W zYnlnJJU&QpN(QDfdG);QeO##KOEagn)H)>2A@4aH9C!>i;qAXAG7Yu2yJo@t2gzIA z5n0]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

3z<6)&mjA|>+S%-PUN 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 %Xlq{LWPxiwoO6CvrqH{%-t58?sHs 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 P;E()6%TZ literal 0 HcmV?d00001 diff --git a/fonts/chalky.woff2 b/fonts/chalky.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..69bbccb265e3c765da2d3399bdd6c6a15e13ed23 GIT binary patch literal 99512 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

;%&cI|ofh%J9v4S5f4=h|4nr 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 meta[property="og:title"] + value: | + attribute(el, 'content') + externalId: + select: main + value: path + lastModified: + select: none + value: | + parseTimestamp(headers['last-modified'], 'ddd, DD MMM YYYY hh:mm:ss GMT') + channel-manifest: + include: + - '/screens/**' + target: '/screens/manifests' + properties: + title: + select: head > meta[property="og:title"] + value: | + attribute(el, 'content') + lastModified: + select: none + value: | + parseTimestamp(headers['last-modified'], 'ddd, DD MMM YYYY hh:mm:ss GMT') + scripts: + select: head > script[src] + values: | + attribute(el, 'src') + styles: + select: head > link[rel="stylesheet"] + values: | + attribute(el, 'href') + assets: + select: head > link[rel*="preload"] + values: | + attribute(el, 'href') + blocks: + select: body div[class] + values: | + attribute(el, 'className') + inline-images: + select: body img + values: | + attribute(el, 'src') + media-blocks: + select: body div:is([class="embed"],[class="image"],[class="video"]) + values: | + textContent(el) diff --git a/icons/apple.svg b/icons/apple.svg new file mode 100644 index 00000000..050e9f98 --- /dev/null +++ b/icons/apple.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/banana.svg b/icons/banana.svg new file mode 100644 index 00000000..70fcab5b --- /dev/null +++ b/icons/banana.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/berries.svg b/icons/berries.svg new file mode 100644 index 00000000..a914a9af --- /dev/null +++ b/icons/berries.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/cocoa.svg b/icons/cocoa.svg new file mode 100644 index 00000000..03943062 --- /dev/null +++ b/icons/cocoa.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/coffee.svg b/icons/coffee.svg new file mode 100644 index 00000000..0186b78c --- /dev/null +++ b/icons/coffee.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/icons/croissant.svg b/icons/croissant.svg new file mode 100644 index 00000000..a0c94b5c --- /dev/null +++ b/icons/croissant.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/donut.svg b/icons/donut.svg new file mode 100644 index 00000000..1ca9c287 --- /dev/null +++ b/icons/donut.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/tea.svg b/icons/tea.svg new file mode 100644 index 00000000..f46cee15 --- /dev/null +++ b/icons/tea.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/waffle.svg b/icons/waffle.svg new file mode 100644 index 00000000..9a9a725f --- /dev/null +++ b/icons/waffle.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/AdobeStock_88079615_preview.webp b/images/AdobeStock_88079615_preview.webp new file mode 100644 index 0000000000000000000000000000000000000000..b0a64bb8c3dc7d632c650a090cfe4a1dbbe0ba03 GIT binary patch literal 35702 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 literal 0 HcmV?d00001 diff --git a/images/chalkboard-horizontal.webp b/images/chalkboard-horizontal.webp new file mode 100644 index 0000000000000000000000000000000000000000..509bc910b18f7b0f59f87023ded17e5dacdc331d GIT binary patch literal 25234 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 az`qRq%fSC32L4~wjB>@+TRzyD81O$`N)J;2 literal 0 HcmV?d00001 diff --git a/images/chalkboard-vertical.webp b/images/chalkboard-vertical.webp new file mode 100644 index 0000000000000000000000000000000000000000..e3e56229c338e1aea7360739c9f3e5865a8ce5be GIT binary patch literal 25540 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 literal 0 HcmV?d00001 diff --git a/images/logo.webp b/images/logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..580fd70e27a859668985b86d9d23fb4e8fc3232d GIT binary patch literal 22834 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 V|N8&0|Nr{`umAu0|F8eqDged}b$|c> literal 0 HcmV?d00001 diff --git a/plugins/perflogger/.eslintrc.json b/plugins/perflogger/.eslintrc.json new file mode 100644 index 00000000..facc0445 --- /dev/null +++ b/plugins/perflogger/.eslintrc.json @@ -0,0 +1,11 @@ +{ + "root": true, + "extends": "airbnb-base", + "env": { + "browser": true, + "mocha": true + }, + "parserOptions": { + "sourceType": "module" + } +} diff --git a/plugins/perflogger/.github/workflows/run-tests.yml b/plugins/perflogger/.github/workflows/run-tests.yml new file mode 100644 index 00000000..97046624 --- /dev/null +++ b/plugins/perflogger/.github/workflows/run-tests.yml @@ -0,0 +1,18 @@ +name: Tests and Linting + +on: [pull_request] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '16' + - run: npm ci + - run: npm run lint + - run: npm test + env: + CI: true diff --git a/plugins/perflogger/.gitignore b/plugins/perflogger/.gitignore new file mode 100644 index 00000000..ed9f9cc1 --- /dev/null +++ b/plugins/perflogger/.gitignore @@ -0,0 +1 @@ +coverage \ No newline at end of file diff --git a/plugins/perflogger/LICENSE b/plugins/perflogger/LICENSE new file mode 100644 index 00000000..22595935 --- /dev/null +++ b/plugins/perflogger/LICENSE @@ -0,0 +1,13 @@ +Copyright 2022 Adobe. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/plugins/perflogger/README.md b/plugins/perflogger/README.md new file mode 100644 index 00000000..6fa47eca --- /dev/null +++ b/plugins/perflogger/README.md @@ -0,0 +1,88 @@ +# franklin-plugin-perflogger +A performance logger plugin for Franklin that will output key performance metrics (core web vitals and a few others) to console. It is meant to be used with this forked [Franklin Project Boilerplate](https://github.com/ramboz/helix-project-boilerplate) that includes a plugin system. + +The performance logger won't be as accurate as proper solutions like https://pagespeed.web.dev/ or other services that can report stable lab data, or realistic field metrics, but it does help highlight key improvement areas during development. + +![](./docs/screenshot.png) + +## Install + +### Via the boilerplate + +```bash +npm run franklin:plugin:add --name=perflogger --url=git@github.com:ramboz/franklin-plugin-perflogger.git +``` + +You can then later update it from the source again via: +```bash +npm run franklin:plugin:update --name=perflogger +``` + +### Manually + +```bash +git subtree add --squash --prefix plugins/perflogger git@github.com:ramboz/franklin-plugin-perflogger.git main +``` + +You can then later update it from the source again via: +```bash +git subtree pull --squash --prefix plugins/perflogger git@github.com:ramboz/franklin-plugin-perflogger.git main +``` + +## Usage + +### Via the plugin system + +The easiest is to load the plugin via the `withPlugin` method provided in this forked [Franklin Project Boilerplate](https://github.com/ramboz/helix-project-boilerplate). + +```js +import { withPlugin } from './lib-franklin.js'; + +... + +await withPlugin('/plugins/perflogger/index.js', { + condition: () => window.location.hostname === 'localhost' || window.location.origin.endsWith('.hlx.page') +}); +``` + +### Manually + +Alternatively, you can also just directly use this as: + +```js +if (window.location.hostname === 'localhost' || window.location.origin.endsWith('.hlx.page')) { + const logger = await import('/plugins/perflogger/index.js'); + logger.init(options); +} +``` + +by making sure you place the `init` call as close to the beginning of your script as possible, so you don't miss the events that are tracked. + +## Configuration + +| Name | Default | Type | Description | +|-|-|-|-| +| `cls` | `true` | `boolean` | Tracks _cumulative layout shifts_ events +| `dcl` | `true` | `boolean` | Tracks the `DOMContentLoaded` and `load` events +| `fcp` | `true` | `boolean` | Tracks the _first contentful paint_ event +| `fid` | `true` | `boolean` | Tracks the _first input delay_ event +| `fp` | `true` | `boolean` | Tracks the _first paint_ event +| `lcp` | `true` | `boolean` | Tracks the _largest contentful paint_ event +| `tbt` | `true` | `boolean` | Tracks the _long tasks_ events contributing to the _total blocking time_ +| `resources` | `true` | `boolean` | Tracks the `load` event for each resource +| `debug` | `false` | `boolean` | Logs more fine-grained details for every event + +You'd use those as follows: +```js +await withPlugin('/plugins/perflogger/index.js', { + debug: true, + cls: true, + dcl: true, + fcp: true, + fid: true, + fp: true, + lcp: true, + resources: true, + tbt: true, +}); +``` diff --git a/plugins/perflogger/docs/screenshot.png b/plugins/perflogger/docs/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3089f8d22e35f62eff2071224793be37128747 GIT binary patch literal 97289 zcmaI6V|Zr4w>=o!wr!_l+qUz@wv&!+c5J<|ZL4G3RwwCr`giAl@63m}b3Rqo*=y}p zd+&NqJ*O&4Sy2iR4i63l1O!n=T3i(b1fm`U1Z)Nd90UY3FjZUe-wRwf32iquM+-Mk z6Bhu8h`FOFfJDaL#1fziFfsRbo&fNJfPhn3t82SyE6DSjIodOs{KtmL%iif98U%!2 z$jiyZ%ogBAVhXUdb`T)D?dl^Vu{IYV)8bTMQE(CiSXoQ^xB%3A6xGdqY|VJg$%F(+ z_`P`l5!eIVOh~-!?HpWry#&bqiJoJGaDP@KMO`zZwEIMFGdGf^8aQK z2e_KKSUb5{J35g3htb5;(cMje?4Q{GdlvRi|3mBG`hOzzFJ{bMCQi((Of3JI)qfi* zDE$AM+S~t+wX2&d;Q!J4|4Hns?(GC%Rt2~^y1SVD%bf-Je_T27in#zx+#Frh9Ubld zJCMp&j&6>wR*p{p2^l+yf{B^6!+!?;3!tFDE92nmX5wH5kP#Ok`$xfKZEeoW!6hNW z$toeq&B-Os$|@oLgOin=M}m!mm5rU7?T0Aae`CcR&D`w)4sQRAHUA&1B+LJb{ZBdA zJN@%44sfyd0GLa2 z4UdRa_GU?UcZl8%i}WTB<`I6ADXuBD}*BqO6Nw~-h8w|W>^z%{{tFw))L-oCuN zJUu-f9Ua}@-=ChIK0ZEP7rrxqfO^)*h>NIuZ5-($dLEXcNthz2R3(Tc8LFFG1LFNI zPTbE`nyKv%?B2e=m+|X!EwZ=c(5U0vZgojQ8~g>phY9yfjte6S$nuMOi$t3U?#aqfisWe^9 z-;|HPtQs(bD0Ed_>??ncWb%N)JJitNd>RUlt$YL3HD%ohfZw_!p^fQ0w0B{B*LP9L zD#faS3tCvR26R|L@O;)IjtFHBij}i6Q$rPa$dSH3m$NscnAv|bj@+Y4gg^mM~G6owQeN}*TdHACF9SFM!m zfucZTZQ)Vqpyr>otk$U45mmC>do5 z5T*$m*U#$XM;;3*B``SF`ZqziHk z)u%@#PT&vqci7}Y7h)5xOa<%e{#s5Ta*x3FFo41`aI3%4p&uG5W26mS(bBWU% zQ|$J!-S+e&niuwvgoSS_>M~98LEW&i6=zI~hQ8l@U%e+JH;Y|*Vmo*=zs;n*HQb-eiGm$@&GX=$UxD@QS3=p9Z8 z7Emq7@|BA(WW5r^&E^aeilg#W^V<*DG!>!p^wZw1YDyV2IIPiO!}g8PBqxp5(@#mC z!;&W%^L~Hlmpui5uB*vnd@CPFu7T9eNv> zJiCyjiF(DfwY?{^JtF3nNyO>l)kBXX22* z)*G~Y)7%VD++1n3&-Sq1@UUN1DU!;Fz6ml2xL3?1tJ!*eh$ZbqYk}G>234zzc?R?T z**})Ih$E`j(U&F5d-lHXu*Ztz+9wo>|i%Y@6|6P%d-=74vZL}T- zc!2vc7Y$YdY6xz4O<$$*vYkNu`om~P*Ef}%^&S-W3XJVXnrCkaH_T&n4vf}@Cjg=g zqa4aSIEdrjU8+L7ZNSN{+5Bv!EeCDY4?FR`g0Ux8mpV+vY#kqpCEVA!@-z&mqfH$B zI-N(f>uFp#mN~9HZ)*sLmLMB1@whS@eIlc-j(pfd7>4xCjxN+hS-}hsD#QQ?TKy@V z#J-Lv`&|?Sd@-rpB<X~Ur6KO7&KVLrtqHopR!Pp)^+t0Q9NM*em=VopgIwN4hw)z zr#f4{)U-hDWZ`|nyJzja(ZN&`TIqy4Xe(8mGvTpcm_bYd>vR*FRMKG{Iw+)h(A9c2 zy)OHw0LEL;08wT-&~H=JzdPb!E69h@ZP$L|GRoK{!y6=Lj~qP-l)mu{-xx<~9GrL-1r zM~e|gbJ3<$kU9J7xYM-XL6(21{X}!lb>c1a&t6xN`$!p-lo^&?B)5^$<#HGelsojX zrf_o@lq_iPaPt^IEvcKtQ8CG& zIPn|w22#tjpy;-Lig!3iwRpVKIrJAOBoXu-1O$!{r`F?xbH2P4C){0kv)MnN<0u+t z%zYZVTQ}6zbwmT^jVuKERPFOyypziPGqQ`W!p>v1mUJs?u_c6B1;zzuZHwP~mk%`3 zyoN#7je%;W$73^z;8?Z&cW-VGKigI>-j>ecS3p=b-UcYySKos9{c%90GEcCqQ9gxVWF-U)n+mBvkv>Zn=LJc8pBuALYX0)Z z_JvloS%-X>qG8m3m7x5CQd zQVm5z7n+tkPn5U+{0(N*z1O_yi48DxpZv%NIm!Wb%xOm(L(J=Ua2N>r_w5FMA}bn` z5Re;IQB<(rdHL3y% zWOVU?kn+cKnlq58PchiSSPXuGk{znQv%N4$nh1#$w~!688nB{{*4@}9CrNM0q@a8P zIIU@^-{jue7wbxj(u0exPSxnl$~#S3?Ub#QXa@@Qce9fVIg8kE=Vy(34OjEryS0fn zG*f@soc@v^*!oY|YKns4T^Q30rxb{q%k!K4?fHTK?0U zqJ^s)6<#>kP`lA<-of}&dOQES4~5L4zSO;H*fE$I1;$OTZz=QI_UD2?!N6LJNg zgapmkd^u3CpF>|a8R|=4*`R|GycWxbN%AyH_XY70yuvC`ok~E6f+-Jb2OX^{+x#LRi`#i;Csl(qYQkuxK!A(o_%S z#+|3K_|?AC815TN78)RaC5HcgHr9K=r;a8`6Cv2hBS~^?t9#uF`oOv72N8|_zWXP~ zA`4Sfb;Cjf9&10X9CH9yve_sFRfp#QBrK>`c-*l7l2UAMFcQPH|JO~`)Xgb=%VwJ< z-qnlC%289-tp|N^Q5g*}-?HvnLQ;@DaLKa|f7! zA`4%1gNN1wtJ&Rh^=m${ROe)d&YfrE$G`*W2agQ$Em*nqRlKjUHp^1OtsV=JFYoZM4 z9BR07s3byo>m?D!ChgONOg&S6h+uU_P?+pWh#IiSG`2Olyhy;-nQDKj5 z7wznS(KOW75NNlb{n0NMtA`^F+3A^(hfgsMrwu=V)M`m56Ygyh;<9vLCsMYWK4l57 zs>Vs4h5~6xcRRpQ=lY_91(I0_$BS z&<{*Uh2L!1iPYI(2h)rVgCqH}gIs6Y)hxOp0)-!;akJ!{TxF5%!ff#n zd1jdG^4pOwKB);^7kuI~x3R#JzRLLl+t>+D`t!F( z?&*K>CE=y!2#E@{6Zz-vj@*~Y5opQVji}f*yK{;$j5z4hN|GIYC$IQmf5TJpGchOj z8Tx>^oOt{-ft!ULay?qg)L^6im@3}_gdC*CZUI2w_FG$HrU7G|Sh#VI&Xm-J;Qx4sJxVuW+5dJx(_afFLom{pj7swHs|tLgx1}w_D*?^C~^2@{IGx1T}y|+Iqd6*36Er z0L6adR1W0{#a;;MQyHA1RGd>(_Vg-o1R&@c5liTEnV%LnEP=eQiMP7UAOdM`p`y~O zgTJ=+a-8_^{JH$z$9kNNXlT$--3L;4cfs7(WR9XK(iu#A$rHtz{d#IdpF8-OnUcSWX0A$X%_>pqdfePOkwi^97o88(VH0Q(u6?yey9edJq)iI}o`cnh|X zUu4K$6$Ixj)}FN7SPCD3g@h}bPU~2_O_-j(U19VcCyJ@2Vuq*Ll}M61jY0AeGK;$? z>yG-B6YbbRUFG#jU`+fv01>mrLWBzf^~iyALg0!H!hy3@_NUR{Us%=dZTmvuEu{BW z$F_vKHQ9S%hpPIsHbm=W)9UwcFhmR7`Q^Bh6ZfjOmQAPAKP%r5#N+*l49D!F3Id`#c ztJN9Z`oARaJ&1Lkzjb0o7iep&ml2%VEc7uE;mt?g%NFk`YISVbQn2Kyjs>5h)j$%5 zi*q<3LOs0MCyw3g5%oZ6~uL7}DCSSRW+=-=!<`RK_O^Cn!laHf`GLFm~ZlqV7 z^cugi{{CF}lz|VNS?nBPuwEJFFKn6eDW(WEPhDxjNJqm-qYTro04FD42J1aAyRlmM zJ;xkH4yubCeh+~aLqVwaBjru$B=gA{t!r8E(bb*%MU9Z^lM^LSV<(N~MLdM^3Eq5w zT)Ky?2%*1-LCw})N3&GQVQ3*M&EXb5RS`GUO%pv6M&XE!*%sf6QqjGU!zksk3b};M zcp=D|E@{lFSpPuZyC-?j9rjT6kMXtH6yKZ-Ncg^ajXP+~l-Z$i;YqT)en5BU;(WU`WPA_jyBeOp?k-In@EbO65rW$Rgu z34n5=JF;(vAsJ{)2%sUj-R%>4zuW1R!j;qOnh}GPgUpY$!$|#<*x(}7HsJ$TZ>zED zrm9evGfw-hO$W7LK1qV7AX{prOfQ741qCV5Ds!uNLg3(b$R`CIEZUy0BOv>`>$``X=K?o={L_;)##sA~D2ub3&tpp!cyCwt zJrZk!03mO+v|d%FA@7VGevK@v=?gxj(ujl=wmSXxnaQxcyu0e;J)TKP#S1e#-nSuS zH&<=!1PQq`oKOVb8J-RSp@xRS>0Vv{LHrOh6?n#{i0#d*`!%YD-lyFF59KC-_`jSx6^+ zVF(>`A9xPt2?3b00W@uKN|NWSbD3}Y0s&i0&CXHltxoPI18S$?sUvqA>mM468YA2p zavcd_4M_uwaGYykWuzn2LYTBu=0Rff7VQ?zEQxzdz*rwel;FfFM{m5GK2nWJfPhN& zZ+N%UnaJ2PYYN+9)tSlAQFnjedq*sbIB#6;vLPv1uWdGb!xyL$Mpv2o=3Q3ihpQ#} zL?ZsVDcoPphnpT-9FQBgatsR79^P&!2@{|bN_jzo(K-|K#oiQCE}P^(Xy%PWNiP^P z$Sn^cbRnxlrz^2W3eURTu`5wjA_i}Mu{r*fJv}G$7!<=>Y!9Audv#qW1>sy2HmWNS zG1bKBJbvF~`BPnWarW~oL8-TIx3Ci%NX;G6J(9hE@<^@#ePO?7=L)2gP(;zq z>3qxz`*hjHvledeGYx>Mzhu93+$D>l6PQ)V3u(2~XhBL*j-sXl;@le&<8YiiSA;l$ ziPevi=&_EIHVr?-hi;7x4YsQU#~e-U_dHh4pmoPlThEOXkZ=A}N_t0%&@(-toLR8j zh%#R;jD@R3VyE>;7HYVuhExjO5AsxIP}fG33D+nWnGT3>=?i;<^rEK#AIWOEjsE=c z?Pamu1(Y9o-HYdP=6rXMeTrjt?5lL>aW6=2arO{%aC;@(y|~7Pcs~l_0S_o;8iBkQf8(O`LCJFH_z( z_!2BN{lLZe=CjRvxU@3=>S?W+na~6a2S5(tn5-?=pdp3t8CN)umWtB$X;&Q}R6&*v z)&xUs{K^o`eFrH@QlbBB6orJ#&!abuL3^WFqa#F9RM9%O^H@U`fWo-5nyPy=#v!5|D zryQ)4kt2Y>ptgjVrP^cUtpf)TM(EG1K;pC--F809KEOhw)&{)7`gYLTl`SjiSdOD- zz;*gVd|>j&vq!y(Tl3CGJ(?_U6%*?yRiD0sr^}rsv{@*uS1hKsu3u9ma>i{ z?uU(ZT`-MCxR`_l1WA)aIkb{$)W;d%jv-5_aYx@oh)hQZ7hn~mynJS>l{xi#UD$pN z2cGz>zu#)B%ho$xP>Y{|WTtozqI9zNMr0EWbZ(jBv2Plz?>K~uDITBd6Ze)Tx{~ZslVu9b4X@bZN1fRSe$hp?K*qMc2Y+I}x5Si^+#;gQg-Y6vA_wvF4Kl z%P)sq!#nTzMJ-<_6zTWun+>ZbpepL zBQYhUQ)IHcZIs0>_$OlcE{80>LfQaoxPWUlQchswCeeMk6TD3b%JDi+d2lMQl@AtC z>>Yz5#+|1G_loW~HzO;k0)N4P_P&;sV{RNvS)z=qF`sNkQ^-um+badQx?hiz2N&M6 zG_ZP3gYObnh@b`|RXdKkVy|R9eZ#w-50(Q?D@%M~WyP1+)vQO?4zislV0cV_tAo1? zqujC_Zl6PsV4?Sczmo&3+r*SaX>OwuV(%LCQj2A|lHlqbykHJkp^=%Gt&P{iY=!Ch zvBU-xNwbndG*)jXEYLqy0ndPgqg=<^heZSJ^pUi<*8BZvUh4jnPpJV)DE1H3P+%l& z=@ZaMk{3Z?y!QLVn!lQU8iJD&@#A5PIZ!>20Hi6ju!MzFei3I9C0h(Xo`drXk4w#B z;jZ=Xi#-n1uX5SXh%*!@YK}Tx+YZ9CgXvlpd~*mfbBzF$>0ekUAoiD=q&<$c_4zk& zO+Pc_2=;pB@`Z}I^c6?qL>lC%m$e+Cv@7=Y?-k7U;$72gL*F5q-z;X~=%p6-ADMC4VmP9v z*pOsuV%JAkDzPQUY}tu0-IWqXM~wIARjm97=eY%@) zgb?QjkWrbJXJx~+Bpp>aUX%+Nm(-<^X69RL95$8u%!^cC@)e5 zoe-sBcGKRR{QRExufTil6>UoI$Jf7SSS^MEs>^_ZIK( z^Uc@o`g2mf-tKX~-tYE9T)26~Bnm|cKfm}&tBD!0E>k3YiYi(LVdJl2_N`RXFZ!gY zFG^ITc>8a~2%oSf4$K>V$ZAPZ#}r0ko{g9~yA&m0QO_KhYcMQGxTrJ#N|A68t%2uC zi&DZeKD#`C9=gAp2E!hMAWq{|wY2QZCH!or4B6Ln^iSJm?Z%iO<9(Yf@YQqww||-u z|G}d8r&atBk#A}$76uHG%*@+jj0~r${Q>GcaxxRTzKIDL++Q^Q5E1}8Si~qoo z8uD9=1E9x7jy4sQehCFqV)QP6AM;UtM0*uvvVpjB311%z`akUclnws)A$!S zztE=<14Ubc0)-Glx-{aSOV=FiUbEMsD(dK(26_wcojf%>15ZGP3}Uy0U>>)%hEz@2YrSQFU@3a;F<*Me zE_{}h=up0|PZVcy3My#q2^kW9dsR>teldgiY7MPX&6Ys^623Y%Q!eqO#UXP&GURGo zCL(owzA`@j{;p1e@W|n~_RwpTF`!2p_4_evW-ZBH>>XaO_I}}^{bh5(e6ap&);e?lf_#Yo( z2@bVa&lzLe)NQNz-Rl_@;?)$dX6;jKpqI8!%N>)%VG0g;oZ4GhYY&ZtNIL24XvY-A zrZgiObVR71C>_znm0K>7VMo*0IdBP;vgxVn;@-XTUQaMs-tF`0(qfF-WM%Si`e|aU zloZaiNfPi}ALne3;APUoPp&dmg`-;fw1%y*@PQS~l3?1aekK$eCB|@*g z^UVB{&ATz2Id)o08e*%$B8{Lfu|1>8+T%f|i2KQgzInHt#KQB^peKVmpkpd?>PbkQ z50H&jisn@T;;FJ{Uh;wP4bg0AuhDO))K%#%r^OFwp9$|@NI(>yiEW~V{$L4NjU;i_ zGN}3kN>noP0qq<4iv;v~d0XwlA3E{7ax&^NY!aijsPrS!h9|vH{=h7%Cz(<*iRayt z){`uXOgV|;ySB~}suIJ5R zc$x2p+#@;X(*ZLaDq~hNNKA^~lEj2I&mu-G@N<~XZ=`}PjT%u~_t*&@tDZ(@@(?^` zMFeeet-9Uv%NHCgK|qy0wv^juR0Z1e3nsmg`?gbL>_qp;y-YY)Fx{Ju$S1u@#w}E! zdO^3(G^xf>8`*fI;go%Zr;1>kFIGH{Pi#=eYpHN z>$$T3JI^#xDqHKX&Z*JYwLOUK_rq`e?-1@zS0-JlbPT0|N%{ThEn2StZSIu7duNbz zBaL3rYRZn3djfbn05vRmW8-U_^)K8qP7(GapaeBUStCb{Kcpa223RV{L0`U)04}*Q zTaz$6dt_uAbWAo|u~?k^#d`@#d`Z}0WNItVw`knFSUuYX0FR;eCs`pBy;?xUd`zxp zY=f+j1j6LF2$oM!Fec;tV`n-9)kMp%vguuXRct&xJ7P%RwvHbg!mG0OQq#69)(%oi z1~2CKg~?w(`Cj>_ZEvC2=>uQwzxDe{)pZXUaE&+pZ&?r@p6#Ge^+YMRo}4-fguso? z0^W~*{fPa(XMiO3+}JA1%x}Dt+K_f%w9!V^qPIo$_qJHUbX`jmq_Tf|9OaV);}Ow0 zg;G|#92ONu%E1IU#$a#VlS0#dtsqQZL#zHyx3A-JJfM5YgSp8>uvV>{bra?c*@0fr z&ib1TzRrG{i8QFcH0(u}MyD`jBj?CqGZ9*7rPHgVu|zCMH4ceVs4mJ^vt?StjSfyY zCZa^i0ge1-BHv&rcy8UfPGtsO{nzJhU}d0fz3vGJ`*Du`Z%M5IaU$4^lU^QSc;hr$ zOG;h!8qy!C1TaOFW9c|teA~+qVo9Lnw|3j8uSkK1rxE)y{ec%9tzSc34T!VD1+^h& z_P$Ez#JfO5V#X0K8e`urwFoAefQ}x8WI%TJQQ7yU$ypMRtb_L1*JOZ9=*HXtKP0;eIIM`uwfS7qRfSh0hC(j^B0foa6r3 z{R>ae-s_T=76<$KEDF7Eui`$lK~T%2-t!q7ndz2N3Kc51Ug-5 zT&^D^wbKx5eXDx?-f(ZXwauhSMlmBHm8LNo%lkIC#u9ORqNdRaMEQka9HhHuWcTjS|t#c#nS9}(q=B5`L2-O-TYX4n|;Ny`DRsYhI()- zq0?*pj0k(UfM0(#>jT)7D!H7lE`%9!bD(9g1B|0t=N zlu#IiUpQ`t8)kZI_O}JtKzv|rCw2q@+O(J5$Fcn73}WTWEO>_OplBdCW(SS3;Uwcj z2M7LaESa*TJ?zNPFrZOw4U&-0HIwEYdQR^N7%Fcz>5lRLSrS3b&Pi6wc~WT6nQ7qy zp1i!FWV7-XRN+#+bz~89tFdsVnVt9S2MnpD4a2o#j&w`s&thuN& z+qgjE9wL8hm%BV8pVRY)8W`ha)q>3+46T?7G~(WDOU> zC)d)(ogliM2xuLuri2QcCp{isgKZF5u9VFz)_nA=grH+m826IY94n{gnLy^zWYJ1` zH85yhhadVVx)RUpqWrsnYdU$H^O1@KnNqEBcAUkKEY`$+VeGf~ynW}Vl846(A9vc>EYI5PnOOs0yq6+fzP5WZo z_$c6A20bFfO{pEi6`OY=?dhdG;8_7;2V?4i8OYc5?e%8t8(Ub9e!AQC41^15FuONf z3}&gEhEr==*`I&)6ky_ju)DpMuoaVxgXluE=rJi@sbX3?<<;9wvvIu=j)t~zcKVQK8T z>ufsuul6_SLs*=HJ89!0bPkKLNwu+PGr}o_a3aqXDJuVjf&#Ns8_PVSa8re@Xx$d= z*NP_1(r1&)&Zm~Qj`3c|17si^2wzy8=tQ68N1|{p^1aD8F5OXt6ON@S;m2pH)dbjk zhVSkd7$JamIdj@U(-NV$;n^0x{e<{X%WCQGQn4VkO&;+4$teuHw*hI573k;EU zu}qtPEvhnU)6i~Jsdt_%XiQlf(T=r-Yg$6%O-an86fq38e`ZLaeN_@)ls9xxcfGEI ze2svmy#5z;D5>~Vv=*6|?%GA0`9Q@=%3n#)2L6f)))GFvRYU#bML4h9%Evkug?69A zi+q!&_ZFoke(w04PDsKz%#w~-BnPLMUYhvnSL`Lv=fZ1#K@NWFAvGGiDj93RAK&qm z7_Gzvn#gaas`k>AW56KpF9!0x%S);SF#XFE%+giCO}Icq^r4wD3ld9dE`i$Y;Q@+> z0x<2lf!|kMEXXr1PF4-)hwqV0H>KM2FrVJP+lM#J5wLWWCaK)K8SynZuFIlM{qt%H zGQrE&ZRqT21hO%ySkabCjMHM#z|+xxMGX3)iI%465bl@3Oa&~KtmbgyG0bWOw0IEE zo&y;y-)t`%%FEVF3K1e~yCk?lGME+!E*UJ5y?M$}Noop=uo2C&imiMNKzxpSAn4!@ zY~O24kBd_G+Fa0x_yWh)mBJeuGk0EJejxO2W~S{f`P`pO&Bb#VGYYMa7)@B8 z){y*_bS^k>dU1s;_C&Q@FNvGVnHhh=5sJ_K+xFt`;B`G8OIuIh6pk~5@su{r-fBJf z(lpg8OY0CryW?Rdt;I~X@XL_+K#9}dsOhJyEGh;87-@j>j1!r(q-KbN6LH+vNBj8lzs{^}(-Oz!2!w(80;9SWRSpj0J%EKImVLQfFy! zRd5W#OA=GcvG(pUj2$|}$ZT;7F-r^`MRFn~#y#YgLW6bG^EjovnisDfjMontiKPbX zA@KBKA1ms>m5Enw6Pl}v#=)~%-IzG_aTzfa%yM`Dq~8T!CDf(QdRG?KX_cI&;ZABd z_B_|KJx@_q`h9;(l?o{qA{MO`Xq}H0T>FcHJ?jR9D`@7yvwaI`i;l@WsmKAv28$U# zn{jDj{;&3Z$Osr|Ky5N#rTw-2S)j7%HJ@xW|8YZoIT% z(wQa443|X~aFJrmYoi2;58gB5rSsmO(PgJ6sUf1&C=fAnV&TQ?Hg5eZtA0TF32SpQ zanJUZ#k<%)==1fc`VVsl*DPkDG%eNTd%I$PB4YV#@RQ6Qyu}rps7R(y2RwUN}l0UueF!$C`H-FgzyV-l-Z{9o^`gh+ zGBam^XgTZM_~n<1gN5cRaiL4`7JY*W&*e!AL^_PP`53KAu8!zE<@g5#}1 z)5MB#(%kF(B@>fmD{5k!$c2Hm*n7#}aQ$g9rMDl!UwJ}k&i#nVX{W--;g5z1MfXxO zFiB1YVKEC#pz_n7kODSh#SY}curvu7B1GHXd~8){I?7@Pe-!A zF7AkDtNeK0*+puM!r_V+rDwIL@p&2)M+Ela3J<#$zN5{ zz`)Hd!~wgHP}}?XezLkMS_6J)`UQ^u8>zX_p{9Do}EC!5n)T2NEPt>#EGvKNg#D0KRFK4mxRlxci6Pb=adL|~nWZIC;1^^D6UjXixY zEqLv6cobq-rSS!jrS!p68(Ju+g^J0^df6nubkY9X@_x#BX=w}?GTD~LbzEsBPox+*7t{D>IbN^9O^t!1Isnom=YB=PC ze4uigC2I24;HODn$=Ci&*etE*w8F%YWIz`w z469$EPR>2|zNMh4Xz>JF?$RE9i*=OVeZYEvnWmQBvDJ^SoUo`JyJbF(mg^>FGb3vJMH4CFLe@flNnBUf-g`0_`zJDFouE~e z6PYlz{h;3ZhfJZ-@LOv5wD+NQ=3FTl4+_Pb8ajohpq;r2LAIViu5k)5*s5RBru6$au;_c5HUL$wd`( zPL!8|7d1Z8$vz$T7G(`u27BGLs#4dtan=qA0K=HMw6Xlp{e9Gx6 zx+?BmH6qzZ;jn-(|CTV zCBnxlIhAIf9ggbUBKu!t;tgbCK>~2PXjOo#*@5sAn9p$OzLuoYU2XCxT37kAHeDYKjIDlR*nos++( z`NZEJPjg1sL2YUVsY9MSRnz9hI0^lx{A;!_A3>ko2FAtDwM#LTwO-`NX}> zva7>sNc(iGI4d8JqE--f;(J~lQDTzRmR>p78%cNd$#5@sF?x_zRF(M>TW;o)w}-0R z?cd6Gk7XPk76x0Q`c>YPY}~Gw6w?<`Wk_GOn%Z1EBBp@ou)-V7K)ia>ApxNb7mF)8 z&e1Un-0K?Ej+1V|T5&${xvRQVLz#bn#5$$~KV0}3J+aSgl9OK_MABs^w!_4hEqiE< z+WxGh?!T`|1BJf%CxF-k7Xh^%52?MsW7+PJ2TdCSUFZW_8A1KXp050@S*9AE6^;E{ zRTMkC?|!iAeP(y#*Y6SbObMZG^9b=3TSi*4@jR}ljnCn{e?B}sKRjbG2dplpQ|iw@ z9$$|@>g(@~j08F`2Xu7{FEKOk7m4*$8-01iWV|U1qt)HT&L_MrT?ZQJe|fy)8|oVx z`u+KBrsd=@iwIiPdxUVnp7QNIatC*JHR*@q`cp8>@>DBoCkkZ^GsHFEIM*O|+46LK z8CQr;sE&4dv%0C8{`Mj^cayt1((ZARt$+BM0* zVB&E%a7-^``PvDunBMnD^Bc@?@YsGDx}FI^wQbG7a0xpjuj7NM1CG9ox$meA`(z0TH?0zP z*(8f$W{6{K&f~>9h6d@K{&#{n>^f1Qnwdj`-b(73E+H#-@+9dMP=1rgWcLUyip*a5 zoW2dZnwH5_8C$Qq(#XX=tlD2PD^!Ye>u-H5mK^iTpV;_+n3822p z#(sqTNW5fVlxVI6_oO>Dl5CV+3Gyz`Raa9LRmsbekiugSm2a3ptCX^>1Ex6mV^cU| z-0_wNxSuY!$lgqr)OKKxq*CTE<5XLhc-o|EVH&5enyZ|~F7m?M1oKu+<(#;8?{Rb< zwrIV2=R&T(Av0+xYcQ-jCYpP0P1#J|cyVIRj7xhxr}~=6;&oX~Z@+pt0#^5ZsWkb+ z26rM!Sn+*V5|p@F6L3aSY{k;}6mO2U|D8XMF{4q0Z@a{shfT_Uw?K044tijAAsed` z4NHpJ&Gc-sLv4Bx8KJimhmIS+;f{KpVRd*5Ev-^>g~{h{EfLD6Dq;aBEQ&ZFqGF<8 z(R!j!W8>AJs}WCSJ@|r$BRKzZ(Ie;(d#0^%l?1|QNNc{DmO7SSkq*iqnZr*(L%I^!-%JgcG5h!q@T8@oBHAyu#g;FQfcNttB#jyf@H zh>duaGyM4&N={jOCve@;xAG|4m%cW%RqZ5~1~#yTQoOxzgb3AyBka-()U1H*SPiXE*Fat3iT*pJltX?sa@Es@V)x6?GrATB4#Qi{R@j)M*@Db&f?W(_NEh)%_W;8=cHb|01zW`*pa0 z?rx&F?DdvE7yScm!c?=PP>ZvhrXUYc&@#e+xMfIB&3I3`gfj4H2j$WuQo}vZSSaoP zIqJTxRElU{Dr-$sIIW1$eZta=7RdUgYtUhv;LFT;;T^E|sj;Z_QJDW%?)2h?t|?gw zIH%^Gn!=T{^4gZ48b5^cY!`7y;q^3p3Yu_}=-?KGP`37S##BtZt8wCfzJ+(~x?I`<$v!hHyTXs^ zX65ZUv4fNbqBy^$qIVRE#zGkep%lGU(8<9d_xb&r7 z0e*i*dM|w2e1nAzgQ^=Hm0Hb5Rst&=9$vG;zE?S9d7P+GGNuj%)=a>e(m8va8Nsha zD!)7c*|lu}ulAlaSF9;a+X(iJkhE4FuAXq~WT8t&@Z!Y*OVG5OGL`y0N0r;UXx zn*JP49kn4ssu0Up``#+6^o4ClCs*z)rNblV=-=@mJ?w`(+xFt3|Av5q#DFNw&;2HK z%H@y}p(0kjH`uvcv1BTC|2gc`*gny6LtYa`SW~funjc2j$OmfuvX*bblxatHZB}|A zP^$yKz$aiLobYO_yfy@S7BazCNbJhx$C7y?71*C}>q}68EZhCYykNd@6s#fV>-9J> zcA2$~$aRt1O&T}j$AFH#Ee~4yw0L(kZnDgpp5WJlsIKTwnwd<41jNtB=0a4V>;<7A zH76)wn#1@~@48ZQj5GA(&+G+KqRY(p(wFjGnW(jZV~XRbciCD^wrw*PUH0>cg#h10 zZQf;G@+3+#bbFC)0}2Wgvt{y{Mk;)}o`$w#Y~;11j>sNdhdjB$h)cr-(@~fN;O4`dPCE{ZZL|59?%t<3tT=Ojz&@$n_ zkU=j}(R7Au5@F#@O$@E^&1%xbb+O3e#7Y^2CuGEYNf23sG=;6HLCyDG?oqW(%x+-K ze$nun%VaLIE*?N=w*2k5{c|XV+Z)6#%2>G=S-W*MBy20fcV28pjc)edb-S`BSI`y1jJ?xM`pNQTydGVQWOj zlf#~yAzwPt0H$UhSThwaXiFonSw=3cq!-{l_5Loecta=fzEQr*#lv&kSZTuRfSept z*GXm-kP|_b{O51W>;w`sx_x}Z1K&HPO zSktt?nSLN@KBM~y)1quXhl*2B?3n~I^5)9QI@6f0f_v(in~}$A?yVf-_Dv)0h$F|Q z)spbNRA7J=82&ZJbbf0;46tNMjjTow4CDAV%d)g@IVneJ&xo+8kynxBtU5eW!+G%~jg&B~UySK~I2nKM;cVUz2$+#7sXB(a#d`+PAC#&Uvg?r(j9*ov57Y@9m7O z_&#)^&b4}>%=b#+EE8M}eI5fn0!y51_m)alOY`i&SKXcfi%l2I2+atmgcVaED;Sv^ zrWdxX$U;1XrDjH2IDEx{>SL4(nqZMTh3pF|`Zpg#zM28^DOzddaUdjVxMs{fZ-q%M zu}7!_Y}yyVGH*H~_H_#yODSVlB0QmlE(r0p_5xKA-dB=TG4WX+DOG(rrrrQn(L{_z zjW_z9GnnQ)ZZa0h#%o4kF^?L!2of{}T0Qw3ddNI$Kekd-pn{O(0rcDli#dt0jS;-! z*vF)@O5YhM@XVi%Iglu2eL|6DHjc2V#2VE!BxSno`!=7&+E*BUqRew^6lnv^k=Ou~ z1%|4&4;up1`T|%d{gmK!9oMzXS5e^`^khx--+kW)elMd)Wj^;RR#kN$oq*&|V(Kkm zO|e`>Q5*^_z(v9M2rMgYt`3%xt7K(zNtm9*nrtSe+?A=6q-dS2C%kkaU{~&3*TQPD zD@knB*EAePWnR-*lS5-3muY2~ar9TUBG2EqdzE8exW7ZuzQ%t~2VZVJ7gLwON-y~@ z_DW$nzp5V$SohzB+Hlsg{9Dtd9(Qv8XLT*Ua2fri$7)`PjHd8EE@|!qzBdh%ICNrY zd-NbDP`v8HLEeqC_XO{?n{~%1OC!SEoa`_p=5I*N|6sKwhhu8T%wGc5UMj3Ljbc{S zau2Ncdr-X}fwg4FblL=ISXk}|o7nJ<_=wgqI&&V>*I>mvvnw#&SP_!)jR-b{er(7V z;d#7ZB3%qC=9ntPwn#1SHKbT-urBNqY~74U(Aq-7eC1&Iy2v?J@-m2Ya-W<&)t`hU zN+1eI9cPeP7_ACSl{M{UMn1eS>m-wMt<#;nBjWBZ*0#?o!%(V3rP>ISSr%o)OVb#Q z2xhW0DpVx;h@j#bX-J-Y4Pe>1g{F{RsgJ<=_#glAe?I=l$Bz@RKqs;Neh<(gbw0O@ zB=QUo@R$SaU}=E`J0BLHDzFYV5MZH#ZLJ^cY-xRrxL;esktT$SoWlq#!Z<-rnvxh` zH8eqIRlQQMlA@F>^&-3PhlW2y$iPP<!3EQ^|WGW)i3Rekd>}XI%++lEq7v<(9tS+MVs;qf%U1OFv%y%s=$4?l=mm; zK>hT8EHt8Ro=;a@;oeO2Jcn<21zEkCo#~I5_wS^tc=~HkUNcDlpL3eu)C{aY4Xl~| z_Q3j|Uq1fwOLC@C|LuYG>QMO08O`tM8l*xxI+P%X)xy<5KdMv)Nv|>QS!Qt5{?9MJ zG-56*1HwPArSd)vmsrSJ0{>$1TnPhh!8QqsUI3x$;Xc$|9fPyd~2)`TI;elZ9~(KnN*}nICg8_VkopT zyUyjE9SW6=;c!A$+2>VswI`t|lJaPMHafS11O}YaxrpOtLJtnPEPIgbJ(i!e*rJP; zk)G`Tyv%!yMa)oXs2N4a=+-t`yUi+;M)a8MOlYW zkkKwHHZi5mQvnMApXBvg*PV{nAe&P2G>>6HF%~R)#&v-?M<$0jK^`Yn1xbpU;*K(2 z!P0}>8j=`U1Pfv@$b49^pB7ot{1FM6#4wRD_I8ypfeZs|1i>PF8(6>p-*=Yq4Hq7x zF;EmG$v0u%mDhM)llO80R^aK}Q(hkA-UuuYBvceCzV=(Fzz3T^MrGH4pGm(5Q7Oo= zqui%Ja#JVhVjGm(mnIbjq+I}!Z(Z+K6{~tM=gr338Tn5exL}wX*!3PLVw4> zYBo~cpp*a|`2NqTUAo#UN#cHCt8MmcVyo5VVi$Q6L2vWj{|>d8IJltmf$Y<>c_*3S z^;3o~d$==w5%d0U^Bx!8w}*5=uI&CkJW_j7c}_n>ItLa`Znh>f=w`Bd7T;DXY+m!% z9@l4dKlcGYVvm(%y&K>xs`kjLFshO?2(@l9!Xo_U6Qm+5gl0vymkK?y9|nmYd8|=< zJ52CGjiBP_I8N~jg98UdUE5IzS&3spb#l?>PzUjJD&P5hJ}~G&W{4afFF~$UQIoI^ zMCl$(fQgDRGq2&L`PVsbb=#!3lj@&`nN{v91y6&<3%>o5P8IW91(mFiQejVY=GmHI(Qxq3&>4`x1H#spKEfskZ2Ko8752~>$&C`rXWKee@A)0^D{Yu=57G#Q0N6s( z6ihf}Kz|s51a?LY23&x3IG@#MnD^(#1sC&R%VtcC1Bu+qweVIIwDw z=CNI{!Pm5;!x`fRlWZ>)+PHqMx6-3jNSR>Nrj2YEWs9a+l&oO9Q4NbJtEtJG!)CV# zm~GCS5HJ>-WGb-CjIyd=RNCk&*0YK=EMrR4X15lssK@eqZSRA{oQa|wdM5eo3j!Zy=wkd=yT$KRi67QLg7qb3anyCntuzhE?mg}^CZpmckpIV{?A9R(>eU zMp(Z`Y@h>Uy%@}=b^k__uiImlugzoe^A0Oeb06^CNt}o`6Wevj70CW@f|T4%ULui{ zo}d_{i7q0lJR_1t5qgaG9U(W-|ZkU}1fQ?5wdNz#<^qI$Nsz$q0iOtYK*c#vC)yf}wgeA|=*aBSONmLuz^a zL2iMUnBzbnfIi#l3z`5)DRHhsAh1y-^Hg{qj58k|XvmECXpTdcSzjd{1U97E-^{g$ z5tPc5rL;)}V`-DJcEz!!VawXKZ49S8T&q+#IV{=(E4a{ZNUDjVj<^q(rrcqBpcjRa zi&AYiqS8~r)P(&nb|;0$=A)wzmFNXd=-a>UI{(QveXhYu=W?v=V7Z?TEP^ykuXN_U$>V}a>c#BH zyn9g)MRq$f@0+k&^KKpc>jEAf=Wh7-4e})))=|(&tLW!zwp8I0$rh2}>Jc6_ER;)t z6FQ-5h40IS4^KYqmZiTl8RXL~4OTJ`SgBTu#y8@?uCCVh+-eC=JMec_#?C9~cW!o< zqvsi6&@P?vylK3;&2nZr`67!Z!CdF25;UIKW;E%IfX(|L^m_cU=1`2(#BHcGQa24| zD~mIeWMG8lILNR`t`t}-QdDam)$u{mFNnOrb6W?jt$BSFgNi-#3>K)8p*GEIctkxJ zkd8m2FLPLGzT?7&1vgmId|T*cK^{x;0QvrkT8XlQPKLcf9h9^x)B>7p{P9_zG^;3) zQJ6)rmSF|(AWH+rZGYEAY#T8Zp^+_#cC$DJaFnC(CU`hiRE7+hCwgI|LIzGNkkB48 zszlFJO)*Ldjj`f98hwxaFcc_D<95t8q;V!;)9w#p{`J~Wcnt0Z-p_OPRzevlM07Ztpw{6`D{2DPVhJE z2dZHla$qloy)yp5Sy?ip;&tYoBjY8;8skzpH~K4S7)xR2iIr+;d#%7KyfTVdQ6J5} zRFnrsmD47CePvocK?W8-717vlz|wyAJ#%n8Gegs(^!!w1P#C&r$hM(`96V zD4y||{!}1zPC;TI()ZvE>EXa1$Iuueg)b-JNY*0ivR@`L$Tq`gRuf}sOe1+}&1 z>g2j(u!G7PZ6O4e=mhRO=bl?NexBOc~JVW_F?x3zF!s* zn34dJ&IiA<)@0VZWQV@l-Pw|=v)ZIPFnO6bVda;7*F^5x2;?vPS&%s@BX4XeAsab>u&?AU5>`MYWV&ZViQO)DHL-MK<5h`9=` zXCG@0wgho%)t213k8#XhxhuIbb{IEz`^y3jv$Ejz@mQY|{VP04GyQ1MzrKHul@zZ; zp}4>3u;x|hxySla9xLz|C#=ukH2*Tpy47M72VssNWc6lrU}znH&<7hiXxs(u1evA8 zj@#tRqvDHQv|-aqUEh>zjd_Rbtm%9VJ2+UIz)7^Q$gxv~i$}rA6vn-(1Ky!Y)MVC% z7Yima)JdQa9|Y9F&9M)ocGqgR|CJCkJ~s5a))Q9&avD%U3PD1u#zmf# zQ@el=zh(Y)4NE$nrpzk@muHH8d337ihqZlQ4+a?_!V|*Mntwf5ML(qe&Y6E%MZc!I zHyrn1y1u&VyH2nDz%cASJnC--4kxQxY+3;Dl^G`Ug zq$H-0gj+DXR*faW_R&RMGDlZnSbHnBWPTI*W#y+;hp-S0tRm+&60lX~43pWW!fZ!H zP;>H=6(`5tX=`f@Fnh*AtLR5+Aa>n>SWK-7Y`HBD+fSK)eNPQik0}}y)}hH!D%3hU zGyh6!`#m0wRG3%|QmebSH~*^m`XCiTWIi3jV4?fR+Iv#b&WLQH$&D}*K-HK>QU#bj z!4gUl(VCmqS)q~&ARsK@=?>63bqK*9P(A~H{^@bm79vE3oFOfk$rR2^iKostPlG~S z?IN_32;bIuPyC6hr_4X2>SQ}+F7hsQ7xn$~!dF^6%lC7a^+Mm_x}`!4FUXBL^ql6m zI7@}I`PWR>W&ZUko%fl(@4zSA*mvUOa5$JxFtxf~^RGy7Mrl;UN9H|`Mnj#Ed0#IR z|B3s%xLP;RSpyjiR_6u8UP6Lscab-0$vQfJ%9dSrlY0E^lsKq7qWwE>?psCF3p zu=5cjBQru*LA4IM2;s?UVpSb@T~WCeL0_Y{h8b7K=wHh4>6x2rF#LL5+t31acD;&z zEQ;fb7ZKk}g+Xou2;})egY?-t+9<&bA6X9zjPD0&elib5)z|<6%jOZgB8R7pEor-h zg$*E}*n-v%LTy=KM8!dnEd-p#3#j5DUJT8`0JNdekZ}XhA>Y9>LSSG=jgSa_gkFu{ zq4Z{0ncs167A?g5*c&51yUe&q^5dI-h5t@VuLeG4={3{!@K|YkX_a$2n7>gr(~m<} zAr-!Aa(LnVeeMG09_x$MW<()`-R_rk^u|5ql5Ga@BY0oaV42bC30F-(e*(D4_{hW~Re>1gCKpqyAMy}~Wt)|kW`dxZL$&A;+Yc%<~=;LQB1k4~b0 zS@SQ07#sadpb-qM!^q8~=*OzvA^KMl4c5=Q!4iq`uG70JFvS%JW|(eJScMeQ#R_-K z2sKF!yzH%1Sm#s}_nN>1H$sl7KPbwKR2a#Y%Gxj3#%V~y4tK%N2P~!oBN~+fNo;5% zVof*;Y;9OM>p|n1&A)`z^gGUD9T@lhJeJ(kquuZYmnKOrdB9~YrLuWTW;ftdRc#JU zDKfjUD>u9L1XE3BvH4Uoc9rY>1!`FnQy$3iK)f%HU5&;!89tA8e>mTAt>$0Ng)zmf z={NIOpG9FZ)8Cnf>z&8?qbT+>eUEv&Y4kr0fPBbNq*v>XyQ*nK3&R+mME`Q(RrTIV zM_@r(rrVM_H8U1tS>q!DHEd*J?cJWxhOjZabQNwIvm7A2N!2+Ytde$zl3EudgO6DK z#K3ZHVhcu{d}Y0C6oX7{xZ}xtY>`~4RQM@Hza*Q8RLXt0^!fCMmHQW&*J;+h|8XWr z@sja#g%^uB^P8H1^>xg@;5^MV1M4qXLjQ5}FL(=q$NX>^jO!&h_cdNqPWXdRUNg7{ zhASJNm|%$Ms2^!0sL)18MygtUy;eF>c$!80L@JCT6}bRl%hybPf*YQ zxqGZSzM#4ZnyJuzgg>ZMxcaW~zHl}I`+G3&GtI#IHq#B~G{31CSYNC*vrl{G{nGsF z#bnmX8gZTImbMKZ+MS|*-NUeQ$?e+^DEsxTVK2oD#~I`MleUhypOxFkr(I(avz2)j zs-RAf(rU*kZnJ@E#nqaBWl`gC)#oRQeo-G-^RIl0{#C?+w1rN$Wp1N?Z2;HS{L2r0 z#berZ)+vbS`sOhfB79;t`d6nt^`wJN*H0izp`VRZNaX@No@7~)(LvC%UnZmiu|u+f z+`~=5kl5f&K51zVm5~Qk5pla@xGlp)iHq>3^cy+ED+xqm##c?sW9;|Qzce<55saE^ zl?ruUWIc=XgZY=IbI%$T<`b}b;NS^^iM2m~^CjaOhMIe+e{Vp*s|<>$Heb{)s4qb0 zrjF`3_|&F~iv~iE07l>|$PJQe^mW1k+W@=@{2r>@2A8uIUjQ+O%m+U+Py^zlHW%U` ze5@)kY3{!)rQuZ%g`XS!Yo?jU`ZTbb*+S~?O|xq9OrOoYPw(r5?RtC7>xy_R5*5T_ z)(C9mvGPmvuSc-n>w(%Y;hYxsCduuz6ga>@7tYW782!uSU?m>|Tq=`bX$I5Iu;t+r z#`w^!0w*a}i8!n(MpNYI!J6m0R?MbO4-d^6e*L`sRgIi!84}tMlujz-*ivigg#4Nn z{i2v>xnj||qF>|%JqZqqev|pvlfi^}%hq9}HUHWg6va0B7dk)h+hikPXQ75-mvy^f z=LhQ!b|9GZ^Nv*`FkOW37z`DZ!lRXsyNxKL*7p-5X$A>q0d{`VbxmBSUByR!-CQsF zX?6V?r3BO%#1PaRYS7mFYZXvX=3Pj*V1utJihaQvli1~wjvD8&?y|hkGn2Bd%JVE= z^fu+aDeg@&l-t8LpWAJg+Y|cns7Y&EZ0p!*Jn#%GhvJLD@#`bN!z+Sh{ z=0Wktm>_-C#QvWbLg8#;KLhKtfEA`Q{hjHDG5=C?AMo92lFZ{1F6NLE$gb7=tEmE7 zX`!?{H~%_Fg|I2H)JYp8i5VDE#86=y-~%{CMg)e=O2_QFl1+l`z~gm6)+}3={UgFw z7;dw-ZX?aHRt>BB0bzlpuo{sG4%N!KqHIGO1B`PgSSLtU2q7j;);8CG#-^W=ocWiH z{v~@L_61t=ui65RUAg&JAY|NR#hFy-ok#zQtszkQ>y#>It{AX(A!P~1`Grd96ut8j?WJl$GSx(ystxiddAF=|S6fBDjucNpxg$3E*VaI0NpPWXVNG_10GGa6_yO95 z9bEgc=@4_Q?{Mcsw{3(p!X+%9(q})7g(xNZYv^3)uWVP^s9?LF8HCcvg)aJ67-E*# z*#}{x!W-e+nSWjDbVCvJMWlsa(}SX)iz#<*{#7yXi%m>mfx&7}=2xOMYHlsY?nP-JI_KsODe8xhd9PwB-6k`J0!RN5m^%()pxI zxC@${0o^M%ONca?70V?ZT&j@{6YyP!{Cz7yxx^{lvcM&XNfp$r!0(cC( zz9YG>`wsLVcxNLwl^fJ)Qt{LXm9jws1+Q9Jfd^skt(K66@xbp4FF*9^UITOij}pt8 zf^VIX{G`BYRbiul6`2s6F%6#mWw#A6qWQ{zOVVovmLyCmoA%6mrb!lLB*?PK&pR-v zO)8ewJj?p*SQ~EoURi@J!b4(ur$B&&49k81p`ZrQw?GmgsYx-yP*Z>a2m>QmmJH1^ zVgQ9H<2GSn%S|)Ng$IrmNM-Ab3^)K|2pt6aXXW2tNH4I$$)m+9Ld_Kbt9(r=<5`D_?gFdVXu$F4Ojpcf&E{XT z`PX+b|N8A8C-nQ=0sH_X<<&}sBxf>WULM<_(Bi53Uk59*onPBkOuZu)nioVAB&BK; zl2a}W^A7T=qkrXbRqV~bETI1PAKpLy(f{K=XJB0gHGwttO0+^9NGk%tP^?lL5e(4C zQdb=PYqZiCnfJpm*xN2^eycO{{uOwva^|sSV0|flTG4NIcQym-8<>Cn?|&X>eo5Cs zt8qOGPI#%}kdqi+t@&3J)2JxusE>8T)ql>KD%U~B=wFIJ=H?d)TD0G^CHSx%1N8 z46Ltf{x#DKtgkv0j^gsmH6T1^ zU=6>NjRO|w^)u`|SUx~kq))kG^S>u}>0g~nY;C1(qIzYW+{6_2$^5k&Y%16qRbZyvY@T_ZWKq!)=GqFqmS z=u>k~Yqn5y6VzK+(1h^HBS>UfQ5q=5Wv}9f)Qw(%)JeV#Vtz#|gTC~Tt{c(>C+1Y; zk02G=9_u(3A|B1L(tl5|uNJ2(rT7(^yF0)2<4>!$+57^w;@bDAK!{aa& zV0uEVDF@S%yOj^ZoX9`m?FZAQI9?L=DlNySi0o#VqQS&C+}g}a!r8NQcQ&din5wL~ znOeIukNgH=81D>jKfuTL`0*XQdk1EFb92=^)^8tD`xyA`?d@-_Q`P3_D^2(Zkodvm z&DW`$#=hitA3wf-_tAc-k00UvbiRGU=4pSx-x}u7Vrsm*{};Z8kMIst^9rcEI}AyN~}u2drQB$ZJx(iJ?cH6F%Mnnv0vO zzkB}<%$)Paw>LMp_VuOdh!xQwXH?u`cmtss zRA4yh34j5ldA&CcrPvgBdrRSFxMd+r;U;Yg7MgajVIRWy_QMU_n#Xi2Qm_}ei4%&f zXiU)!+hQapf+o2xms4@tyZtKOug=z};n=AhI;xAK zFnOJHA)fXn2*chRWpX$P&d*iN)JL4$nf-hJ{#Vyu;jixuwA^jIe}CQ!PoFopw;ygT z-P}%OGUlD$914S}_)wv_E$r{i9=M@5$MTz-dOG(|bZp|Z+RY99V9G7fgy61@LFw%U z-2^8$bZqTr-%-PqoaHmV^}MeZSW^t=@kZga@DR`I@1m@1r|0Yp-7uV%o$elWJoaPZ zFjc~Ho$a%VI9yy}Uw@cN&M$d((r|JE!|)ZJ^wj{%bkg`CZiMAE*oUA|sij10_*jW8HN--u(9JZOp!?=GcIPOzZqCxJl!z6 zW1NBY<-khkM?VAWduTUY>S)yStNQLT2Op&^L!xss4r!Hj~x&o+;r7ZLwgZ#?fuys%7*(q zgWgVtO0(Nb@XY;%cT5S-yC$|k;-u(TtLY(`E`U&jGb!}7ntwGO^C|VI6v4j7$^t?> zq9aYB5m+`Rv|ahMt|GxlAqGJa7qEsM8Jb4}vCZTvvV|o)0{BqCLed52i&!k68lqm; znAF1pSfgQM16hbd2rS5!QjZnB0VZaIaalwXO=Der-vdP1&{|!;!nEkuObFPuJc@Lx zu@rKFGKwSc%$?*S1mE9nAqP_sc~w^J;68$f9<~NpuuT`R=wYGKt@#q>O+`5|=tCds zyFqzTo~d{>$aVptXyrPP*QDsDYJ({ASMM`Hs2lTXlPmub{Jg_!L*c=xmu&5}EyMQ2 z(^vQ@S70wISQpK2)HLZXz=Yb}`3k)#~fC(rLUV&*LHxd9NlO%SeS$o5QzbtM-s~Tb66eGycMgJPEbGo78UeEfT=9!p!EbRqerSr;c zM__G@yuK5#rkgCVF~VI)X!J=&h%gcuc|KMr^|GL?sx~t6r8oEseN|Fn9LI7`u_G3gHoq@xuU{%0UX=>rD}?{Tw@dIv z>G7KQS>eMzb=?yu{GWAuIGca{X<(JUl7*plcmJ`5ht;QO9f_vBML#_lqL&E6i|>Yhu~ zBkP%C`I@Hf6k$x8+F>$`fv=F)IJjh*PKh&xI;E2@sN6l#e!O&Yyg%VCDqcoy)zCKA zClwOpLEHo+4Qi2)>51st8tPnc^e^T$20pZ6CLN?gqCJ>2D(lj}TyNU;q!`+izoe zZX5l}{Pl2m7mU%rx(XID1~5WiX10cR_DNM`m2X#BavhLuZBA~!9#5+{(LsVnf%z^^fHJX5Iy}LIDDqI$b)Ko3JjCXkwKSwvAn6q` z?_t1=R491HWGzB6M*j+_#@;z5t>dc%7MDVp9?PZuJQgv?a?!uY2rP`7{(F|L&u=j4o;hUxD`Cw;R06J7gW8~lyG>CmCw%g;Y*`OT}H ze}Sp>lWV?m6ElzXXQ*sv`diZ#^jP8RQS7xoO>6>Bf1e&Fe|s<1`~h*@1J3>83(X~0fxBuo2m*cyG5%4 zg)21W&tRoOTQyx6E}kd8;eIN^IF!)>_+DETYTK$y&^@^lf*_b+uy%Vtt@ujl8^D_)EzntK9c& z*CI3dPZMmCM=Ue$t&RyhzOksA{JTX>r3;!%nkpZd~SHb;spNQK4|$0u%@80?;BYCa%um7 zTrxbOEPGDu_#Ltb);X4#AHvn9zFIE8`bfgEG&_|nD&6$P$w3R1Cqzhkp`YFYmhw-< zcK>zh5mu)2p7!Fp)X%QfGnIB5JxBlHi>7&gm7{20IgQ@Bb50+($D^*A=63=s)t|&y zKkp%ZdCboa^Y(KWTv`*5V94cvM*$G&UJI+3te~M@u{Tx`9NJ*@_2B}-dx{ov^?*HtV zNU2Kq#a!H9RZgFN+sX4MEs^=Ot)`lmv3^T)neUZUPJ2kpG_}O0jh*+@is!&$hQ;S_ z8ZUv>u=dub^BrZUW4}1$B(cOF1!ntwBRT&X`E;1>mqzLIlhVU+W|!N^GDF?(pMUpZ zH|Go3obAsFDd!*Bm((57e04z(0;pTL<&a?_6Xy`exBBgQus{P+c zJO>t%L=Y+or@5pKWFvJ`O3rR7LYv+QMiOll%W1;hr_LQhQ)ANSz+$<>Y0?@^R5?o0 zs$9str8yP3DoNTUqjXJ?$f+TcbH=?gy)is}2CSX?59lseYog;HhrgLBs zOiChHuH3>2sYrW)QO!v2j$?G2P*p>iJ9o-ZLCWU*3~D0Kom6)cl1%2l!nl0_ET&E3 zPQM`9v?)>UFobFPq)pF(C6p;!cl)}-pi=!VVEyfp9x!oA!FpZSBTOu)rJ_As&xldN_GN1_2Uv8!Tb&(_z^pZm zP+9MQ)%5P#asEvd zJIgMCGIhszooHW+&p)_rViRltzDv>yai$*B7*tDUO z%G&p_9>Yq+WQ1D8V-mMHgy$NobnCgk0C8Kl(}C#=?b)P}p(YWD(7D^CyON|oyS>qM z>7?<%a)*gRGY71e6E`PKLe04%aBWrTey<0X18Bw4bA%$#qQsq*-0jUNCAT_>2#<)7 z{W-8Icg|YlPn-KDiKt=C^VcwUF@-yG9$37TW#l&MT8K$6E`&U?D={Y($-{RVCN z?7iUBPdZ=h6&uItKRw(0VJCAJ#{D~mL0{|AeDPc1vF~>JeC=4W^B?#8>;1}yximc; z=EYKHzr~%^_Srrn>3c@|-*TKj+m~zUeAypUL|$9OL8(vAcAREs2Y7k84u|_YfYqO$ zmZ|f8{{0bH>5aQlPa95}m*@1Q9ZSneW+;AVD;vI3b3>ZGaXfG;QY9Bf_e^wcGek0qIBX;3gzgQFGq9v5|2-S{yvQ{JOH|$)lgg8!Gu@9kI0qKhnfDBzY<}s%An*Ml zm%w7g3q1krwz3J`1FMz9JAV(r(s?zRt=(2`h$#=-NLzA4^lb8-fh7PKio8!$FQets zT|cl=DrR6&(aT#c#BDUWqJ+?Az>0(imNcp*Rg?OWq289i2bO*YEKM3KNO=aVNRU0S zQgXwHCCBktDG_N#DSFosn>Cc*#tk9=>r~b`u$s0+N|;E>MQyzYU@@xF30O){K^?Gk zC4Bq;6Bm!d(gUj`Wn(f2EW%rR&{z(C;u2WBahoLiTw`Uw$-Tx>DrM#jSh;T6h){7F z;xldIH`3e+!cLDu_F> z;T1=7@=ZSnmL$ZGY23peSdnME@5f%G+;DQ%dGEZ3g1+p$TbhWo&by6#jG?|tHA}nY z%Dtz~dwTBfeYNx6WxY-NEbTJezwF7Mb>4p~jri@%34Jl9`KFIPRWlamMJ@BX;dRjR+Ne6u1J3JQ${8kq2wSf|3f+zs<>RO)V6mbYnbDrt>0#^@ zl8K=JB(aaZ=#bvFMwc}4z~Tm@7D0f@>1)6uhl@U0&zv;> zS(jtL%A6`=ilQtE8n;E>7)HWiY-=k2sIq!fV>uYdj5aYl0gFhg1JS4nSWczEm{A== z?10r{lwiWaOi@Q2I!3^Tcwhy@>E$#Vae^q+lEtVSSK}B<>6CVBNK75Dl00)?O(9$3 zG{|_Mc~J4uJ#Uu`E3b6NePG3XphYuPR4Y7f^cZ~c1+Zi(=1ZQ)#tHRx;}p}Fm&^f+ zlyRMmb&-?07~>$%b6$_)1d`vWtjbS!-YGlpyt_kV(>h*b`PaqFPrIp-O{qfklutcH z+f7+SI$zxLzsu5Y`X1bq&8@R{UmnNvq*Du5eite2;s^er z<$F==FCJ~r4{CB8{Lh8hMF+e$jrDv8PWq<<>qY0?zqQU?qf;eWV&6^3eYIz+!STH@pTc>vPUnUoL*Z+3zefe9jND7F_8N{9-R&AiM0` z1cBH`)!C|WG)+v)?i0;n`a#vFlBhVUCX+3wX~?h=C^=>VyA~yR4OsiwaiyWDnOlqs zk|ds@L0Q{d>!aEF(8^QQrtZ&wx{p5=SLYRAiKM2D5^c@)z>5F+*S}5WufYVYvdrvL zZ#O+ohvYM?;uA2L_Pqs(I>R)9f?-$r>_JKC4h(sau7Yee-fr^>+uM1E-lVFh(t9sz zFd4dhuH49AJX^LrzS1$94P7+z*rUSR=xL0l3erel+_@h^V>Q5aDoP{`Ws@TfIGPeu zhDIR13M`XPbc@yyMa(oFS|>)5JhLQKv8i$*1C3!ajwuu4;Q zh=S-iKWMD~`0Iapa23g?)J(@*2YL^zzyYiNufGQ4USlyBZ)Tv@-`kvQsjJW;{5AqEJj!oC{~z* z#`>EB)nEVS6xM(J*95FSH6UXs<1`$>Sl|E#97eDxpm92E1PH2zL0&^$d+e~pSDG4< z8dMDr0Ln4MSgUR)n_;V@6UJXM6c1m z{`%9IEZ6CZ#Qq*&9nkbocNPEpyZZ{=Tj9+)u73LKayhTZS9nhUY7V1FU!i}^2GTk3 z)!%;l+fRS}X{yUQostsT(vKDcxYBBcT99T+fqhlQf|=zu%ty${a*e-_#yZfyjM5pO#su)m_Y9D?^bKF(oEq<+4p;yE&-q#C!?2A; za3%vtlJ47UEJ$|j9Mj1EVAVqe-~*8;}iYMG?8Hk z`WMHDze@i)kFfT??jkyHP2x0GItIN177Ip|etTdER+lVhvEFMe2dSTbsvWc@U{MxK zE+yGxypaCB%X=O_N;`k3Mjh#3uCe`u9qWJp`Okm89z^g@=)5b&1lxDs;YH`2VVd<_ z*I~K1Qm*FV_=V<%{@*mGf5o>#T;2+QEIZcsFp$2Wf2Geg)^eTRIk5gjm(FtP7hru8 zjkOS@J{0|{Pyco$^e^l$BwcjCyVh9gKY#wueNwUXEXw;S^!J}e|1$hS%w`}5(t4UsB(Aw!%4Lv|=+?I!+M@II-OtAKZ2selDp9m3l3unz zQ~&BND6$qaiXBHvK4otB=g)uNt1P2*oXgr`UQ}bOn^4wN6mc0BG<{`QTV2yNZpA4S zw-$%uP~6=;XpmCe-MzSLvEnTr+zIZbcyM=jXs|c;bA8|6$Vskq_MTa@)|x$*S#rCE zfOUnBDF8Yx|0=S`Qg6xkF0h4b6pjN9s{Uf zDC9Z#GewOSoluIpPeBk~yiN3Xgg^wq(nioL$?HW`J?4;1oIn{e4HvG%mag&;oUsM@ zk1H~`*hB#`h4L^0kSqZKL86~&-4!LoQZP+J*c+<102PW*h_eHXl5tLhDP_GUTy!Lr zgg6b_Bg}st7h<6zJbS?B)Kskl%4oBpWT*-wb%Td3#w(SFmj2WBJN&>ph3J#P^}t9jtLQy8<^) zBO$G|@nXq6{WutvjbF2M(w`EoOZ>__66wvkDjHel8Tb*eF+e13 zX@~yC7{5tvKkqb{R4&EFIdc-h2zq+j=-7BYxPS$OK&*E!E4Q^T;$SPM2ugrY=Lgv^ zB^QSq_l!-R9hOMViL7Te-)qLhS5j_YSir?8mPe1_2MC^_15(HOax*zc zljd~9D?<5Tv9ih`E7@}8{14WrFGaSw6Ih~-L^8s%*UboQ5tm;x!?Hu$+)?mDn>hh!C2PEeQ_8bvN1;2_Guc{NiZbbKHDT%9s7$l2LL4Ow<|Z^nNzE z8S%)3BJq17$q&*?#MV(708R7vA*2{ybMAsiAN|NxfS~nydWVOhLI=wOSD6A$}tmF$6c5zz? zx4DnudY(&4rG5F6qhBgim^@l#147v?d>|Y`a2wSvg{Wp5w13ayHycOImx>pHUoTA+ zQ12sn?^tL+W6z-*IBxK-8gkx2E`VCQhbTW$)c8$7_=V+;lqEXqYvYeYVD+z{Lb&8{ zwJfsBzogLD?4hDM^*Y=-QH07(N*!b|xXN|J*g19URRsIqgS#=g)&>o&0y=fHsukuj zZUfJANAsAPaFc0Qx;-?2CKRd4<6${Z3g9Rp$h&mQSj^X~`A!-2QmEYFNR$G_!jywG zEBmw7itoDK$r}R#fF)0P9v;M4+$p5wRF-CLIt)7O3G`6xmuU zC>3T|X8}Xn?=$G?zs?;Dq{cAuI>@UM>f!5E@ZPW-X0#zAmkPCTr8idVwwF|Yix)#t zl&N-SD&MV1H;dZ4UcbEWzfv+5+=wi_u~kpf^N-NFb)rHSj<;X_x420p#L%4c&Db&q z|9s$2X`YkfOORmoy#6iWTOP33EwT4#mU3ln<|w`i|79kSuPNnU-e)wZ7uyA;{`A8E zA(UnGPpN-E?1~7rHmskx7m8= zLO>Oh#Y@8#jLiT4DUY37ZpFoCAI}FFKzNYydx=QR(&#Ji_MyqTj{<(L2TQmDBi;Q9 zoSk`)5B4INQ-s#9liXL{yB=tR>SJ{P<@^Q#xF^$U?T!HPzKYY2cFt!17r)ePba!aBKvDq8!S`LnLWZFw6YlwYRsP z2_i5ZT`d$`w|Wzt1`GFXkD?p5zX=Vjxx>HA`@y3A@x}Xh$tu&wNHG(VwuLRW*N6#C zYYS^yNo#~%D#Y51FEv_ZMU@>h=?FaQxK19eKCWya25(C(43N*J?PgcCU+1p%kBtt| zXC$Y;D&NM;VjKm2I{$INWP9mttor*pC`gz5n;WVZUjEGb65BN3QNM2_Xd~wi8^B0p zoNq^eO@1@ou_v1nNMPC|Gnp!$`Mk?Qu3)cxTGkNKxL9TfT}fD95W4VFZ3Am%4G4y( zgA_1r5FX&Gnca~k;?XFK`3p+%TWrKh+=DQY| zMuqi$QlGvG{Fb*Hkqg+7GFxEpCy9#q+~o{ z`_Cgc>{pP>#Mo~=`HgEr%F!>4(?N>r#gHQ)7CK;Z%ni6@cw1X>(^+*X{nnRtdIT&> z+gqLm&y3jAb3-!+cy2#CnjnTd>&XH#)3x|GJ*~fAQg74CAx)*Jx#VAD6OeZ?DJIp*EfUR$bk392LY@bwKkvS{xpu4w!7Bpt@>E~ z#KyRWUi?c%fwjr!{iQPa=0rWNDwazbN}ez>+Jq2G*cL^`mw*b@3z+z?jVQ}7`cYjn zQdJCI$&^v;gQ&JTd3Ua?zmL#@{eUgXgCywTN8iq_H0!UX)Aa*uPdQA&KO*M@l|8pO zj4jT@l>}Zq*tOW zBsU6zj1fTwI$T5yiutS;^pgs?Io?h_IH>Iydwj}Xh(n|_?mZIpTUU6Yy!Mn`N>*JF zm)OTxr{DAO!}%yA+iC`lS0Cja2==|v`Vp~(#=Nq>o3(xpljz3-pj_eIe#8V#3t?|b zwSW8~-o$54J-xrq-f-d~@}t%K_bOJh>VW_;4UQ=$RHIBL*++EwlM7t(0B10LPeFNH z2<>HbtM9%!8CG$Kg!*wakL#2U#Z=Mtub2Cd3m}*9f;M>js zeY>&wlcb16efP1eip&W67ZTIueLKn;f(*D3zt#5+&s8!z6@19UT}nP(&R|W^P18?M zZ&9_7=&fk3N;tj?kRR7C>R32p$mcC*MGl2`jv zEwS#W>1kqf_&WX>t3kBt9)W#n<>!K^U{h93$41PeP#MnXOXIE-P@7@>fu9eatSZ*o zYmVJnr`lHQc+0Rw(?C)=$JX#iA^|4ZZNulw0smLqY~|UPDuF8LiHu!0Q_;6<0rsSv z7nEn$ZwcEi%TC*%^qpo^Lsx1-$F=p9brOVVK$2^Yf3 zH359HU3x$o@&RDm1Bj8$FBJ>^s^`HMwZdGZJh;dOBvj}zvgX!6la@%1+?%;NNIn48h<8wVt$Fu3!OLqsdSJy4W3M2QX1rQ z1D8Qs`7?d)zd-`TB6rhwVrW#nlijBZOxX$hkq6YRrd;g zGi@$hg?AJmnKQ%kb&^TJdViEAJ!vql<_N~6vhA##^;k93F;CQS1|i}mayiG=4KzvZ zn!Q`8*nrB8(4zn@;?;;GsWN6RJY$dG7r9kTYWm zZJx90Ayp7p&F~_!ZxA9BsaSE|IRY+tJ99*vp|M1$VDW`K5mO=fw z{*lWE{icfc&oDy9-`9C{wKrRV$=h00*)H+vnUg!hdLwR%!$(#Wo7Ev?pLsoNzgU_@ zH>h6T&qLrXcKDr3O+k?yG&2np(FcEme)L(#83#vvM*Um$Z0KD^hJkl&vt1YL@S#55 zIXnG!f_)1p-sYuxKc6#OB^p5^v($BAC~O>V>63B;Yq3rG@$Y);cFkpFL;k-2kJ6qQ zizOrnEu@1b@b$Cw+l&r8vpd~dxcaK^xgI>6lwf!g&gCJhkTq@Ldaom#Pyr9f52^lU z@KpH4PRL!o#X?1aEyfJ9Fdj9MnfSXRW=SR*XK?f$^`3gB6a`jOhnj#S$#;yti8C8w zG|Y1x9bK${Fz|9*ji#~70CVhd#b^ZCpFLIH5mJtkyLx}cl(!n@jyQl7eT6;kD`!{oR@6w6}#nx zJm2G4uI}>wb8*5Py`Kw4i$I9u@NvG?<5hgiwPXfd!#hwn(F=5iB<4^aPArFL}J(H`=!{RC*n;~{SILlm_uAkTsfx=&A zz?jrxMwE6&OS9mz4?yDgaZeAMA}=ht*ARy8)_BTEDR$GYAiZzANQuM_W9DHVSyEZU z!{fl*;2yqIaJpX&GH!0@ormk1X_ok+_@enpHTfo{sIi+tz&HOkI)>Dj-YNr20)jsQ zb$-}A*kl)V?aXFuaabwMA9-lw#R4X%nM7WcjJaP}m`*emmO*aN4+6h}=C|@+dBceh zM-{toZfnhgT@Vuy-O+_bz0dXhOM-Zp)W`y=d%hF(H4} zDD3-=14mLy;6_g50JUZS#Aa)*J2>2qC83}w?4ca>AB!Q`*TXytyPrS(kxiv>@sdLG z|6mf2=NWUzKMnp`BJeF4JWV_E?`bFswsSB{IOxXfzd22T$E-e6SUBWR9s)Omw~YlO zKqYBHzqB=TzKv|V7mTW23uRki{{uKlX+B__2Zzs=JNGR2Vc6OkxMvDWQ*q8z`p3e* zzvKzWDV%ju$bWRBA3GBck=Yx?3XKS^8ovV>^pobfhGG3( zR?Zlk1;_PPxu_|q?;0Edt1Eukq_q|V{Zmi=aLXRUd-jXC#I0R2Zb$&dX7?vY6Bbg< zJNtJftFz$c+-i9+?flpwsVQq;bs9_YVN5l>W~jDn{jVUjQe$W+v!0o>#Wlm8lTqfu=-V#-Q>&9)B(I72{LKx|KY<-$`mdr8N6^`%qB1Z6cK ztt9t>7PUpJCDZfod`@70AVcoNA3w^CYu(3R(_qKf_X(LN27iV6Fu;BLGd5Z;W?Dd1 zvlAlIfHe+Te{_q+#ky{Z%_bN@0(XJ~XGbH?c3VrQy-O=5dk|0*WQ+zp1nN<{NrM>! z21|<>P!`h>?23XYivC>cxk~ORK_OO>ypsd$enw|~b>30u*kVay7ls&?`QjQeRj#wq zuXJ>>=$@i8wDb_AH(D191c`mli`<;Ys0!Go^J~vkD{N3BXhHEuqGPx=J%*PgW84>Z z%_Ag8+NM~KXf5wB&eQL0&OhNs#6Mp%C-GDk*&N`@Ey8Tm+U>ViY2ZelR?QbWCF+p~ z`(8TA4gCOZbk$RNOZhkAKH=dH+Zy}%ujvPVK(o%{iiFdYk@ zvw(<|W$qqbtX==2pfhSftS2v*DKD(d1>7?}-_9{cUB z`P#L#_Tj;qhq}COh0u-5Tm2@v?~?`G5r+1r6#b1Rp<$^_f0YUAWJ5R-sN@D+N52y0 z9s&ikhI>j*;I}bW>DZr>Qr%m^%!8Y#PJ7S>oe^vHz8x}NJ@>dE{wrozgX^FPOG*?f z33F{P&u<0NWPSP+fIiw|enAtrhbx8PsxB(9Xpt4J82(3YSf}C_=ddqx>TS`i?}l#M z^1SEz!Ru4b=RE3FC8qmy8ev6>z~nh6Rv>uoi{7#GQ5TroEi54Z^-g%{ix}SHDa{gu z^8k_yv2(0{y1_Kg0nu_y+wQ0&TPtdn-8an-jrZCK`!RmXiAysedalKhQQ$W6 z##OkS@X=!J@4ZKvA-X0)lcS|gQGU-5ChZH&Z2bn+>$laNm&}*B%{c__O21WDK|g%w zB}!)y?XegxVZcejI+g4}^2EWtp!SA6gCWV83v-_jQ;~hM;B$T^Bx}mL)hLfSzMORw z(28}PSxc`tgcNH?XpFCK$ZJ0By8_OXQwDq$OvNecLeyG*GBorPHWqk^eb1^fry`d8 zGG3mGOFLMtn*6Kz2&Uk8tGy{I=&!q!lv{PzEq|w7(?n-xLL#P)%6O2cvend6A{ zRVOkznBn11p4XA^oY#mMmZ2C@5u85zR?qY-cue-!kUQJOiu`0DZCmf_@)5A8Y<yoB)!ux?Tjkmz7YI)L!WHn9~d%k0D^&NJK_*oc~_o$im5*^(QWtxSA zrg@>U-XrUu{&OvdMLQBu{=uX`Duncm_CleX3S{3hlE@0dTfNt$A9o!3{K8zXI55&?OzdqCM# z$-$s->}j63`r1||YwwX77vZNj&ii$VXbd5ZP!M%zn7oCK?OAdOYZk~ytYK})U7 zMA5Z%LtJ5$x<3yc2AgX}48DRA??Vf(Gtc`DwD=yD$yXf$qAcA7h748CfA3!0U5~PO zg$;zKMJpv)%Wm(p#i5BhnWkrC~=7Y1MH z)x)fn>W`(ly9RDYS&UOU1xK6;TB|4y!kNXj&a_psV}J*w+!;ba zQ%i+V-qy&2{8yQhf#n7;OY~H%j-no;?$mFLfcsiv%3k3%4?8$XrQ>KpL$tLrDl<%~ z$i?|oayPZ-<=(L~r|>&mA}nDz3i8k8C~0bpEmW9#^=UIg@?RBRv@@y>G-sr)lj=J) zP3!73WHgCxO?~*0aWK(k&&TG5`%o(Iia4vIwZ4d95AadA~6NrHv(2`}+t`kJIZ zQ8NakbdU5fu~OF=%1skQs4y1d6~tY=9AeW5lcGQ(KgM*FbMA4}K`*Hw z*>z<9xNu!&A_$y+@@C1E``1M=T}$UTJ*N`)bhAgjuPtV`7G(CE27Zj0h|grn&OED) zX`6eA?Id&SCuxprYmL(D9Wr1vgJ82NvzM-rVN6=K#lWJYJfIQgt9tihmrQl90jSfO zXexgk`d^M$BRy;xd1&s8{qZ_a6)DokX}uWrXWn3aDJ#u#-1Un7W&DL9c$mt9Oz-m% z5Fyd53Ksszi_wCIYFhOL;f5j!aA9Eb2Gxg1^_%KqMBZW-v1o-Teap7^+i}#`h&y(P zgrviO7EMjgYw5cb(4`9O+p{p%a7plc=QY!kX}p2&b-_}Px*rq*3Na0KLG1u#l1r?K zqFfgi;8@H=TwWdqz=n#QYOIzTIry>`Z19?=_F*G(cnI%@&Dn)0?r_MG#UPSK#d2u# z4$B4I&w%>Z9^sScCvIyKVn=4dT+(52?rZb2;M}n>A5IhL+nw53a8l{wJzq3^W`ZPY zg?UjBvgniEzd7o&)9N9v0d=~tZL)MJxb;$k)_7d1@Uuy|<1kz*tISDkhD=p})M7%g z;l<2S&zRi5u;HcB;u9O^2*u({L{d4!K7;)uU}wCy&e*7)b=(7u3I9v%f@WN!faM!k z{_7z75s*}hf{my43YtzRcBU%-L$;BLd74f?9CUgWa4)`*u z<~J!VR9r`rP=bv63OByBLed!1?$@JaI#J59^d||h+Y>i55G@R)nQq-jGOK=~M%2XX zc_d2^1~bgcCbXaS?anMTni)d6B;N29nYLneO_Wd8$#uBq(>E*dY}um~vjdtG(yaGs z&sY70*jAx?Fm@jBPj<`TxeUjS>9a2FRfEyv{r%iIy+$FS-n+=V)WY!%tNU89)Ym%< znkoY{vx~mf%h1=o0KqfKH-q3N!1{+aQedIVhkwa?q&yh`_iMQ}yIduET(>sUfQ|51 zOCs~Fhal8vq?cH8W>^GGIg7`B`lP~O|3lyj;s%90r%tXv+1&d#+Gj)OltjB4#3-1g z(jw`wc|dL*z0Yet7(!ie$A_auS;R1kOyD;xaiFJ>`-Rw?tO@C1R7uazd{Uf)MPd5& zSupgpP?4XscwKf4))a@pHd}Gs5@)5vpe{c_T!v3(GfSCM1Z+!@V<}2r5jrv!r0yzz z#OA?h)Nc2vX32nO=~?p%2smL-2n-R5uE ziBg*xvp$cxK{Ex4gOY_7r9BV3_Cyv$bxbyVp?bJI&FzH*FLqL<981SUsWUOFF@*06 zVeB`hX=&T9pwX|Hqr>o&xvtBS6dKGoj7d1Yacg<4@LCm`k)BCrg3cFD=hn3E+2$iv zzfQr*9tu6{_B5U^v*4__)%X$oyyR2G5X+(hGZ{j?J>-{I;3Eda51I*~sOd)hYFQ@y zGM@7Br8150_O|x7G7Ukc>iH4SUhQq!8%R?l6`aepbp&LIVu|rOH*{RB)tWrxL8}gjC*U!A|o<=>A0<368BYrw(5VLN2p>)SV*C=8-2aY%bjx8 z|Bry_#~#}FXa>ljQkF%Xqu`en-aH>Fg97l=X;HOCjiZ`Pn|Tg8GY5&o&hrg3F&YjF<4 zZK`9jciE9rhj?tNW3U42(D`|>ClqCwN&9PR=}f`rUn|vr+A+`-YO?eg5k4cP=fbl% zT3m;|@``^lc$m9c)ee0+1*(n;W3T1DjDOkF`>4`|Jr-xeeOItjO~241GN5%|`;6_6 z(C!(jzKK%sJ9ez2RIV<;^wLPz#4j@;%-Vy$TpHme>~XQjmWc^wr)-=8NZL94Za#5SFtQ^oHVrlpMIQAubgr=Wtmjbr&AP3dU5Pd@qoA)g9eE1C}LHvZ?ec8C$6IL&p{;|uVK1>hkRuVjx)4!bTN!R zlG-79ntIK>q1x#BEgW>`!+*=}sruF@mUq49cmHnhByXvX`Ci$-*qZ&*|5odNRs^q! z*CvjVK#?Ys;MNQx+5y8%A zCCIm;sa?3v=kZ7xn1KOJu7lg!dgYEtN-96)>bvBP3lUhzu-Pz7dQ~06XIu;q$0zva z@LgD5PokOBsl_M4;l77ntze}iTphGproXj(%;z=^VO7T|IO+)!0O= z^?3!3C2Pc4EM{cD(jv?UB7?K0Q^M=Cm)6=0lzff4-Im%x06Rk=80G zHDk;KQYJk7BtL-;$ba2azvFt!a{zAf`ll$6qR5?+ z-2+ggnx#yCj>K3I!t6F&B|IsjKG+;HKoNweO~QvgT<=&kwH7XV z_rc{0hMPemzZv%3AtfSqvih)KiN<4Z*Yq!z2hnwmrNYiFmQRBw#B8royWkcVe+wy# zI)K=ELz`JNUjy6;*}(9OPHAHOz%VS4Pl1WrzCkmM4}q~m28TeZflUy2?`KPAVoTqP zxY+A;^`(wqi-_JgXU?K4-kmGE+uB*8$puk?gwvwWY6}teMM0&g%A=$2_VYjMslKJS z7!uX{r@lsfLD-Kh5NL)I>JzP>;u&hlKLQ3e=Nth~c$4JxrU>H(h@6F|!1<;_%1_R| z+bF1%0P@LP4pg1i71T=!C!5zEwY}fSFj+v5_Q#K+#CsG4rzfJE%Cey8EIm$wdSTeX zI-iI~X`UdUGM1k&EL|P2^1P5;xvw8_4)K&83h7^%b^6ZqlsO_IVN(Jc%DU1+yec=W?BicQ0S=aPRXj3M!13Z(^FKu)83U zxQ=^`pubfdV`|bNPHJxrGuMH1T`nElqVaqDmPCc95Pw&Nbo?sjODBTm2x=l1M5dN#f@Ht2YF1 zfkGUlbqL1-qnz3s>4`1b$}j4UcfJqqh9t-=zCXtc6q@x-h)KN_Z;APK*9Qujw&@d* z_*#hj#FuI9TS@|~ec+Ixoj{bqVfXh?ud4kvG_B@?8yLX)A+KTk(yU~a+sWp`B&%1A z2{wtJx3W4J`L3*PGQ$-QDT5)~Fh?QPMgw3jj+r zZ#iD!9REEMb)sqa%uGPc=;DGxLXc42p`X4i)|vbKYonxlm-I^uk7sI?#J^@+LBm%@!#XnfXG$jpfTgWfts9=AE zw~9%Vu*zFnH^}Z(J%~M(R9J}p7mbPW+t?GAEW1%Om0=a*8Vg~}Cl<1TBk8xI5d-D& z2aoBKrp}foTl49K%v*NuS+L@%;oRNbQKczwH3XF!6@*MWCylXG{EqXDsAsDE z01JroNUThyg2xF78X-45k1l-icF~pLnd!7OlmF*P%&iD3a%m7Ofk*0vv%54bL~KWJDMsC)^siH6MwwP$$HpHb@9+6VS_$8m zjirb~#buCr*525G3$bkZaC6ZEGgSQ^@n(-xrRvqbcdh8k!n!a0(v12`5f8k&a1wuD zXm|(|i-SeTi8{EG2ZTz$*HWj>wm8bRDU1)MFk)P$M(_zj3tN$6x9m>v4lsJs&s)pC z$=4z8A+~_}S*al?KuPN+H1}O{YGRxvK@|NCg2--m2aJ_W0u|u72t~x~!m7eRBvWj8 zY{<&~rXqk+0?rI!5O$AM`;oVWD#={eQ~`rxg#VFi~WIEbi|iEYuDN zd9QjyA-?bW5yQ#6$%S9uwPHy@0kIxy+bGxYks%Sdt%Rcme{jvPKttY)H%V1pW>kX( z$EaLAc~2~;{hq0Y_97*T7HYrT@}WbKQYsx4B>KB+u$ z57BZ8c0cuZOxY64SR4>GYO@=zDps&b<_q*A*uAk+n~=|;!aKt~B|7@mlG+Ui0X+uD z@}g9skqy{AldwScQ4I~9SOPD?maysS?N;8eAP3<$oG0Q)3i}*UXKphp#?Hj#0Y*2q zH`+QA!XwYqi{TYqXP$Z-<_<}~bd&9MMuMtb^*{`&hg3iYJF2eCrej4Ux=oDqK+R-K zZjAcW*3NcJ(_a~4AI>0{AkQb)=Fg&#I;tQ_NFVhS_YUa)?yBKN@7(E=*7%{-u)m3E zw*8F{=X%8|J11|=wTsDyN_g0H>qZ(Tjv@KOPqzS)F+mTfyiTdiNvnpSrJ&ToyCEnM zuohU=G15_IVdMGD_R`Xqu46!_!>9ro07R<#OK(%3S$}D=p6SnSTDO;P!n4p4_`YnK z`-i>Ltt1gOtSP>$r=DH#BJgznX0pSiX8wUc32HMu8Ku6jZlm4;f$EN=u}q`~+_R@p zX~^tPy#H(ADm3r;?jTO8_-EaUy6RHqJ#r<|74gs!M>oKaXf~G2QIYT_yXAC8v8Yoj zDTjx%C%^>OS-~8p5h~bw2&;|as}5Xc-^SWpE|-Ug%|nl?W6s}e#_&ijLT8kIu2u0b zqJ<-c5-CN{$<26b95J_48r5PNxgp?sU5JXc*A=dmh2$eWF7pdOO zXn&gi6O#w$=&~===9du!*b!=6w7r<2F}lBTCP+}(F3*v+)XROTpN z1(4^#E+x%(wgJ&aAohd%$_FN2d>l;C#95I!;*M%ezj?L!NZw?w)a!aTepaSpBg?rB z%k#3yA|mee`ey@u!TeX9p*UEr36qF3NdS8xuj#vsxB0cl7{xZTg1EQwbv8Qz5g*xT zKz+1YXz2hM*Lgn_K+ZOX?B!DSBZ2!#9b)OKT}ap@k!>V3Y89clw1@>B-y@n@VVKe3 zkpS$f!5&_vYk}%UI-xO2$yGX%zhB4+VFgnZV|3asaoC&)@;i%|+{Ay%b#m|-h}WWe z)Epje(H*KcNC+>UDN_Aam=#dqLDK!kx>Sm>)9Yx)g+;w7^S5@8^uP!H z8UAMR=(nb%dV^=sx3s{Sj3U?kEmYT)~0Smuod=Z?GP)c|3pWnx2iim#guV?#M6E>z=oQx8-_}m5P?SK&I^2Cz&0&SU zGmO$9J&`^Sxl?+M?bm))0$Ep`;5q_|Ix;N!8tBvaq~Eqt8jwPYxb&3X@R9fGYL?&u zckFMEcY4=$|9#dQ-*vs&4<)p+t%AdKV*&aXhWG2DUv-YJ;i`bIS2(qGf%?IB*cRq`+%0Y&{020N`-K9$8oSH5a^Hn<|X2&3c{hVzbF!H#%HYV}ms`$NUGypFxRz zFvw@~$(TJTSxcX~74F2&W1R)H8JJlASXnzHE_kOjc?29r%SYG!1M}&j>uNGH-8n^g zBM=#XKJt*K?UVxL9ReMAr@{E|QJ#>B_hE>mI?hJ2G-H@b1Tsf&$u!7C;hHYW`+$Wuz=~W$iG_p=)`6bs>I~WyooxUbZfE# zAERDicZueO#UM)?#%dP^vAL=w_UT3bc|I}9IBA4C*(eU;Yz|^+1b-3!M-!O(9MGl? zF?GEB{uBH5NA2a~kf^!e;4S;$kT8iHEOWix)dmf`UH3pOQ8FMFqT$n=cON9|Ouv-I ze3$5>iAYIz;{uT`lfoLxa6ua@{q~ugzG88@5ZqJHa@ycWSSMdn_;5?a?OpsW8I$v zA}V4@q3w|JA>O`Uz)^Q92n_dFRNBrnG?VvgG8)G4x+JE5uKOD)9ie{V|48bC3ioUh z{I~DZxVci_Fi8*v1@%VxF((tGX+<9s3!B)1a-u@@IGH&Dq!B{c8Lc(=2Z4Fz)-GjH6lrXQ7vZd5uYJ2B%1Nc#R7m4=u zLyFxD02OG)^6?L6>~oiH@?=0NnF~yyg^8d5$p>X?RM=dQpciPZHwsbCwzR0^C$#%i z=qAhv$(}ab54bpGiztHE%&@D~wqO1j>moN#okBq;-xGJmM=teC8RktP__Ygf`i|wd zP)b3^E)Di2lF5eQuR7bs^FEZ%91}fqUJHes}l#yx(4Luw0EMM{660+OaCH`rq zMHV%AXM|n~jp@JpAtZ!GUBO(YH2q~YMTgmk$DV4>KtgjA@%xP27jc^pVs12l6QkoRxD z>t%^DB%Pwb>=2Y?@)(-4yhtNT7cd>nkY9x;0q=l?N;VEBLlTWWR&$MiTeaNa8kr_% zAZ#_^rgWr}Z#QxCgCQ}LpQ}zglu3t&Z)ROYIHwwnfCiYY%7|jmB zP7^r0?qVcojoj@3(Ic6pL;{B9)>$fqP@8 zv+vuvLEj$EK7akqHsx4lz!+H#?n{0u1=Yt5$LEIdb~r%*bQ!|<`d@AM997WR+7bA9 zNw*<~R;GW>4fAR>tjJnc0fF}EWJIKu+2pOjHk~JhuR3?IDP;lNH6>qDe}%dHxWLY> zJz6IJ?<*@geRgs*ckf^CPhe*LAgEu-#or89Euiz-dk~-h&3$n5!6x#i%h7<{9~QLyaH; zO%_g5_ra;2|mcu`DGB)|kYCtYteYhK^zg;)MDw>-Y zDEw+xrEXDoh0c+%RI<61*;QcQbz0QnuZ(8%_|>#=mt@#i@@6f**u6FsXGA)V)ofw@ z*ot;w|19*g!Q1UD^w-`8&+(q)LW3Uj1|!z)xF+iF40V8>jC_BhX_t<>%yIVHRme%h z@bKM>YZQ2mmQk@DFO)s-`|#`eRb98?hFDGU)7{R_4*SWShzJhU>%m&wxh0SX+_$p> zO@Q-yd$bPr0KZ17E})pdX9j0syf@?@kdZZ~d#8Z!PqX+6mAAwR4CbI~OZ;oDg1|Oq zjOKME6J=Xb%%(6(^bR5E{r>v)5mpRxFQR}H346;e8aSHJ``BDs1cC1piDuaBWODxl5rUV7n2&dxlRgGL&e#cgk zuR$VlsGMX7Jdq7kSkm3^x&;(+6lU+q>QT@`^Rcc>Y9S2vi|DxnjZ?ga3is#1DgKu$e${Y~lYNL%1(eKIH2265XcKq-T zN)c~vSil9=B!^##aVu6=(0BNtH1vXu%X%b7W2wqSw0ScD>)xI+y0jf-sY}Dp(2*H@ zy}%b>m@t)AAmZBL%=uIq$Mb32b;c>SIzqM^_vkEChS%Dde0}P!_{#Z4Wh-U9cu&)x z#1Oxn|12XDevKrp{o6ZvghwvzX(%3*+?jKW{!dbh8LQT6*AJ0jWD~0{&dZ^Y#OHGs zy21~qzn<taDq`^ZKe;X`H)PM%@UAzSa>h4b25z;G|hPg{%khsI{I zXpe-PzR$efLeU-xh)(+Z+FB)kn5wsrRz2h9f+TQ_0A)z*)*J20XBC!KqicI*erZ8D zDsJl9c&bS?CR8=m&jN)Loi%g**fdKsc`^LMt}ggHxerCcmVpAFa+!Cx;T;0W4QYB* zaBz#Ai0gsI-B0K>-L~XOOCR$eZbYjeL#c}Uo_yeQ`4Gjr%B-}N1-3j!?n>aFzZCZ+ z@-6{aP2Td@cRARUUDm(1{&c)Cx7+sO94e^PSQ+FSdg<`~AlB(e2xTf6KKlD)G)c3g z^Tt2Xw2BQHN}eiPo{F{jlH6bL6l?VCO6eDU)+s&Wwd05a;5l7^&K=nE6Xs#waPySB zZnK{Zd)&4L7WI+=1NF7t(qUsuntfPFyRA#rWqF=Q?6`OLrQWVyU#}of!#{U9EdJHX zh(MMwtDI~x&;dDSwu!PsfevN6LkYXJCmzD8vb4H4zWUstSEBDl1ml75!u* zrj1x&uL^^Jo?xb||;CRUfX4+wUVl#O?ImhVbVO?_y zBP<}hmFqAD`gcE3vA5rH^4}Y<#U_b@@E;R}bR^9~=4E+c#IJrJu=O^Wzk6Liguh)O z)w+ShO?&@RI4ii+p+#lwlgG+ulHfr@z4O%5EK?B!dTbr4L1^To?F1P*Ef5TA-iPjR05@_2*zz>T* zf!sJ(aPdR)F7X#C;M0Xn;Kzlh0Q^Mm7%Ra`e2apChZDZZXr-#u@&#w|?|lh&xlNZO z>{9&$_01u=r9&m$=2$E{mcrs0;o)GStiAQQX7at(A}RyHSk;ao^oC%103CRK4eY+) znWx&W7**AmAH28hSfC}TQ`mtAnBk0t3M6F`WvF$H(9$P2WL12h!X?UK3>P;WZq58y zjD!(^8lofUVA#sGSWxZmM5j_?8mVv26`^;zTxOQ+VcMO}2U?Cb*Zjuk4)QXnEm*`R z$H>tR!k{FVm=h}3X8%!pUt!o5xExq{e)tJ zyx|UQvW#+1pxnYg1}EBhQPuiYx=LmK85_@Tb^8%_J)DBKwwtZo}*Ss$aa=A zErWYDTcz-*$Pb^;6*$2V^+A#01tiwrD+PBwONj6%;)g0J17AhpDuacCKc=A2 z>@7%2PK)49PhugAeL_v_s6}yLlHcz^%!rGw3PJdat6l4-7%D@;Tc}p+?zdTF8u2@y zo4yS`qZvUmU8Ukf5jFK5`DsDWJ_SW&GKO8I`3;uZ>-U~lcIASj_x zX6Ne;)u#^G8ip}edW@2p{%flW(17%L{a|-1_a}k6|KPq)>+oPY$;M+2C^s)X20ZHM zMlw(KFXNmj7Vfr;|o%xV;;ZUZTWvJSb;_oa}} zl?J+!ciEHD=MB)&+8@BCK#Kk3NoEp=**^DAE!}Ksyrv6C%3yufk5KJ-(ecvX$QC~k ze(|(Oa3zUR5s4gQt|$mxL}HV%bd^fte(;AfuYpqZ5`yPcF)mW1`H3l zkc&82Q!6@dBpc&*h`Q#izj*7w48PU4SKTIh+sA9-@c~_rI250Bre&?NE_-P*NkJ$?0gO>Z)aqfRNnc?`K)1S$6{b%tn zQeG{?{+mm(_gCpY6#Ti!H>jgyj!}*q9uuB6gUQTPV>RqK-l2P&Gw(9sJaCn5@t~c6 zl?3M=gyciE0-qI81e? zk04eIi@JHOoM-N?6vAody_=|c8vwboOmt1>9uy!3u2lK3_g4iRQ`lJ;rqe9XIKz_| zoIxKA1`mknm?{&}G^4CN-wYc~f!S;7!~i^>lq4TSH-@fAgT>HQXl0omhUuFY6YT2} zHN)FA>1bJ0%+^^^olQEa-KMsc+SAN?vzPlqJ{QsJGdLAOU@*WXJnx}#uvtMAn)BTe zRt_{pEIOAAOYwCo>+xF$+d&dNm!Ap z;stxcr`haHI{VTKnA4DO00j@Y?g?t>?+RG$;MHkYD|A-zvEXT15U3s=z)is@{S^wOjd^jH$SqPS^7=($Htzj}pZ5;@O^ z54lZ>se!`5EQk~}l+Dx5!Bx@k9M}O+`}$&uW1(8F+z-Igp0*PWVeEB!-)YC_$H4Q9 zLD1L=lcFTwJ>UUCwW^#%Bp$3R5qVhG6sNRauvn?iGcB~^!L!-@O9mcT377~T>^k%g z;E}K^YVh&kgnI|P;;AZP%M&^YNEFYi4y~?Zuu|vHhPxniJ-12Q!a3d!t}3O*uP(z- zjZV7NcuGeTc$2`Ys;uJV==i~;qsPvBR|Ez5z|I661E(m+7lmEe=90pPUr)Zcz6^q3 zN0EcU*@F*)rfC9`c+569JDc(f3b7}so0O8k6^td>rkEfY(wKnYtpJm`2^mTmiZ3Ry z?4V3ch;sZ<0M`ko#8Y`g*+cw`(BYTc>1Mr+O*R+Di=Q^%tE~{PHURtfJ-P53qg|}O z@mDthn^yENz4q&J@b^>B^H_ftSU!K}Okh}+dhq3NWH`GSSbvEA^*iosJiG7N&GfI? z{jg2pd-~V#4H6SdU3flM)eNke{`F%z7{5Kf*Z>UN(^#=Zd870%k?}IiT=Mc{(n;RY zzkCAR=uZjBLwZ59N;5ovcpXiXdKiZog;*O7)+s6#pPZhJGTT;7q%5uBGg?e!4I^nY zPh(N><3wO=MOgM&Mi|zpGmO)#5!|JDcAVfz2d$f(%<0CKJ5E+x9}8q>`EJOCAy{Yn zmwEe9xmdcJS|h(*`j?f3S&{k1U(vrTL;sp)-nGv5R&}&`U7Fg2{Y3wAHD)O$uAzSg z9flUF6zn82>rRLMKH*-=_emBNVCkw#ky%P;EC=ddcLX?YVtOp8)H`JzfY~QJbhSt- zOhX@zA)%OL=yu|{Ej2SM`h&+RL)6Hmp?}3q3zk5g%C3V>)dyo+3`wHW0^0&@8Twa- z*&a~QWd~_jhap;SrAo9co~LH&!P0bs(h8YI4YIwh(QpYT`j?E{K~=e^4E+nOu)1OT zSJG9f#XIYo{*@$!o@|B8fy2PkDHFphWU`kGx%{eKXsEsh`d4A-UzHab`d1bj`j?%Q zh1C{q3jq*L_il2i4E>9@?P$_z6!g!z12H(pVDyXYjB*9APvFoD+^=0=LrWnZyg=En znAW|Yv_VkXh3*RZ0#yf$o8PsNRe7MYDy>T!16h=TFgiplE4D|~?t;Rsj|{tf*L zUvoqMI^LMAkcVLzmSt%Eo0BpWtkhvR&NWhac$2_ViuzbmOF8thM*5f4UeUkmT5e+1 z$LgtNk*qTn@sN5dhElc3TO|G5i#*G}N=4m)9#!mTJ>6{{;!{aSaC)pVS+{kiav>Pi zKR2uBGpshkr4APFS(FKpmlP&?frV-R7_tUgZ+JFBfy*|Psx}NaJr@egx-b1cB+PJX zkul6RtgrH?$d#sJ)%QpmRce$Wq~WG#ITstnSQbJw5gbSDz;SENq@`_#1&0f24o4A1tER|2~HN{=c*RwEsQh>s$Q(&;6T3>_5AK z->~$~^H}rD`|NHASo30v^HPzs#+u!a(Z{N31lYFjm7lBXpLe6l!M|A6`aEdOua}y; zE&5l*PyTcIm+9CVhR#(7x4$0dZaxf=`zg)4;V`_VpNL=4Dg4v@uP*3c{l!*xJ;0eX zb|n||pUZSPEbqTB`j@OQ6UarJ({Zq@Nr}F~C^Pn)@J3BKMJBsWST0LW^sn|z|8mdt zFC54er`n;51B7y@-(hnw5kiXnc*zV0ow>qhLCNg$!laWJ zN5|2mQ+WPP=MTDWj?nPI?3oz)*Wmyj-E;wc2%ZD`0zC~$8>zI<8n9Qwc`1XJk^td2 z$*vS$C*&RyErywQ3>)bY0^3fvEyk@lPON~ufz)+cb+Gg^vT|Q1P(Z0Yxi4Aw+`X&- z625a?Zf41AM}H0W;L-bF*X|A*%^n^IU9JpT z^sm550{xNxW%PmrJ=NTq{^fLi6hbHBHk0ZVL^L!u8S}m}4?{0fEHfsZrsTzwp?~ew zWYU2EE6aX{^Z)=4IV8($m%!x*HZ$kkO#I|(XR>ljncoQ^s6}H8Pyu?R2G z%K>bv{Dx|oC(JNcNr!!HB4)v1XPD6Gz=VDVDBHAiM9?sMl{k(|4Ue@;D3|mF+s4Wp zYvoYW2K(1N0nX6B8qFJrHwVH1<3-juF`cJ{B%lo_44V#K(!6mYEuQngn=fAzqJHK4J;Zu{2?MyBcPUDbono~$~@uxXop3YApQ~dL<6!1Re;-YC^ z?4&hktPst+2&QmK++4=L%H=vYH!(k}V>w=0#ivm}%i(*a>3o-8kpAcF9x#pG{%VQ+ zyP@Tezbw-&04sXGs^`$4vn%J%vq&?r{t&RD-*H2%x2tG&-!e`W|IvMvz?~t%K=uWoB6LX57S6v)f7c>dsqUdYvq&NWGO$h zJnzq881VCYzOO}mIeETBUl6dQ{0p12{K31c{Pqg;Cl|@{mrmGb!)~pp{h}+6wU?~j zB|L7ilP83j>15OGD1ZJ=9362FSd(qlbb)`YpvO2URSSSMZ?;xG3s@5+ArQe``@*$m zw0o(mJIEsFXOEYicwCW#cf@ut*ZyQM+hRD5umzem9BGVvP$EH! z%U1!b%{SZed2|xROMulmLPGnAjd*HACna_J$B{Ylp? zfq&XX4Z=QYOI#NZ?hEy$GjGVgfo`RrJB=A=_m%=>0&kBOe%Ckbp$PB3ZIg-g8AmnK zIWGSk!20mpFTeczxBtvI(ClyX92)%d}uo{8yRWs5~ItZ$o!Ub9cn@tqjx1xm&MdvEP zbqLLA4P+pOsew=h8JH<6LNHTTz_!wjZCVj5X`xX=TPU>HwLNJ`@k)1r@<_#mRk2)J zTfCmKz#lZO^eY5~!VLqQuu&Syt)Uk}p`r1H*zlyLtu2DfFbS27nT!ZU(*+CrDItw_ zLGXLnZKl@%tF9rqs2HpAgtI1$y~P#gbB|$t$*KU5mKVV(1|us_tZ3n z%`Daxl*MMaOFxIcp@JF>va`W;Q2N5QQ&UXb4Oqol29>J=bT)bt)F)?|lCc7z-xS&f zz|PJE*FuYSP0<8PMbHxzBbc&iL^#|^8>~Ow)1)9yO`6P&$4q)|Jg$osopn$oVb*1F zx=2u_!WHYm79zkswNL@w5L&7yyr2&6CDct7OoQ2nX3gIs(NlJFLxMEvE#oJ#$rPp~=h@f=v+~gN1>*6D?L3l=NhY zC^lbBWW2FhAvXAi%FMP_E91Ja23Yc+zx?{gFX^wp{1dx?BaZ>AJOV6+P;d81o&c7l zxSWCi&{=rgHBXo7lqdDB$wMm^Gx(eUEI0(SvyC~zlgwR83BCLcfJJO!wI{6*T9d*x ztc82;bV1;!)nctgQjC!-QO1k{u& zEU0F*Eg@DY=<*o=tRd^7Pz7ns3|JBrtU!v_0Bb|z*X7xN8S8CDAT;(a(7(4^g?ot* z8*9_#G+-&;0Q7r!4k+uWkdtdD8Q@s~HAbsOTSAGWW_Sj$Y#9m~cva}4;zhx9;DNMG zV{LF^h=!}G!ZVM7$zpBl3~p&tnNYAY@RoR}H0rGC2v^oJPk3vnBORg83LsAfnjDGe zJB?UDJ8U|HW8|F^%fq9!9c@-hS3o}K~o{G=r{mapfTbV8F&O6 z3N`Br3D4U@g+On>BE&XHeT#RkItk}<^R3#LgcNW|P&KZBsy3<^?ez6DEcyE{zoh^7 z4^XnA{siZI3RrxHS}ZpH@El;_01R$VIkn`}<6J^>KDFTR#GyAG5BMGdmTa;6XUB(T zh~U$k04ro!b_q?@IyE>WG_X%wp2Sg325fLb%PSmG!{ao+-E>Tp$vf@p?GC% zp;}Z6Dh{0j)a@`oYNd(lAAx7qi-1MuD-;q21%*{u^})&x+N4{T_)re9%UC!G2dDxd zDgy4t9*CpR8L*}TdYl?64Omd|AqYeWLu6s4rOL#&NE>x;hm(d0o6M_anPXQJ@ zkMtmI=o)f7($4^2rnhKVWjC+X;|G};C@BmqFZ}>tvTRKzGtj^xs^i08%rgUnc`)j` z2{IT;*_jsStx$F8ps7l3x;gXVe$=`%Hhp>8J)5;m9JZ>7FwL```%pThSHq7kVp;QaHDP#z(L1Jl!m_e6ec5@2`NPZ0^ zhPW^mR3SATsC$Et*Oc*WuA{kC%a|{O=Ecg%@YZB}*xxVg1~KgTzR!HUN%#No|J+w| z`2?^Yy}RBQ=Bb7y+x8M3Ii&f}wkJk}1vxdw?jjOhaDVD8VL2hlUB=3OFo#tU_=ACa zflCA)y(RpaU;9e0_4_Bi7qf=XsPR_&S1NokvEh32m1m?g{hqdO8k&7~uT|grmhjms z+5uMg=mt^x-)EkJZ+n;V7CS6?G0kre@vB_qGh_j*MZOorn*Dos>y|$Hbg1yPPZl&i zPBMI@a+$@_{ZCX9K9lNjSgLT5pS%kh(k}9+2`>5lseka?T4a%*y$9)UOv74M7+z$N zuP5KViuH{R31!RGbg?X=vB)A{UKIa=FUm6hB_;dPfHld-?rZOROV~bs2k_Xib%<|3 z5wI3nWRb5TzWpMvE3q?YpM-rE2YCnvCGVa=ip#><<2RNEz?vG}aj{>n^r5ekjP~^5 zp@&t+Us0Cs*Gns-ta$i&iF@z)7e8-VXOJGlAIQ31CfaAc21Hm*~K&PXQKdDnn`OwF+92?w+M# zTAJJ&~NQj_TnfdRHXnhK+VDq8TuzwQ9kW*8Z$2BE`Az>;261TEwwCoS3! z@9newY|z^RB4m3j2Sh4Vh$3J~6Grg@U_~!`VrhfQl6VfVC^`nKW5AN0Sj7d=AEuVv zTlgLTOB&*NMN3V*5Sb^tbq!=e$i0)}0k9(a8IC5em&b^93|N{V0kR1SeG;3&StE+9 z3PrgzxkVQF0)RDWKWHuwfYox{4cfF?a-Hc`8r^9RkhXW<02RkvJf~ry@6`-g+y!Zh zb~HoLq6eIylysM&>1cKUEdRIipkYOqxaT!2$e5UExadG%QqKUEylCAcz`}(gIw=vd z07)*M0#-{(bWH9Dx(_OJ*xL^>@2~M*!$PMb_o21=qJfQrfBFN!3ZPRl1T317%v9Fd zf|F%k_eB=@GJr*?X-$*e1D2uQw}4<&cb(?Q;|Loa*ZWn39=Ovy0xWp|tk!#DtJZVS zGa3M_Knu|tO%KcVJsJ{D`b7;3-4BE26#Wm~#daz_mt%!^JpGjb4xEus u?7Z)MK_%u5=Jr;0IWdQBxITZR(51q8r&j_dD-DqYE~D2`P5nRzh@vOGp&kPkpI5l?&f}6o8dvafS!Ri~xQbCI zq}eSC27ooQZ>s&^Y`;j|={c-MH1lk?b^m>;VF~BpGmCgw&^S#ltod+p{FdbcYWeX_&L(P;Cm>)Xlc)rLYi+sNw zSd*X1Ie{;h5sNJH9SbL|`I-Knd(}9-B5zE&G^j-u`I^!qVEsIwX8@~veO-&;Z7I22 z+SDS87<%+0YfknGub=8qJod5m8vrZ*ziIpJDZjn#X8?;oUbbppKJoAcar4{D>0wI# zEU=;FtD1H`Melfz^U@KM{L0>y>&1I>kuM<=)hz%L)kO!`RWxBxz9>3o43oOsC8CW% z)G91|Ns8Ob2B(Gwtl8FK*@)_U03G39^*2GHK8Oa$QCkV(^?{ql+$)MH{nI_aP>5y>m9^ zfY7nKZ2)^Zmu$UWcVmMYwavrBKxE7w65%&wz)0mw#mY64yBJ802SA!>e=Hl;`(tM* zo8&0wxNvg}lMA9P@}>uGW6}PbaUyLIned3#BW09??vREDXmX^%#wj%bRu)Pspb7Ig z0~V>oy$)rJX{p)&9nvJ?Liais|E0Z!9%=;{3k&GQX*D{8v$5g28iV0>90i6%I8MnZ zS|i4)X^%kUPeZJCYFL0kiSsR9Y$isXc zmgz*$Of}Rb1@nESo6OXKdR6Kipl7VYdTP9oAMW_zeP#j0F4@W9|?WTMv)>RKnL zKUX^5vWl^$Z(Op25uFxI?%Q0`oU$SnT9*cLElu7Oc?-J*)uAFIA*wMtH?j{JQij?z zR3@&i9oqpB#Vki+604w`eP9?0KtE0@#p*;ii(T&`Zv!l7qYkh~6&7G>-3Z2}NeLS? zQ>KcK+!g?9S~F8+s&o+3YK?Azh;nZMEC@nXRqoKcT|>oQ^dXIJtGsSWFX}Wv2PL(q zee>Ti+TJ!};!@ERG#`sXQ=wgNu}{~e=v`Cgp@*IK8r)xjSZ@Wassg<7RmHtc2~QpZ zmZ^2!j0N|EcwDnJ58l=LC5(3`V2o9S$r^5t&kGK~#B=QIta4G?su8dX=17)sCP-9- zK*JhgOt@z8ev+!SH4A~6T4?}C9{~&WBUTWmnu___?*J=Vv$1g%D0vwxMzuQ)6BSc+ z!8FDMR|ri2!rHniYtF_(0%qZ{pdcQMb!nnln`F#ZJn0w-WzJa;S>Aw#Db=XiqG2ua z2FY;X(Pdr^pyzwaAsh_ll4t8R_v;K=lT?fbQ23EjZIY7v_!b`ySwo+C!F>DyU=eXV z-QzTMJ9ixftT~?ct^?hQxc`El)uK}NcilH#7>l0%-4Q3?XCU!faqBuNSmsgm(X!{T+4 zRB(u{N2*9N)|UA(YA0q)G_zw}SDrM?0v?THy$38y;uk?hs!8gKDC^(}r0A#ygg8^z zCWG{&riA%w4_JAf2&G&Cds!2+P@%veNgS?yp^y)`aXOS^QjNNV1Cg_JtYO58SJ506 z?h#1<41=OGT33kxu&inkQ^M1b&}D(2Mcy)n6<1@<;O|+)|>71jKry zhV@`heO8?wPP*@=vgX+i7*3i8OZTGTRrY^F`*OONO z>(txBhahFz_5^y(Mo(?~tP=G)V0{(Ddd_fE4%y`kpKLfh4&+Peh6Sz`S>)RUtYeL< zePA15jseR&cjSw~yAkWH8kX-CS!9v#RWkZhF+a<8Sp{&BMZRkd>!)J6eg?3lf8!LE zy7=v7`QPO|+9Hd5p1kxj`enc}Rs^U0^rHjTQ^V2t9`NZ~LiO8g^1om1{;;L#F7mx9 zLPx%YjGtcKJez$9k6M2_3MEDL(rW0(fHiav*F`RnB;tY+azyS`Ub+#PEYP@J{-A)x zZC#I}js{ZE!b%)W*`^3ezyFc{{sgIhua8tLzHKAi1cP6~Ji#6oDzpKG&~B~_8f3B~ z^kQgTwfWdEHr8zRw>j*M9t}I8o3pfG%5GB4Q~{x45Jod%nLltXT@!QSx~pOa%b{+c zq9Y4}HA!;Pgi!=`upC z+uPu9q;8Nzw{%k3h(0+@K}E#3@{Jl+7zICQQ&T|#DN2Pjf=7roHmvPEbTrAYyFR!%gC+BPG!QclK@m2MmxMXQncsToI+O}eTCn(o7PX~(gU-;jpI zJzR>{d7(XTa@yvFe*jp&{g(V2f`25*@4x+?{87V?G5_NMV4bH|X-PM$yHuOa^<7#_ z>E=A;iY4cm6C;}l30u5B09eXw&o-1z09{`cPL% z-La6=)u0G$bEcCz7fkWoE7p!^lBx(vk{#-hB(ELwV^UMrRT$D**|FOp9Z_T7?jECA zQAHE}sy8-Cs+=--1dydu|JZ}N#xbQG19)*75J*|q8lI`H642mE9&P*3HAiIyaXS~Y zqH+P9&-}}-ImduiRn>uFb#R0bQ4|gUi`=gTtx8vqS(B4-1QeT~ZBA9u^iCU-i$?T1 z*K8=^84J(&hUrn~t_gXO2Ti-NZglG#YWqe&D;5>)ac2WNb@nX{3BAn?hZ-(=O%s4# z%^w36XjuRF_iw-Fzy1D?Kk6iI|8WdhXD#akQ(MFil@^S3pf9=Yq=syYNQI$0!#m>v zur5CqOy5j(j>|QeKHYAmS|ebM38PyH=)+g7zuS-ubeZkMrb%Y_7=nVP)418tO%d+y zXez|jIZZ33@c(#F83Bvwd<|&A>{#VZQ!7^Q0W0AwI0g@xJg`Kw5Paep2@$ZE&&O)4 z2Q|B1&yCAM{xX4wSMIBZ@qBsIwkZu0m7o*TtC0c7m}3L7 zs@p7gCf7PQOmIzw~)cwkc4I&eYF*7g0mzme3LI+BR{b4Adba7_?jhXF9`MF zQS{*u|0ckCI4qNyC81~_I419sZ9|cY40IwHVXc7?6hvw-ahEJ3zhLRxa%eq%K?+kU zt{bmPipSy+wAF@(N|m@%dfo7EYtnt5a*r#<@cHLMz3Ev0AnrNu2dDGQ(qnxNjaJ7LSPU#S;?E42S-t>exuX9o* zZ9_=a7Y9rC9ftq04?yw%K5>qc^NP+@>2;i<~*YLqPmJSUk4`#v~*V` z(MV1w8_>vxFuaB4>yc}YKImJ3Q@{NCKjlAB#rpj|k#b|ivvG7Tccfyz*Q$0*xvI#$ zDt`#TN^;wY+EXO>;&t%tL%{mu52%x0^I!h}%=#nw^?`;JMuI+d%;a1rBoCFUh$*_I z5ijyH0hVP<-_v}l!bQ74>w<=^K@K!uYc$xE(HtAQ|NhIbzoT~b z+b@V)2g^|9YD}a^CA*PUfTB57q|UlpH1!WMB=p|ojn~8_mU}YZTe@F7(y)?yMQa8u zrt^V8rIaJVM~tpayOcRE6Ig&-|2Z~g@BEy2Fz8j2m4hG3HT)Q4=6?vl z@-9zu$4w1-7UxA`jx61G;Dl<`uYV+{X#Mg>{>PDqwI)eDW+t!4L~B8bsY-}hsAm@W zc|>+y=etL%k^AFK-wl~IYk7$G`>kCd-vn4sr$RdBCyr^LfKOAyBXE-XeSLCp|!2dqyMfgE3 zt!a@({z}05@$@YIEX`N;%HMsmqhAk>USyF){%V>pseY^>;o|(f$RgjdyzKle|NiT* z|Nhs*D0$+2;^~9GpCRGe?}&1q{p{_i%0|2-wq2UkB8&V*Lqf!>U;ppF|0VB-g_FyT znsk!M6M!U-wp26X?<07V-!5Q1UBGW%a`eet!pVgf0ZW7hu@+f`ndm3DTi5n9%@^~{ zlYUqUCEc58zE0uQ|5LyJ`m4HEvZgTRmNj|Ct0Y0Hn_+BNs3ae`O_I@TQdLD&o*`Rj?n-nyoHl@JWZhSM1C0ZYaes7aoaCs0L_a1U5~!{g0zk>Jao zp!pIchDh^uehTE6-dr_|RpXOGy*q5ublX$KnzW}(VF=rOAKS`Q>l1v3ti8K8VRif{ z1*;sZwi|r8AU6$@sXaQe>^Jp^B8qfZP>t&&ljP9}VgIre@=qy~i8NoMc0y4?1(7YG znhc(pLhN5owMC@)YK)FFUuYg*==aflozSoTNBtYZf35d(??{tVRXS;N=pt~I5_u-- zL=z{q4Y|{K2E9>+f)4bsi080b}tWYCv z0eB^q2uYsgM;ewt>(6?*qxniB%~zkE_g=Ajv!nS!+8l8=Mb;d6BBf_3GHKnN*UWA2 zQm9=OX}&h;m19|cwryCMoS%mS&DSPGny=<&5L=e7jJ;yXin=RSN1Cs+VoaQ$_ma`{ zY)cWyu4+KX+%pbENdV05{1b4UD-yy%IZ=lKBP>Qq}oc#TIAEpG?C-UqYn$3d4@(OBiZ0 z)`1Fz3;bS2>_JO+Z;74T3o9xcNb|{nHID~>{q^Cfa0-A%MVk1LWE!63=%bT1w69eG zT30TbdQdySs(p@t#gpJgud4!5aQQs|78gCGx%I|YBjvt8TEY{6l~j)8A=F8pi)6&@ zBMs}A=8J8PXudp0(o}IS)s8&pK=ajnRCSJ25hhQ!+w~F6*LtS;;%BKCW}2_Hl9AgD zirPMZGw^hsNieskkc4BN|{HkRwoG?kCa2n$4s}Tvgs;Dd# z=kf6eCzj_9el;5uK)X8$n6nX#F$#rCSzfVb!`x~mkf{PSvZ!IPs%Pzax2LEGDd_#% zG%SvkKbd$Jh~U~XA7mCp2x{%%YiJzn$d2Y~QpgBgLUe&NUoJj=sY9AC67(kk))4XP zfByb|B5WOWtSo+Ir7T;&;{?m%M`k7~c?MepMhp;Q+AMRlq`6Vvc=>(IVR4-oP2Mz? zx?a=1(v5ipSR$#37;_jN!xm^-xLrR0tdBFz*CsKSiuJh}E^l+b85!%5<|`6>K^QZ= zys28%_rC9$y)KN)&IwO%K_}TjtP*sN7`I6C1*&SK`BK($vTDuBhMU2x zoLF^yB^)4B4tNC3#y2YpWoRvB?n*{A{JQXbHJV#Mn$2j2(zTFZWON0AJX*!|$H0fP zl=qP(Q31>qk(Lb6SDq2R-LQNF)r^HZ)^AG1(%wMT*1eeku*{WbVHH_kK?7694&-KW zO!~Rr$HY;ZB{?py`EGXhUJ=OctI#+9(K zC`Vb_Im*pNoI^bMe6IVF?GD58*@Hm#`a|3I8n&T`#WEyZ&RbbdHe@4!S5x%8>#95tnfwj`>*P#bguT}GPdF;)<#2HU)YHD?Uw0bl`A{q2#8RT`0VQEQviHELL0ju56uPiH3qxovd+S-}s z%h1s<9gb)FVC(W0m>m&V$-vidsI58o<$Z0il-8ZV7M3n(xHF-&h zB1ud8LVfpusxP5Ht?r(as(pk7o9QWd^c4oNV zy4%3mW)<()CYpjr2O5sPg!R^)*MKsW7?mSUnj@f~FX1&wQzouOpDMj_!ZAHw1&fyM zH6UJFr3o7odUdNqPw&ob*qFOp!k7WP8qVv2465JQQ8TydLtwPJZdtqP#dYJu)hIYi z`+~qTuRL>1^=U&4oGcK+{OUYZeh@bS;&0q0Q8rDTX5p$Jd$;PrZ2?d1wGGA6M;Cbj zSbLhU^^TX&#le7efua*(M5!Ik7e$&c1T13<0rqJZlrJGiU&8V(u6ckOR(9JkyG4)ZX^&K_ zM+X|^Z)aaZeS^M)ps(aI?()p<$Iwx74k2 zfH=S;;@hzbbdCP4xrG-{sp~+j&nwu%bsBK{!D*V3b>5fyJiTk! zly5gVBUkArg?M+CaxyZLD!$nOj1+h27V^ycO%4OYYrwARZgU0Dmu$~Ksj9bU5H)V^ zDwbU}fH{7XZgcc#PVY1;HaK)k(%VhNZ?~IG##lH{HRxZPeqbpmd{DN{CiTpx8yKk$ zca-4*F=w0J=U3?&fT!6)GO|qp=ve)+VKZPcu}$ynGMTl=K_vI_kNX(zejT>sX4W-S z%3ZRjf1g0}HT;MxyT8>nXGieG?>WETHR&!BfSeTm4`JV)>1rRb+2Yn59un=7&%ypj z{JD7&AH(|u591;I=5YLdriUEqRzE!1E9r~gjgJe5L2!3xZ8OJIOE+EQoip>Fbkqw& z!r_2Y+0pjT>PxtLw_#siar9_T@uk;ofAtK*mm0qo>60HFi!8FpX93nu&64GhBRF+tov{LkDK^?2bAJ4nt$Zy(1XQBC8WRdS#UT}UMJa;6J5OmiaA}5hj zrF7m&InAoqG`knZpR#1Oo_EOTTR6q-X_DXekZ|g7g8ijWwj1Zk#);?ug!N04T4a&0 zHEH_dkT7cn5!`D+^buf%st!!&15J`VL`zbud_r|zC)C$t;(FMj0n(D(DVx`Mqg-Cs zt^5ur-TBe?J6&^r%4YfJQRFPM{oi;~pigPO*rUna6Et7G5^8Nfk>*Rbpj?IcPl}6s zz#=M)4RYZqRRvY9P0op<{Wt<*JKPb2ZgPlP7^&*q7A9cLZ3R0xBcfSEYSX zfjnZ(d7b9Vr!&o0(c;6U;7=Yg%%RmBvxM2r<{6r=JIz>CJ?WdBJ#3nM3-^KPK4~$8 z>Q}VSqfhBH>K%ZT_HfZtzD=H6#PjJeg^}NZfu%^Oc|H6GbL1YSQa%+Dv)B z%{#@$G+OzFEt2QBGYR(xU31$0ya$X6oAVJM?5;=m!fnCWxarReHYDd8&E$B#4UBBB zQ>6Jy#Z2>cJ&1Fbtc<;7^@>6`u8JMam)qXu%5GL^&t0t;85tufx*%@0qlEChM{bFv zXMm39X$A#7PaD&BjP@BbR~(CV*SC!KXPX1dAr!GV@JgpB+@}@9VIg*;cLJ}XJiI(5U#)NIjko%Uz+BPOX^|_o;Nw=FVK9A z2bwSO8qJs3Oo|&BkqV)rxJB@qX}&CLZdKi*#}%*p?N+Mk4h}=sob3eY!&hy4o7;<- z=4(AcXbu)j)Jz9oD| z@Wtw@s>Ol=2ttHJLwNu!IO(R}+$wQ1BEUe=CN$EAG{sHQK#ROintPQI(Z*G*%xRf( zcd#UlfCZ(lB{PXsiOG`wk=ocLoDrxk04zw8G0@@xtsqU+19Ac|C6tvABLd{i0(udR zZUL-sSG)r)r`3+}P1ugU=_`ar*l|I9S$^K;uOu-EdUl_YEyfp!K!(A`7z1TdPnos z+#q*fbHj0!gY24gD$PISJ#*KZ7ugw+{YU7I+r&qjuX9yxJ91STt*X0;(N*Ko`5AhB z(PUxOLWH=^=*qg4Z&$8ZwdnOTsjevXin8ujKq0a#*qoTSp@X@$gQl{8LzHaaCpYzA3e~j39h_|g$+3vOP?Sz-&nQ)Wzt_BY4j1P7R_CAx^#Dyf zKw+Ww!#ZmcE={s7bCczn?prn0<6+p?yDkT{kOJ2EynzpBgI!BO!zv+u;CVBY321IX z)q>~HsM~ybyYcNxd&J(g+uSpF9npL_qWL~P%)uf3r_g-;m}|PfaXlE<9s)8H?EdmklMB8EZ7-MdH(w8by$G{hIp(Oy?zT2b6*8pR5WnOh9?A=LTR zoJP1^Iz5>)(e4k^g|JQBt6}^YQ#!FfQ`Y6ZIVzTor#ZTqxrk!kEE;;>OmTJs6mBJH z{_492rc-(}4|T*`SjKJE?V}Ew6mEE*)diD3^Sh0o91Iu0QhyH3m;Xy?zDlm%$nB+g z`92n~r?cN>cLXzE^rhl@?fKGa7r^@20qYGkUvfV>f0^csE=_8YMHayN%D#l}dj;~s z|00VlvH;eX1FW@NWRXR_Q&}{uSzdF1ykAdj>b&os{aaYX7FlG`u)a26`PV1ickis4 zSJuON{(bBsi~KyIk5~Ek?xZCscTW$a_>Ni21+d;}*3i;9K;wqiJbp`v4ofH2?mK!* zD7idLcRe$?CF9#QsXT2@-k(cqps?K&0Gy6#z9uix1aFXNb~lHmocB+UaxMA8S-59~ z(^EDB_XYLY^T!ULjOtIJAv~8^}koi`N)Rqp$WbyLu3USgReNhQWv&I^ju2I4#@|-mRxoN>I9Ac^<64sE=(y#p*JgU53>juqJVJ$=X#hwR^1S z5Mi>s7?MKfRMo{!eH?=VkSA5}xS1izC;0Y3rfrJycz?tc~`yWGxFA1xA`LP_SfEDIJD2F9$-cLpQBB zU_{p((EHmeQvSEV6bE`aqOz(Sg@THxe*Zi{DVzTD22FsYG3^(oC)^d*$% z7G2`dmoU32nAqS@1a5{r!^ivj4!z<4+zcy^d-(~1@=p+0K6A`CLu*Nc`BvSNzcr<2=EQ+c-Gm$9=ew5qsoFgF^=A0uZY)a;1kk_ZL*|4H@ugr?W1(<7& z?qis=IJ-n6_vC6nLPL)mK&=*i2~ARk{cx9Y+fxSk1-TAM1U!aoHq;FqEg6Yt_Ov@v z)OgNWmOv55g0%olNJ_?Nu5)xrvH;@6sCb@*z|gUW39;mQP_ICzs)<7uuo1U0 zyr09WBy*H8KSB?}ke26tUm*6#nd&Z6#aMsT67LDXY!ta7K4X%jb#~Z zlRn|l&r%2(E{UL62i+2qr_deeg=Lt|ahvAQ(apzhwp!nRKgWW_ioo58LCG@d`{i{ucPp52>G&Ef1%t0-K0kEvdkX609fOi zNcV%Zwc304OrVO!tu=hD37x0gF-qzauVit@`f&LEShfFNtFo#iBwckpUH|_VV@xwS zCZ;>CW~OaoOkH_(clR(gOiW+h-8FS}cXx9&<7&43&gc94%fr2obDVHq?`OSUr-8!) z7Nyhs*<``#LjCVj5%T*{*QX>>1&C9TudY_A4$=ve`?&Xf&n+<1>+TuSJhlsjJW#+8 zrC*(6?;)+EfB$nOsu@xL41+3U(f*?@;Co*BzTvo-PP(Vk(vNK^1z?gMU}<8ycv*ZW z!zJA#@fEof$kLS(*xdSw6g~LZ>~C3q?aik$*q>`HAyK^ZY=wVFBFIywN!ntJP708b za)!do-xoa`TUt~z1{@W?b*sQQ{EnKtUQlceNSPLq895I&xLkuP^p(O5F$HjJjsl^d zLiDa4GL!Na4`E^x-z3aQOnb6?wuXJwd1^my<_R~=BP~;2M)0^^3H@p?H~T9+Dq{() zmcp=5Ad0w_AtPP;^rs4;vfon7@LLo_ZCF4-W&wMGcN|@Rc;Ep4Lt2Z%lHcPj1 zKumN^u$pTU1bC6PSOU2qCS}r!vZO#dBk_)dDR6mu$T}Q!-t)d-FOu+SnRgi7)9EGi zLA`tv$$0vpbw8AVLHd%3zEr31;a0^%As$s$$$8qtbyVl&%N2W%B7)T_cC6ABhXgls zuwgzb&Q&UM@T)z7RqlY3r}(rJhv(FHSg|_x^&O9s(0WPb^f}J*@IN^_1`#00q2l59 zcQUwAG~?Q;Sq;$>0lIe}h)s!8DY;cqJiPqT4O*S8(JPf1c~az_L(Pzs3%{h)irEmF zeh?<_KYjLt!fivsF|9;XX7>kuRzxKx75cB;DY-2ca~O)hLo>5Q*E2DbHhW^uyvVI# z=X1YWFsQ>9YL1_Sr-{esPM_DNW-74_tbNap%9yp<4VKZlU&J}0#Nn@3nzHLRCbTU0 z6w;d4&e%;Y`s^$wb{nZdekc8iuKJY4pc-?;UP6);xmbcbW&(v2v79_1 z_q2BoK?%9sR)k$fOFxM+d)7_H(g27hnqhBJ5k-0AI%Vm?thj*}H ztihtWyNoY*RxpvaDL?=1kDg`9ZvCKQ#`WF+%nGNm_NJHYW$w?a>s_QFbDJbQxFM}c z`Jga_qk>Fh?_Pt`@70y3Z@WA-%|Y*8scqq|oSM=Wb?4h5A9Oiw2n>_kk^2;$>0=9Z zHaX3OH_ZwTbZOO3>WVTef+bPT1eKAU<)TbdIyb`G=mh4l&!(897jV6=kgK}S@3QC7 z1)=xLREOLlyaR|?e=V1i2~J~m@F!BL6Q;KU0W)e?M*d07AuqFcrAzL+&fmpEG|Y9R zTumbnvh3XUuDuP9jg3w>FOTssPSXgFLWoC*y;s(&8x$@NH&;DH(LObqp;-`9a`&S> z9%fi4J)ap%G)*=7PiOa$FiNVXBgw|iN02h$!aDauw_$-?n+5ML=u+GfBtW&~^T*uG zALhMTvs5Doa5oS+zyL2xApnndvr@@ox&}U6+FZTx`{&R;0T5=63cFFR3}@)6&o&pY zkR?%zRrua6u8c6xej7$f7yrr}xx$k?rU@MrmZj(X+H&!8)uyMH;;#(??T!zK#_ZM! zT%t!j^N2*v-u>C#B{h$_pZM-{8h&7KW9eM3x9_1agXMjU1I%+3IA2_1o}Lw zxKVm4-tY8}_ic6$b#h{Obz1HWEMfQ;Vhv4dP5M;@KG2o4kYm*7{yc2=; z0(IRITdOUWIQ%N#G;))IaoGr6hB78L6}P$gN^HhYd75C_&C1k<##2YXF&-aF1eaK( zrInj4J|pSOolL^;(e?{1GMa01+L+MWF+X;q14|sXRVzb>74buy^s_Q^MwY%ZBkwZ% zav4)?DIHr!dB!swDloO*?bNiY1y1NU)e()y@wjMM{z6m5dkS zIn#bSR^dDb6OBvcFHANHlRr9$GWSuiA{~RT&^of((`+(UX8rgp7*2x0qF)Beok}XK zjyS)imo9o0Jmg`GFEUw!HM58&{DT6M=Dgi!_$|lcw`_|Zg3rQXA%dE|dL<;}nC5Mm zu(7HH&Pu@L<5$Jej?m_vnV{jy{e)ouoTfM3l!|>bZ1EZ4KCksgz(K49pb_*Pb)I3L zm8tHxA+lFY<^bGY}Xs27C_RckRe5U)8yztnj)@+4QKZI8mo=iX{1 zUCYvRvd$T`vsy^US;ucqe_AuQ+PiVxuIXJm*u8kIX~~YY&0b)&Z0XQmL<-GXj!!5H zZ{7a)YNUC2hPv~)L%)ukbz5oLg{wp=j)HEXIbR{?g>XyIN-#?8qp4zClJhRvJH3T9 zGq*3v)*1I6x(D4jlZLHHZ0z{mY|Mc6Q43N|ScCvE&IWj^5A5ldaj6 z3MhJD$J`>+T@Xj{`)WjejRF2i?O$CXAiNS3TnL)+tJKs^mJ}`bs1oKIPq73X$tj7! z^ab>o)Hx0iPV`&qsFcR zZsy^y6ea1p7);&VUO26wqkZlJ)$DwttHuN)1@6$+ zu?l^^erxT)sL_&z6#_oWRZ;8x!hUhV+&TQb97fO2CPCpm7#B76At+C8x9{qMLLjtQ zwN_QN}CN{!xvuPqCDS{e+tVCM!ui*tJPZ#NV2`|g`z@^#BQnX z$<_|B_wPr0@zzj(V0{>SN~YNC2TNRB$Di67k9((th1z{ z*UzV(T3n4%)-#-M0Q7H39+D>$Wh6;(^f|rte`RU?X!vfQw6CH0?NQe&dln-c%7HXR z1e8ye$`z$$-n716iq!jO6mIYuZ+3A$#TBUXwfe_5X&p5*CLy%o6w>eGdL;NiExITK z#YrNrbI6o6Hyu60FJ*LkL{#-@)PFKIhV<-VBAggZ+w!q{)tjPk#gSg;>ZH zI|5nkBqe=xBDqoMDuO1;LoXutbHS;gPw$kh*!IBRBJFcXa00D=#wztT73DI(bd`)H z(B@nBIkvT($F~80M)p{q_c1H7H>fP2!`%+Ponze+qH#@nZCpOip7HtVaIV*N?GgBx_$6CW)`(F2aJM+VgrCh8VDJ`XqDtr<}juIrEUW(ryy=(4d?blrbOl9|h5z^%htYft9Lq%| zKGSUNS}sdRQ&esn)T{J+-hQwFW+paBhfDnNY33lkELxTloK@Um>0~#NR-ur6WxYoK zjAZ@CLIeEEgmY)cm=ven>6CU{+X@X)PTvKfGJm|VoDXBIv19zuK1RRx8o{6cZ6+Jb1*{A4;);JaCHwl*N7Wg2^u zfk(f*HY^W?j~K2fK~frgY|CHEZ$3 z0og;JQw@{c2cMKM1{Z1Hs27kT{<(J_w~3%!L34(hZvkC@7t^rkrl}{$S63Mc_1%f< zho5}Zm@s^AEgt7)luR@AdgtCgWxbj6k=i|yEXjj;=r{=CUbdzT0NZnVn$UQs-^AD? z?&Xohg@+R-M`hD&4q9jiY67jT%lvwlihniG!gL=M^ zpT~r%_4yTTC}Z();;&N-^9SklF+XaG)Zu9;9~`1%ww0ZsF?$4--a@NxWJj01io{-D z+8otLwEU*Y_;rWr-1d7(kshQYNkQG$yCgjVq)QE4!IcXcZxWmMDHaEOPN77keJdPX zM2qL|@D_S)SonYQpdU41o4w@L0PzIRG=Y~FQZ4pZyl_$5^v*!fHdrsezj_nf-|O@Z zn%s&Wi;w?Bi5d|^k2cV?NJ+vIp0~f7_Pux}xyg-FMh`spvlS(#*h_OoXEuyDGhrv( zcJ0mA)F$V|i%1OFqFVgqfe!S5!JUavt2fB4PQEd9#)-e~*7?Vi!?;owod7C>GV;a> z<}o3x->!rp-rUOc+ZF(t)&8f|XWJhI^btPp)t8V01;_nh5U}>ELs@{JCQy4W*7y(j zq1E}@YrlW8+wKEm3orfiO5nVI%S}x(ngxlDjGF&iN8~IB(x1TmZ6K7xfGh9@)*RBt zU+VeB`GjCR#S8GdC_G-{$#3)Vx-AbM-Orf%J?v>o6g)ubs5yZ~6;fAqRuqq)!CHH0%j`@8pr7s`%2_*LPQ9$-D z_kIy8rNt^B81jp;M!m4{BkSseOIt18vXnmu;s#SHPU}Aq@}QgWvpl*k8zwwE>?~^f z^Se=(^VG>NrH}d9<^NevrHOpt^vS+b6j&1};uXW`dCkWrlA%U_o{q(nG=>+MRDXg) zQi~VQrs|Cu8dr7-Kck9PHYf5YYJvD1)3phzoLvpl;344v(Y#!RIVRAm|%sz4}6$PtCoZ%(PLfnd_Ni ziQ99;NofW1*|;04qS$4u6t1(W1R{bQRDu<)w&iRf8^_Y)wHAkXxGfODx&}bt>1{h^ z$Euya!Wr-jH1=&=#FVXI8+=N0x&pMiXD`WhuAp0fRB?RG0D4nU(fVmD=^I%#oL%px z=yDb6XdC!T6xn>E!N2EmBUZ0)qN(B1djzi!QYVWQ;HxZ|4N(##Nh?;-zrHw-A&&VE zuh$!d4-g+#e9d|INgfC;`h?7rMWGm%9cPAR)G^A>M6ZCD=l9+=UiJLw^&QTpF*)Ox zrGk%u}#Uez0_Cr~4+j}r@nnlXuFA5$+B&Pf%f!yZRHfOdq?87+ETgijvpf=J#lDegqw5S3bEGJ0bse#h(r!3G zPs&6Mq>E2lACv84!xZndHo6e`X<5qGJ;rZIVZHZSkx-z!_gYLxtv(%fP%zc8hkydzcu;;+X&Ipi%T;X=d&|7biZC%obl^0S19@3 zuPC!D6!U3Hm$#n*%GFRhHD!{UU>!fZq9U(HM-UG)UZzqs;6~7IcrZm4QoRtMM|2s}@8JCvs0?ZZF~I|Al)B_5x&)gkZn|VP%&dzyV|Zolo+c&HkzVxP zufFeoaZc+=q;X@b$SWlo;gXTrCw!T9R-uJad-&BKS0tRexVrJQM6r@7I<50YXQ9#m z@UPY)C2iK=rW``{`Kt=q`>-^p2d7UXlnHS5RVpGOi~RZm;ce$x$z;12#Qp3ZFUv%3 z$Zw6{1S%|lja~4SDOz|&@rcrh>5qxLJVeQm@g|cR)18(>92W!Ms&=Ixq&Cnzi}CAC zL)Z{-0ljRk`y1hKE6!~CM`9nXTzyt|Cnu-B>U7byJSVHNU%dR+ zqt_$&#*TFMUsHdRzLyuJC;E_fd^Pv{b{G_`O5xNA;D( z^WrTh2On%(v(KU~F(a=v6y9%6Hij6_%hQC5_jiojS=owc6MGiOq}cO$eF>+=fiO%rw2YYU)lFOyUHcG}FT^-i!1^$x z^t(jn(MI(x!-eM?ZR^GCb*p1-gq&hYgq>W^A>l{uV+yCH+^3UPzACaXpcc4NbMDRLr1HORH6_2IA)Cr7TEDcMXPfnbK=2o zI-L3`01le#yOJsAwr@e-VcSk@Eb*HCdvPZ`huHo^=D-2cv^bs!gOC1#E9oeZC~v&u z?H@?_JrRFkaap z1xpG(-BBI?R^48ozz=rcYln(`nZB{UU1ZfRtr85E@+-Q9} z7iG`-39B3z8XpT8!nf|H`?8TpOhQK^o~j)Ph}K#Un;aTsUmy7g-3|o!)2qvtdlAXa z93eI&hm71;Zd4kWpj>Ohw1z#E*B)w1qZy@Bh4aKSVqt5ONMxhEZB4(^_y$c0c4g1uUHoSq@T1nxx>q4|kf-;q<(zocsy8@`wx!Q|fqWr&WiSFN$Z@HtOj@pj=Tl;gZc8w&|$A-S-X)&F^jk|2>?3LIbiYB8~7< zTjUCBBh!&DuRSnyoQrLeO;{bApRtLgH@lt0%uEymqS;w?tq-ojByy?C-FD{1iQh8% z;h8MUrxG#YSIX!KJu1Gui_|G}c(OG-;>_Ml`(RZ6T?jlpYUbWoELonI-A4Q^swm|! z%V>V2oNwFI_P?5nPRKM#4JVA@xeWyQEycfz>+ksFV1N*`x-XKL?cbO09OH||s`uW)zL?a5)Q~^mr}0Q) zQTpfez#C!^B)nPI=J)$2>(f;(Hm!p9#SgEpqWC0NpBX5p`L?uHiRCx%lYet3b%&%B z@nb`-8N@QKxMuviUwdBme@t{v!S|eqvj1!a+p1COW69W>erd`3Nr~&oVDU3nXmNFJ z0@qZx3K#L8$i=1EmD?R^ImRSY34GS-+ST7sE0_#bV~%j&u?&KE`g*E~v8fuI33veg zm9`UlmaWP=^vFv1DTF)V3c6jzrEM){CZY|f&Tip0R=#bP&%9yeI(S^&S1{~}e#v4Y z*+sVPiv)(q+KbT-Rwp7?uR=U@tzd)|w%#|uEN!)_(+FF3nz1M#tK1jGJnTq3*gb%6 z5I4pRre{#r!c&;`$mU9fq~d>8m)dOJW6{Y{{x^%$LXTc}HZBoNwwST@jw@XR*rCRI zmnl1;MoeZgX@o2$&mvHB9l>Dhf-7b`(^3|0_Pe z`qxjBrM+hWI+okN(jht1eo&SDvxe>P-jOVD1(W$%t?%1yh9oo1`=% z=|g-nZ?_rCud=lF?B_;6)~HJO+ia6cuas^Tt&7fyA5b-;;iJBi2x7;q8Ncxa5Pj)O z0QNkJPWi0^g62TV6po$;aQF(^eV_Rf8i}L2ru^JtSAG^&urDnmZzR5n1Bol3*C>t4 zI0+q0yrTQYvgk4W7#4W7eQ4=_#jyAEVn_Ue&?Y6@50jz9E_^)353ie5P8r}6{ZE^N=eDR%;v+MkV445fS|?? zWFTv)qQ%L{1Zc7l!7nY&%LzrBe0}Nf%LdG6JkPWeoP2l2P5iSZL2XH>7J}P6__XxK zn{2A$p)^2~GUXwGSk1q?9}kfj2|gk6ChBOsD@ZFNXMEpN;lFV9C3_V$G+rEoLa1w% zKr`4HlB6>ZV99%euQ*npSu}cx(l8V)f5;R5(2!!lD8ojOvgm4cY*R_gM#XAEglAZI zClV=~)$@GwwNx@J8VDy|6t3Q7W$ym%{D)zi7UYBxOY~jo6jW}t?o7M*S&%bbxesMw zRo_+S^3Do2aGVyBr+s?4sB;e*_Y0lJ!c5tENapsdd+^5G-oKhW!Gox?_{oOpwUM>f0yqGl_3Hxv;B3=Jo!YCrJ^)Dm;m8&0U>B2#b;JyJ1Wc6<6~xUrkOoE3 z`fDwH_&nhc#e94nK?3FS7T~D{z{(d<=j$JV{2?*g5n@=gQa^IlJ2T<7>SU=#VOzGp zJ|OzBk8s}59$)Y)aaqF>6;Eno$;q0tJ5)gbY3bZ&$QGW_ll^f(U`16og1$8_C;LpX#?T*xSRu4NT%+W+aVytWm2oN`fG) z`_nYSY!tu*@2!ecvg&lA=>0IbA|}-+4MRXRGr*m6411cDDSt?fvl)td7lh(-;2|cb z{Xzk)X=^bd?fksy!t3I~pzvuO7R%_laUEfjyA9!f0hyJ`lCBWWfzMYMW!ekSVm}4Q zA@NoSAC+z5OtqG4qDnR{b1PU%Bl@Yyy0Jlbms8(PPQox?8uh_(RqT zQLfp9{{BL{MPIfbhV00HhpeWsWwAZMhL`b29}{EErjaZC?3p`wWztszE6kh2)Uw_g zccfpFf0M0a*-?MF^=aOzugJL3bM)8Bsk%bXyhX#QkOVx3b5Ov_3f2l3_G~LEO{Ju> z=^lI^hkzRJ@ZqDg5(t803RKo=Aqmm(xXYp)*`r|lqrb>D zHn@O@OX*~*R|2mT5 z)KJB0&z@iKxFmqQCq~&$oI0Au9r>pwP-zA!VFUSXAJ25jmVG3@RjE`-w+n&Uo(oh5 z3yX?;7fvO46&zt#1Agl+9_h;C6_NX(q|>fBlH)AKLcLeQ;sr z>c0mlWb+7t2`jeag@MU1-GLnMW0DxGR`Ah!EE3xN`9( zZT$N?zSO69$Qz%)dJXPgIV>p>aupP@1847{fI`_@o@u#HBywD4#mej**Dwf9eE27M z@7y%E@u*{~mI@=2GG3!;cxF@{Y~eBY*tQp4s$??=DR#x$yeta!R4U%`^R-4k;h3yh zG10+{qT?9Bf=E?AoJ!xh^KlELevMTV!roDlMb-Pl_f;%3aZgRfW66eYN)%twk3X?PMoxF{Lq@k>oS>oNia@fTB`@1d%ogv8gt@;#yZ(v{&-ZzwuAs3;I znfxHXp*e1vCU?fSUhzzeLBNqb^{G{{_V+6MrW;fs7S9&4v4VvqN+ok%&IxA=wW?td zNd^d(T?s%6%lgkZ<0f;osE=?9{Bdhv_koG*c&Mri!x}U4I_LX7=F*}seA|$7kCNqc8ULQ&$~X6^MM(?C zs$yGJ*=_NYReDK+{dz-9jJMwI56;P6?3!uvIa^O*BLZc%wzYS%-sy{&zlTmtnW2xr zPMzE1#*>syImW41dw}vq19ov5?^fv%BFpa1PhimjtMlzK#9K0AIH5K@gLQ!?OAlO8 z242>%rnpMpAvJKVtN17ly%r8LgoAd0YKhmF@#bDA0dhIFNb^n9qTNU?~T0)K4|1G}P;hSIgXaC+<`SI(?`0 zBjyB$b3h%*QJQbvb*Vm-pXqLO^+~siEYV&}`-$?W{U^ljhjmQMD%8w44kpIBE=&A~ zHVim6Wpe_LuI=64g3w@;OA;11M9HC+ZqCsQpZC4U4r+N#BOL{k2g@F{_Rpr<7izx5 z>{{PS)LnucG?~Ehcsx#n*kr>gHM_``LD)0sqS|qLR#AMwqV<7yE_)Dkp|&kMUlxgA{5xHgnnTf6wirS3|i z^$qZ@S?nZwR-VM*#NI1cnGOZjNWlf+qv*$Px364cEHG@TSXY)C%>%XwwhJe(JRg<5 zw`{*3b$$eQJu(5&YwtfwdA#$-*Q0hZS0#T{2=_O64;E93@*@5B!c80gEQ~ahVu9)R zQ;<(;@+saoOI>k;I@9cCqtdSAR4(^z|3Ffzr?-_5Towk0ow&Zs8|FY&^MoF~_cxqy z4bcCp-+62K=Ks~Sw1@>>2Ax_HYuH~75-pPpHLZ$gU)d$v+-C|XS6h2Dz%l0(T1Nrc!4A~GIVT-b@T5LJIbnmxRRX{%9T&Ku$Mk*P8w6( zvAt~fKA)FDFw8D@*ydDfrDL=@xyvCMfp}70o7rLRRU_^FmvIux?B6ApITw$bsetgk zWW%qLvp$|>1zUjySu}cn*AHfFo;)ujjRQ~;&+4Qm){V_ZOxHS2*}UdN`%a)QJ^uNV zJ#OC0B*EO1_eAdDUAp&ikM~6oCEH!MD2+z_=5-~d_M5(6&h^7~@_(J#D?;IlkwEK> zRFq2cKngd(z}?)GUlM`n2eN5DoKiX_T;K)@bbW~tG}9N=(VACI-QS%uEP626<~B>Q zhDF=P=-ZK##vj}o=RO>d+{AB1A${NkL7D;JX+b-FyPqUFd4f8g;tGiNQ697PfmSfa z)S_Pn(m=CYrDA@AQ1~pRpgxf0-Bl1%>3ar3PC5SMoKngS{ZXO!?A!+qpmN7lNJ9#Pzdl z$~V|&J&ZNs#zcrjbi)R>7h1KXm$Q^Ji|r{DRS%f^bhvi|JX$jjh}###BSFK0WHz&+hg5m?j2% z#_!&0!1_8EZ;lAS$Hj`)jOu);l^av3IXVJlRRSh?l-LGuL`g&_1);C&Z|=h{2RbBP zD}~~QS16+O&bX;|TXfk-eH8*RKH8QDsrN{JhifzpK3|q}ex$}_Ae&bf0u{qORkPJ1 zz1QT8O|wmO9@WrE^$p%53!+9r4j$@x7oJ(l7@KVazFVJ~ub+H5 zR-E|B(7Dw2qS@dsJkfoR_Uf?6SbyMV3lJ+ZtYE>j9O4py`LBHtFQKzF|3kkSpeL0? z@+Y76iL0d_cXd7?1FxmQ7!OrAw~?wipfUwdA*uIO8Q9UfCm)$c ztS(ih`EBf?rU)|^p^Fp?s?3hFlBDrm<;+osPBBa>cZz8;@l?$Jyhya(kwUANe!(kj z7ra=)ucF~t01pzJ`s4G8drG>(s{V$-uRc_E&d{Fds^n@#;43B=YdmGQkapah23kD^ z4774z?0Z6Q^_LdCv7&z2_PR$km{0v9R=4)=4|~FUP`+`N0`VIAHz&X5Wt&o7LaV*6 zEOuU&dm4l&gdi2bT{wa+$Q4xY{vzoNu;x8{`tKaQJ~@2lv66ra^a3i8)rAeXkVZyK zG@W9HBLTA~Zw0e&O!C&S#WW9im9ty6vS(w4{89{ETgtjX#>&iZaw*O3!(ct)h?q>y z0Ua&!XtuPQ)=Oax-|5De^*?_RFzl3^p1KT6B=FUXU(#v~brJ=+FLD(?Qwxu#}<%cQ$X_Hr@^;DcSGlMi`-0f?n3q>ZbxL@BJ>!wB(VTr^wmmk5%2aNi3 zmd@CHt=@r5?JO)-`3k;Z?Wp1@Z zRe0!KJS73++ZhxZ@-LYcl;J+!GKt_YI2Jrq97}hg#x*>Q%@*6%s=k62z2+v)Lo7Tt zwbElo&uWkxC*o%mPe`LA@^2nWw3yX8g4`l9me=o!O6;YS4BooBl+k=5h7V)-;p^)C zej%LYgX@4ZL`9K6q)NGmA47TZ)jC01EG8@OnVe+WEp?DeNry5#sX$drTG)c0RZvJ; zS;@@JuVtH<4c(=Vu`76U2H&1@Q0S(06~|j%)wvLDY}A1w3kI zhi*zkA6F0j%3D9R=r{@Ot>9u-`n>_{$PE{NZ{6N){uNSdShC+F^$L4ur)F~|3^{xu zH{#;X&Dy5|5a6-En{GQL^kJ~cKjQFbGA2NPA9DPz2o$V`T4cqB?oCFD$DTnzr2?wM z8=e2JUtep%P%b_iyCasTgTFDZ)CtcBydnalhTJ=k?NhEqjz^YD4Kks1#m|PXTqvC}NPPftQU*iWs&ZQ9h=jB>b3$uqa z_17Xou;5AZF^{~(@Xe-4#x2x zTN#77HtcBmKoEylkKG35mqBpbCA*~;vW;m;YjQy+k|0O@ogOFF!;CZWqCEto5)G3J zx7xZrk8GQ-wlrxBLJoCqRnN$Gb3DSc;y{tPem*mOSZI|N+j$EQ4HcSW=8@wk(_axZE0~%V+#PT0>-#ub<;;)V<0!b`h zp1)cqC9J}&{u}bWV&x+Ut$I2x^1M}_j|kaQAz*{J3C8)7zQZ0+cOZYc0hYC<7={sN zU@sEeS$ROZ8;Fnk&6c!c@@7D=*FN$lF<&T3`>W>G^pSOgoCj7*PmG+5r|#Ad|F~xa zP!TU2bEtL#i?LdKCWd z7$C(LsX;&E>#)VI@F?rejF=m(lb)4BvZo@g>=%%}jy_Kebjw$BM_~uF%ny-NM9O+|>oq4Y!eBSd z&uSZcIK}(h$^T66Q+fAf5DYPIUS4qDJf_Y9a`AAAs#WiA^I#^t_3T!7s;j723mvdD ziIv$tm**ei%k8|MO!1=P`P#*dAZJLWA3L4KRohjYk}1y2FQlB534^Q3_%p-ElRKbH z#)j+Ebzak@!C^aUAdtl(Wp8&>-k9U@qejN?*QJx3;6+LS+yIJ9m$$EZw|UB&H9V4w z-yTLK3Y5uv$W;Zj&93(aph$2FBq4%H6#fhmtCUzY^83JLUidC*?N;rrZ0!0EG(ncfCt;%!+Y`{zxjq0L!k&SI}zI z*Z%SF(FuV%6SS+tcHa&u#C*HLmro-y`?kRUb;d#$zqgpJ{Sb^fz(-Li}9vi7S_zypCB5ns+5v-#H2vq^|uBYw+1ht<>`vMu0CZ2)(nba(;K3L zeg@3~_~R(v!33+rysQZ~o0h_YS}()zR`Q07yj*g^Qeb{$q}d_>s<0bLsnPq23v#`7 z=7IjhdRT~Kw$MrlG`vy!sD0b8u+JP?z0Gd+S>II)+Uzt+4W91z>7V*QR7f|_)x_PA zg#lZr>xe>H@y&Z6{6#FO!Y0F#*&GWbHRF}(%eqd#f625<_l+^{lQ}DMjo+9qn2KkN zSs3F&3q>*ctyRmS;PJr8^^?TaQwqhk&{??<5$HRMw@*r#M_kmWzfPE*v%mmPQg?QH zvT?QZ%6ldIX7-ZylgFKK85!FT8+YNaF9zubp(bAvrJ`&k%0lP609w#(HV$Rnp8@~` zMFe~_f1tkT_IoGb*g{a*6f~MMuksCskE+z&5CrL5zYsGB*QPB zvuMZm%K@W|vNlpv2EqSJ2BGOF%IukC$26=h65k)g6cSUasJ@?W!q-EUz~TLP8lhLi z*fkTHrT!}km9gbrNK7Bm*xocb!8+s?=d}YsRQRcTg^+V#5 zj}7fzOM}>wL_wdyo_omq;7SB7K+LepDx##N3Z>q*D4)!kQqnPQ5D zG#m*4s-YBaQNZ4dE0bzh<6F-i2}L7j%zG$f%9an{TQ9{x#x~~u%FVeTdrYcYp-V$l z#uTDxASCniPDV-OGVe{P>mF=46z?zFn zughmt$upUUQzk2>Y@A$imQ=cjb`;&wjhl?plJYw|s)xv^a`^?neCj88d#SgMW%#1v zb1WW5Y2fypyJXC*{?t$3(Pv(CWsab33!&N{&+w=c&__@krZ&>lvA%53nlAeFFiomAJ~=WhAs zVQI+WHy{_SA}Jp7xXnn#st93ZhT-}OI47FV1Gy0MIO`a8Q)z)hI#bT8hRoH|Xxi_({=}pxi z55Nk?Z@4izdUH^j@&!vrPhC_V*O5Q-CpV$VR!49R_tXTQ+i(GFYd^GGRQ4AfH)hh-)O$AJ})!C-Fh4d;=(R1 zwl`p6SnTRrVyk>=tXQ*M0UWd3>GsWFz67Etn~^iK0)%US&TkJE41gaGFd zQmj=&@&X=X+~S@hb7<}Z9i%68RIxtSKwo`72oS?4aLO8Kviab(pp+@zHr?J;q;lM( zSFYVXJa#KVQqDlS8RI3WE5j-G*=OgOJ=%66OW&zL&vej#D0gE}ULCEC_hESI*YK2| zxJ=HuNkj2M1SW=(s~wW9^Y}-6^*$BFgKk+poUgNDT&DAV_O4t@9jgv57gczVE30Ry zW6EOsVQ^aj?!B7z(95Zv8*d9o$=R@*B6(LVSyv1!1zfb1*G(ZofagpHEA8QqYU|)3 zAm!}$`!-)q!Rr4xH!zp(t&AYHH10h4C0p^C{0*K`?QMEngtQkC>NMQVt#+I*{}wK zG=*I3xWk$>KW!(_8Y6S|8cGyXs97dmy$H7fy*~L4A9b?jpp{Bqt>^bOvXVZsPZgn_ zj%nSba|%sw7?VvJHK`NkL+txJ z2Sx2LS}sbAh{NvC3hvk|_Hlo(7h}y{N+y)bw-&q*(ab)l!?4U}ZhPZOCdfWIrT-3E zZDH=ma@B^Ldl+Lc_ZyfjIP5?8ZHQV&GZGl{V<*$aD&=>F+>=UW!dB1WojCh}T z+mnmKMe(lM>jQ6+!_V{Vt;N}ca&;80%ip#N#*%1>g%PhXYHA9HPqCcOeVCpqm0BEB zXbeew9TpzgGxg#c)w6tT((-6KckDRz3e@+isjc^~qHr#e)^@_HGE?XJuXEe_3A-D` zQa@T9ewm5yS4@mZXntK2Idn^}D@+~J1xq9IO&y z50heR)BHQ5H*nm)_F3!qFlO6SU^n9U=5UE7d^UJ8`SEX?{THCrbv;UeX4e6t2y9K; zr91c^gG`BRtiheUht+H@OYcGq2~HAB`+<-C5_CQK0L|k8k2gt^pOd$MFvPbKV7%2h z@aLQzN>mvE_y(}ZkfM3H{yOxVgys-=zsDPL-R({4844Y(3ROXF5JaTxC64nsaP#iO zaKutR`U4vNobIPHoR&TfhVSrlYqKwaD=mnkr5D~pYIBAy#_E+Q2p}n2ROQaU#Zp~) zj;2m(*GyPotqRJ}H5ZyY6%gbkVjck0GuwL}^;3R0KMaZT^=$!HLBz;gC0<)i-CReG zzD(s^7I3}(P?!Xk+{}Jue*S!4j>gWWrBY`ougpH25?AT!m|6SO&v!sHa6)H`F{UQINET7TT;oX?1 z5{HSaS>i67;Xb6@ruW@>@L{NF?6jQUy{I&pA2bV*?6{nag6;XaNLz6P0-nShfikmumfxu0{yKiLm*(9tQ`Z{E=glcV5vZTEkAhoATb!jSPXakI4K3{FYd1>^*QW<(AD{N$So#Eet%Sn zvg$NZImwcQQo(3E?7j$`Q7|h69XJzB#wAj@)%+LeLouhp2~63R5nyL&vB)dc@+U)< zr=)Rw&dU7agh!t2C22M}vQvKw1IlAeuL@|76)Zx=)~aTP594LAZIcTt*voPmLd#P@ zF@s(GcVs41X*wJ6Z2^Or2+bRm`j5MOq)%x}P%Ca44wF(z^?9i^GOSn_-(RUH@vXZe z07HTbWYIpjSML9~3CU|yDIn-wAeNU<+kzfwSBY0J2GWz!3T<3T>nCrkYle%u2=Kp&483yR*0OC!aX_#DUbl>!IZ!<2m?@5RPcr3;$h$K{C6x(F5Kj6e z(NNQafuZoBVXxf0!ImG>#>0W{gC8#+Q(+a>LK-wqO+2=H|`62NYt`KEx%+q)Ko&nJ~xvj`3$EdO=;lgQ}8#Jj--wy+H1(qb94PL5&Gp$vnz~=YI7hJYdGenXn{Xxuul&SO3HAM!W7eanTYfQDrj_Atq{%u5bPj6&+J3R00Ai;Y&i8N-Sf*7VGJb8_dR zh-+;qU{Y3cVccxgBV#PRZSbHtWrm}bf?0+*Z*}1KmL`j}s419x)R;5xw+s@$!&#={ z;pNG3@KpBlI*a^17hd|v0yq92>I3iN=NiVzWjND5=hrgJ!VFU_5+!iFnjdk!YA6w^ z-B*oj1p0AhGh9@tVA3;Cf7jGX2FaMus^FyLwQNs>5`&tyAtLAw`#^yP1lh-ilQI}ce?>F%+_QO7%kvZJFhN-m?jGJ4NL zbDfJwh~&2OiAy0y9vV+UI~_VgxhDd%Yu^DzzEPK0M_m{Qtyn|)7a+#l7`_dshP1XJ;b14XCcCgrnrVLt4#qJH9hX$2$sW|V=+5pj-{TYOS|%Ss5>qVpPwq6+Shb)8~(aK5dtGHe{MtvoA zG|3>x2K#t#FoH@EYJ-X8Wfe;i3n^QBN*P4Y=`Y}sL43CNP6>eWKsK(vtI|~@bVsch z`kO085LlYc46WRSJBsv#ilMB3boMRK$}CEkF)W}r|G4AWp~bVxNF#aVOPuoa(TP#& zAO!9ifrD4Wd9=o?Q(6D&G-;^nENPx9>_10E~Or!``x}R?H4x5Sc8WP zug*{Eh&SQyQa2@z^9aMXL~#lkT7HgY<9a@!%Y<=tX?ju{s#d|qRUNWc3YFxRmM{&i z%Q)`}ZG>vT0<%PMBO1;8E)vqv$V2S0^F{c}s=P}X zgHR|=yj&OG>6um)Xg0Lfap;F>j53KnN{9aZWKY}|A%%z3T+_lS(%0E{7zb#qfkH8C z9VFJ-QB)|yM8}A=Ph?!Fk5uc57`YiDAqJRuIVniLxH9p0%yAj1)@KFH5Lt$#Qe~O# zM`eaoN29?flwqO6&0<*CbE;Z#+3Z`R-;|7?Lyv56*el}*VNS28Ba$+5@s~^eyP=gv zCLe0oipZcwJD!qRaze)`ORl?K2qPG?#Xq1q#E)N6Mlt!1N=W^iO4t6#vTvxP9ifxG2nzHW{B*=UWbw2SpYK1*-V9i8(LU;glNb?TU6 z1{S=0R{Shp#CsIX=kw9N7*_euBm0|zaJdY@Pz;Q^RzU0jlMgornU73}(4ODnm8rcQ z34Iqn#y5fdPg%S>2}2pe#-BNU<}8-H^5rc)zd*|tp%-hBzqiWkaX` ze=R(v2bDHfssEL{###D>(930eND)Z=d}g)d+wT>*=8=sxfQSDnM*jTWVk;2Pl5sLy14y~uwy`=WIW9gWUwEMx3 z#y7_5OnzZ$dY|Ys6(0_h>%ny5RzrlAy9F$I{BHyTwORQva_)k_B|?3$fNiNRw}mtD zPI~9bqd_T*n7_yxssD6@ddjGCM10kfup8}<#zX>NUw}9JE!`r4UN3i+UwS{UFCYS5 z>C1M}6pm+~t`5h#fj5;2l+TP(CYb4N3&H`lI#tChuBG zJvB#=%fevPN=NWKi?B?hl^~Hc)+;CBU!w0E{PNoLHsp%X-90Q(bl4a7D+RD zHq0|a#Qkeb>wEoFlU8eg_-Z;a^%jM2=RRJp^A8~t3hjCe=;be3GlbCP78F$7+{{Ik ztGss)AIeYf3J>`Zfk$g1X$2cOjGnvZnpTlXA*ATHaS8C=FTs^jIi`wO5Q;mml`9^n z#Q_=-=<5DHslWueALMiKnvcr$_IRxG@txuJcvrYPeRZ`@uVN^9v_;usfR9-f4iu{` zA0hk#Oh0FOzGoc}xmdYcMIQZuP3Hsx@iG$`o5!|vzlLppw4oya`i%Yi{0nmE3KGeL z{az#)`qchqKnwf7h*l0?(d#X7-d=ut`?$2sWM+7_Wtld9d!xg>Rnbpeke6p&MwJ#F z(Zow}W;)qow)|7hTDx&>J1kT@7l|%X?DAbj6_y*IK0pQ#$%_qRB zbhN-7AsN7Voml+TN>*)M3fnkmiWT`KUW4n#MVn`(aFek@%VR##IQI|4--We?Q;yzj zD|7_uaMaiXg3i7OQ43Kt+obV1MH)$v_g^H}(P!|t>pHJ849zyI&+U1Ixn1nq+!WzR zxe_+cFv<|=Z~`ZV5dbeQXD{eJoL)3X4|QNoOUG$=D0#ibWjux6&ObzkjjY3$B z#}XD*!pb;m`r!jxGn0X)tMRV?%ll$i?JEepTx-xbGPcz+&y3qHzbCX(I?wTTyE`H~ zhhIBTc)U@l6DLL!1Gc18E`9}lN-z}Tj%4KtPeHP`kB9jpi@YCcH#)R1qV1>KuPqfH zMm#Ff>#OCIyM4ufd?g3s0a&AffuENU4p%Y(ybMwFa5H~>hXt1WK{u1*`&~U^Lo!=$ z>pLkUv2l(F#L?M$$!A;Tai38E*B^_oo@6`YaoF$g+mYb5AyR#%5ne8#TeOSs>DWOto_sZUK4wau_CqnJ17&ES(TVd*p%Ia!lAmgpxDvL5(j0G*b{FFPr`1e zw+ywdW()WUCwKoLir&tSA{GQgufRbU_K2fzT@}Vz-JMYGU#R-YWmNKrwt}qYcgQvM z459x?Mwe$BRp2e#I|{gO>lqq9Af7Fn#A>PP>l^Os(P>2i5X8bR5zL%iQDIB>Gy{Iu zB}tM4=EWde=i$&%3Zdi^c)xdK+p3EfJ(hpLMfAesKK(v2WL&_Rr?+dx91qPXSEWW5 zHL=PIHH(qURDFEPzqq!*A&NcrNfh8;Q=3+VM#X<^6Rc03K(+|Ak$phr9$rQ4y0z4w zwKs>j=Y>4HdC;X)`cC1u-Rt`qCon*?f(j0_#RDjY84>F12P$kw>H<4M3~Pr8j0!vM zFaaeEBnC&=O0M11Yr_XAL+*>l7mPM_%C&gV1hIHJOL&62ubwvxupA{LOCtUuWmM@^ za7gg65mkROG{`E9Rm3J~q&H7Ip)hpnDu%^raOn}DxGB*F(D3^g?pY%kN45~8+mVS4 zaXx=mhA2Z=suV%cr0uI$R(P#Gnv2qh1nb z+uYwoNC4{hCUM;BZ99#^Naiq&T9$lo$X+Y>Z)|@cLKI3ughca*!Y`e3@Qfq+b_TO< z(J??_?p+IaavtJAq5T+}@sX1MHSfr*MZ3B-isApq;j2CDofR}-P4XG12pej0IX0M7 z;A>Dq@SYPY@0KX3m>$)%c6a4zOh4Se947IeD%kpZO6CFjQoN(ukZjykgz_V9ugj5X z)Jw>>h*n$xE-CK7qI)PT0(1P~jmkrc;>f~Ck$3~Eka_%Z_3wSi(*USy+W=UlTA{3R zOp?BSp+J*12-#0gjXAE;FM7F`+)EKt+o{aePuQbwRViSS4VZvY(h&bKC;k=;cgq%~ z9UmIFLvKZ7!+6H1MJVY?V%;2C1QhsAMf~qr_9%?^ID|LliJZOP0Yn-|O-qw@B_b5) zrpe1#Mw&=vGf~vR}rohAzl$8yRIXEYkn(JH>UO{QHItQ6hBd&d;FNXR{XEY1c}Zuz~43W%(BmDi1* z6{em!QgTXfp6{P_<&D$d@4sJNO+LjGaf-Q~f7>$YltCdSg+TryOcH0oudBq~b6ra* zw05LzqH9?3%#fvzOh~F4xfqOF1JOMVUcshIld(`&c?R-IVr)!Oltf(~r3hE>A9p6{ z>MCJZ8>f6%I({mlXV70l`=96d&)m-Ldo|HcEJeKra}F7baH;AXCKw?pqZpoFGHT1| zgCP=)PS5IFzcq)sLT<=eMB0YgbIEW!uwDm1Tk+s#D0b*3I&G;L9s>wz^~uu2^&FBA zWLMRbib!a~J$30-$d(sWuukR%l0Ar-hN$gk1?CYMJoVF7RZ32B^vRYFetv&Vj#dV4 z(KkL{qh#Jm$IC>Eigeua2}|qFas^)CuJSv)vy6R}lb*>JW*S+!+i9*J*3p)x>FqqgGmK)MO%U$!%@-pX^u!jIre3at9e@<~ew=+>p(+=i=`{c?KvVL+Y1 z^`^IR{lYr7^!G(hR-c|lk!a(*N(M>o#4u_0Dgxm?BQ)PeQcpBU*d8N9XUAJMcwr!X zp|^5Ii^lu6u_B)DES^9*xOfD5k+4*n`E}kvSLw5?MNpXD&-_r^r`zCdtJKuSZwe=S z$yy*4FMEw*z$}i;GjZ`ZlG1O*^kx1OZ*9;6#lBwn7r>8nboKxrwP>~unz32MQQP#} zz7E!A*y?o0fMUA7vj^+y)-3>O=4sNosGdCN=DiH8gc<8z^!fbYt%!cys6Bbwg)KW> z&R@KdaKSVxLzeP0w_n^Jqc&9M8^4QB!Q=92Jo+)K_2~OMDqYHe`LX1bA)q3S&8{`* zVK-3TE7f;{k6`XK(bgd^>u)8KW6GEq7w=9YGG{yJ@I~&!+vlH!I0HpT=f@#1T~j*( z>VJUTvA^@@s%iGFJgD)D}!D0xI!2h4byf&|VF=x(P8akHRqy>ZR#g%T|bYid$LXJX2zw%j*I-TOLT zCZ~YN{%!M7d~6jvv?(W9sDkqw$e&N>t3Il^zxqo(TlcnR?j9(!t7NX}&X?l@c5!24 z-jL?rMjy_8z}j1QCQ@-UN67-zzo_aj{>5k{r+aR7vN6zm<4^5RfFBUgI*3GKbos~M^yZUnP|%^Gb+OP4 zd-97Cw2tZg8qU1JlZPEfZ|g)R-_rD)Zp_$hu470NX?H+X65=$vMp?;Q;&fIfQb(B5 zv11p@%e)_CD*&WI*gQl9b)0tw7+mV{#!zgv`$NqTqX8n?qLDxd#`P&enKo|SsR;AC0z|KsJ^ zW+I4QFt!upjZtyks7VlEQUy7R)1}nl%U?m&({M_1LF7B!;l}%jv(&Xz6LbX-5dAAu zB7xH3`1nwXF{sP8yno-o-K>|#tofY|^ zkH>Cif}UCr91MTQjV}p~)x|Y5>ft=`furC&#iB5EI7YMi78Tdw&-q?f|L;*Ta_xH{ z?RKTx3u9t|@+yBQioC*1F@tZ^oW|9+F-9{HzTqwR{#pN?UWH>hj>KTm;|`_!zjk-Q z=%TUOdR*q7>)3Uo0FWHLD-%tk&JnnhRqQWuk&O_QNFZZY5agi=m=q^@xS@+%95VbP z9+o8rTb(60)rraXs)WR9R{oPE4ug2< zTK)v|i1oag2(}JkA69Nf01QaLoHfEE6BT-ulHn?5A5Wfb)%5(=Uyt=BJ?8_n=e?Ve5-I2{q*z4d!GVcy0cw z38^W3yKE6*5yV4_|`qVWe4N zm1bt$vJnj@mn>l`hZ%jHC)4jCXn0{YQ@+qquk4RLFxc15i|lnE)8UC%A_x zg6k<0LzJ|#3I{WBns_xQDF^yc5zFjeLP{z{c1Fc`jXh&Ragj;Y*Cq=ij8DXDwRk|B zU0u~=`6Q7Z&8^7k6Y5$9OZtq+`Yc*s(Bc1M^@4KCLtm$d;v= z3#Cb~MDY(ygd*bx{oexwKqN&WZ`l5tSz#z2j)~QQ5=%8~ebD>oV{Pr2ivBub7Yr1v z6EibKD5jWDfsoTMxfBw`>E~yiL#ph8tfx=uao)ORK04zz8ix@cngK&79#bQd??7TU zmrs+l9?&>c8EX+QZPUCuQTm35Uzga~&MT5)(y4j=7wE!j9v+4{ljNU@DP9xaaHhhl zH$yoFrfJ4M{Vsg19b$4D+Hq9_U5U(nW;+`0s%8DY3m1~4G#8bMaC zx6M$<#C3P3u}dBy4i)!|@Z8b*S`^R)ltfhqHW563afq8|5rO~6GeuseK+C0R_KR!F zZqN2Q(ttJvp`)j3W17rqiuyI&wS+)IR*e=t;Zi9IdL{=4EBPht%qxm11aa2|Jq&Iz zGhItn`1(G389HQ5*tMe+tiNsiT>cU|rXp+~xT9_^FY)y&;&Zk$Jt z0XtT){>Dh8SXR0kxT7n&G4H*HGOgl}9J3MstCgO=VcT?E2X$>Aewsd>4p<%LLUP6_ z>GJ#Hz7USN%RIk#g&Asl_b5Ii_sfmu@0h;Sb$oBw5`E5j;O%<2gEPFkem~ws0?1?N z@`$u>_QcP`zP$W?d-$be--1*Bfp26#dfyT&GMfMP&Ed)F^xgfld&8#cU8D6opsJ>I zgV6Xr5>oSpY2oO-(I^q|W;y>4&pAQMh7FU^`$*8T-&0Z7=VZ*~IRp4Fqsp<%<-Q9K zscR0)YLxL__46N3j-Mo>hUI&q;k)% z$+v=0f$(Q-3R8=y6{_&;Z~5PtMVwkMRj92k{ajE~vk;JekK+cGYzb_4s8^%`2eL=E z+h>;|7nW?tc!0ql`WZA=nwHi(S5yvGg9`j6{c?KgQ>nB$LDg=A4LYkXZ5})a z-2S7yS0II3)adD%J*`%S74jD%h1C1+At%tKMqlpz`%-0hiG)@$yB&5F7QU2c=I!XT z>A}g8duCf4VFhH%TfzOqiEW^)=Nn~m5(8*BhgFYx16qoK#ByIwsi}$M5V#6_!bO{EUc^ZmORci{b0GfaRq8;=H4S?T zBY0Fc96F*@FyUc@5#itp*kLPpKPj9Xaw=RjC(xvp>%Ofc5hj@DO2S2laV0nPI@B_^ z$4)DS6I;R^eK#>qpXOnBZ%Wfx%z@|QsK+glg?r_qEBL{9FY<-^d&(aCxJ(&cNR?xW zFb|9aQEGG;8WnP7@l_K$yQ(|mbsf}@{UUAhmGnq$>PJe(TtD$I8mQk#ZcW^${`k7f zFr^$V<;d6P!l5f}JPfs1Bg4T{VYWo|5+=21nBj~4X%_NT3qPhUV%mucihIk?SYG&- zEtuvzR4inR&RBYlLrY~fGLsk`YFTkhvBZ3*2OhiB_vjFMiv?u%i*>boc5prz2Ps*N zQH3{GkkqvIXZeS&l)B21E-_aC9A#osIx$6#3ibLOVSVz`3|R(Wd0=91?F=6!>h5|$ zKc-Jvstzem2&in(kPql=W^|$SQHzU#qLF{p@_g{CVeAnVqkr~SWg?VB{kx$unVT(O zV|Z?y4#SIe@f_HOLtFkqO!~zkDZvA3*&Y$zOVsSp6+b8)-5{Mk`?!0xf!8f~6TN$9 z(XPByPJx*}PO99<7>$S08`(ig_0JCb1ae27O_Z+~G0w^EpRql4qniEs-8{zno5-(8 z7M;f=8P=v9Cqsk4{+Wuf_SbpIOkDmOJ%M8xtQUZMD8^TuqwI3HW;qAe8U z@@@Ezzn_cCM&zbJtVXFVt6Vs|+ID_@_lI&fl|Pw2GqZ{h3oM)seTR~;(&v1ESh$kY zvQPJG(3JH9Ky~OtESqgC-iv^^aamB>(sm13%y_=Uj zkr8WnO_@CkEn%MtV`Ml~5jC(X6*7!}EktOOAdv|Qo|kmHAR=-@gb+;p%v*6{F3h7g zl4+S@g!|lrFkUzMYTGqOv`o;JeD-U5aqMlchL7RTp@eD%6ue{>^3xIw6!WhG+WfDT zLFmd<7PoEG|C-QS)N#b=|qSv;5Sod=&l@^N*Yu~W%x=7cB|i%BXj zAeM`Oe86V@ilsZnm^W=RK|ad8hP_5;#I~PjX zsTLx|ZHy@i$PBsgDlo+4J~Vh3q*3=}F4}E7xlNQaJvo4#k8Tfp_`$zS+IoNgizT38 zIQ=hjx|4AA$^E+AZz^UIkl>xks|u`&At~Tqztb2?hY8|8jk~+4 zo4)Cx-d7m6t4wATqB`-Sv^t4K_?{Ytp?>!jVHZKhfNR5{6kj=h4}LU3(5Eq7JM>#A z!{AH6Qb@yrLVL$(Rz4xOE<~y%hvZi0Dtvqq|{g$g(R<%)(D6@my=7gSQ@hKF)e zhmwJ5t)Z^n0;!TJDN!P08Ko^^@-53l^MU=abR5oKo?NXSwcaY&whCqp;N^1=gch{I z2F)t4lXUbAY)(Km{+@ExehD}k-&jW~w8sLKPh}AlvresMTEs?M#9k-~_VN}eV*r~Y zn#v^iTwZyED4m?j{2HU{tXw6*rtZq$9C|4g1lgLRRvgkN$ksI-ExfOKtMqQ>qGUvN zeOOFokG6my5zBU0+fkf6gII*RSy&&xZ>)T{?+)wNi?~`z??`}8V(#O%_ON13vVZ-Y z&YuOO3w?u2o-rTxcxfb!0=2&xE2+DV)4iw6EIu@S-O4K>#D#07)vu4=ZA)@(ySA$wEyvoz*DB#iSUZop1dz#SIjy#bIU57o1&*wMeeLFX|d5T-E1i!HaOa<$dv0AxKR&nl(wnudMWT8r>F&n+ zcp9E(*?8)s-<-X8HaZN4qzjSeGKVE3=u|AK7ZyYkhu zWm&WTrMPv%5A5>;8*4ZX`vS#oECc@!0)RdJ$1PS`-!GcQzsHP*Vhwq!RW-DeW0~r@ zpGRtFo3o1!YOB+&Oh*2ntoy}NT8DXjXA6$IG=A|z0nP*GN|S!y%KF&uT4Y{?(tBQG z%Wq`&Y`rsf^@Y#1rO)NduE4ir0T-uFrR$mZe!$tv0IRm2rOspkT<*D&Jz1z9ZBOhWEG4n|r$P`F(*Mi`;4)gi} zpUD=G44S}iaLe;)(0zQpPM%6nu9$f4np&OO72?0m%mX^GHPHp`-HHm9S9m3Xk`g+9 z7CRKZ`_hp<{59)En^$SgS@fITR*lW@ffU1DiOE@gCdk`q8NXJLd}E=Da-GmkO(rZ} zuif)x5cTiSLLAS`zo0)XZ^EKipb+sOUi_0ZrR7h{y04%+sj%6h5t{e+1km zGNs0GVmT2xVkG%4-zl-x#gm6|n;+tnk-VI}l9NG<{awVz^1Cy6!WPr~t%XoH z$x~X@54s-z9{2iiB%e;%7&ug(kfu@=OI!m=_>0-$$+c&SK5q7pFd{)0ko?DD?5K_^ zF|blS0teuwfjvnWsDO8fBtl0zS?s`9^~Iq%S!(fc1#aGLU41D9-Ue!cgefgyDrVxf zEmS10bfsvsUY9y_&~TRu`h}jn|3FKoZ?sS%vGph@+!?*wsog7~SeJvD(=bCj%tYcZ zspM666Gm9WKUJ3~k^%C*EVe^vGXJ}n21<_!Qlfy3-=jGP3Z1voEXS-DEMkoMbDInmTm?U- z_r1P;pGL{va<>}6oe%t!>;(;pv{oF6>W(~vRx}d*P+u%sLz(mFvdt`g2SVK|&0qi} z02w-S5|1>~^fA+IF`>nTxokn!CSIbx`9BGRijI!OD2<13kx>W$%3E(sI+*GgyQ(U2 z?T?i(lq9MVod#E#E^PEONlruj&_SpB&I;B!9CRii7t+Z0$5x{F$ktm%bjWiue%2=` zzA?U?p_Q|<-ywyo5=Q#38cCkS=z5z8w$@KPC{VW5I*{k7_9xD1>$fuU&I((D5)r%V zvYWki?KOsJO{wzF(+HEEt7}(`;IIC?ebF-1Km~r&?^BKc z3!dZQ4zJ9>izgPZ7|DV z#@*dU+;;Vb{slcd{@?MXbtRwwF4f1VnvkkeF!Mhj!=qImMor_Yv&yqJEza^}v$iPZpmL49YkS!0D;F?c_mWZ@3FuF~mQ;J8#EnCI&&(QfQCg(@ zJvEtc-pfkZ<%O%1OBd~R(2(S_N7yBkpI*yGrYl_~5oI06mtYr(CWwna>HAaph=($> zZUDISiXYz~{gk6McgHZ(rtF2IkOq%KTKN^lIPpipP_?l5W&2N(M6ZJZi!eVNaJj$? z+^@2RR~v`(^F*?czW~vy<3C?1?V^}d)-&!YY$m^SIAf16H)7bf;}9bgegIk*~*pK#+c3v zW*&`5h^_Umb*ZvPJwYcz2i;)N)$=!J>nq895sNiC17YYAy*jzeBu%A%za|Rv+8jK9 z;Tguzg$>TN>kZyP_P|g^#=-EiOM%Zq&mYusv?Hb|5PDOQX+i&% zM|z?Ob#6*z_#GfigJ+}Yn+iHh9)5nVY5&5u%`$}ZvVSJKh&CI6ja6!sR--q#TL!!z zQbrX^EEmSjfYSuARq(s#t=hG#y5?!P#${%o1~@l0a+m~7GX(bz?WWo=Nwd=(kXL;P zM;?CU>(+=eNE+^t(cnCOU2;auJ(;=yuokk3e@BWaDjo>b=1(2sBkXVLzQh{snt06e zL_`c)hm_%teDD_W29<=O=}?OBO8>$b-ph4>#8PpUS!aS<^YBA37Z2w{i173%lU)IZw)a6ew#Y)8dD#tLTGm?*Zf;%vGqAt>Y~ zKzJBY9Q?bf_;RORk->h|)LL zg<InVD>Rl*2x?5LkYr{>txUFGJ4y%e zao17IVeKx}lML(nE`Pe3r>V1taYGBKZ3?59>IV73%lWl3>nM^QtYf5UzQXXh38d<3 zCXiNL&Uj^@6sAr$(&`T?%hKJsYa*h-xyK^JwVzpHZ8HuPWG?kPuR}{uGl)|O_BbKh z*0yIXQ}2lfnctNB#=0L+^tU<<##8r~Ua%U1B^eZLS$rKAT09=fS@qeTm^y#*2Ej&EAorb~AmRuKunWy>0xqFSNa;zz?7do;UCPOm z%+EFYMgT=J#sq+PC!GzpQ;ihJs#|q@`xZAizIaDMiUzaifs`2Vf)JL;wH) literal 0 HcmV?d00001 diff --git a/plugins/perflogger/index.js b/plugins/perflogger/index.js new file mode 100644 index 00000000..bdd63156 --- /dev/null +++ b/plugins/perflogger/index.js @@ -0,0 +1,233 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/* eslint-disable no-console */ + +const LABEL_COLORS = { + misc: '#444', + cls: '#c50', + dcl: '#185ebd', + fcp: 'green', + fid: 'purple', + fp: 'mediumseagreen', + lcp: 'darkgreen', + tbt: 'red', + load: '#888', +}; + +const DEFAULT_OPTIONS = { + debug: false, + dcl: true, + cls: true, + fcp: true, + fid: true, + fp: true, + lcp: true, + tbt: true, + resources: true, +}; + +function log(message, time = new Date() - performance.timeOrigin, type = 'misc', colorOverride = '') { + const color = colorOverride || LABEL_COLORS[type]; + console.log( + `%c${Math.round(time).toString().padStart(5, ' ')}%c %c${type}%c ${message}`, + `background-color: ${LABEL_COLORS.misc}; padding: 3px; border-radius: 3px;`, + '', + `background-color: ${color}; padding: 3px 5px; border-radius: 3px;`, + '', + ); +} + +function pad(value, length = 5, filler = ' ') { + return value.toString().padStart(length, filler); +} + +export function domContentLoadedReporter(options) { + return (entry) => { + if (entry.loadEventStart) { + const total = entry.loadEventEnd - entry.loadEventStart; + log(`${entry.name}. Load handler took ${total.toFixed(2)}ms`, entry.loadEventStart, 'load', 'darkred'); + } else { + const total = entry.domContentLoadedEventEnd - entry.domContentLoadedEventStart; + log(`${entry.name}. DomContentLoaded handler took ${total.toFixed(2)}ms`, entry.domContentLoadedEventStart, 'dcl'); + } + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackDomContentLoaded(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(domContentLoadedReporter(options)); + }); + observer.observe({ type: 'navigation', buffered: true }); +} + +export function firstContentfulPaintReporter(options) { + return (entry) => { + log('', entry.startTime, 'fcp'); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackFirstContentfulPaint(options) { + const observer = new PerformanceObserver((list) => { + list.getEntriesByName('first-contentful-paint').forEach(firstContentfulPaintReporter(options)); + }); + observer.observe({ type: 'paint', buffered: true }); +} + +export function firstInputDelayReporter(options) { + return (entry) => { + log(`${entry.name} took ${entry.duration}ms`, entry.startTime, 'fid'); + console.log(entry.target); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackFirstInputDelay(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(firstInputDelayReporter(options)); + }); + observer.observe({ type: 'first-input', buffered: true }); +} + +export function largestContentfulPaintReporter(options) { + return (entry) => { + log(entry.url, entry.startTime, 'lcp'); + console.log(entry.element); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackLagestContentfulPaint(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(largestContentfulPaintReporter(options)); + }); + observer.observe({ type: 'largest-contentful-paint', buffered: true }); +} + +export function cumulativeLayoutShiftReporter(options) { + return (entry) => { + log(`${Math.round(entry.value * 100000) / 100000}ms`, entry.startTime, 'cls'); + (entry.sources || []).forEach((source) => { + const to = source.currentRect; + const from = source.previousRect; + const { node } = source; + console.log( + ` from: ${pad(from.top, 4)} ${pad(from.right, 4)} ${pad(from.bottom, 4)} ${pad(from.left, 4)}\n` + + ` to: ${pad(to.top, 4)} ${pad(to.right, 4)} ${pad(to.bottom, 4)} ${pad(to.left, 4)}`, + ); + console.log(node.nodeType === Node.TEXT_NODE ? node.parentElement : node); + }); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackCumulativeLayoutShifts(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(cumulativeLayoutShiftReporter(options)); + }); + observer.observe({ type: 'layout-shift', buffered: true }); +} + +export function longTaskReporter(options) { + return (entry) => { + log(`${entry.duration}ms`, entry.startTime, 'tbt'); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackLongTasks(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(longTaskReporter(options)); + }); + observer.observe({ type: 'longtask', buffered: true }); +} + +export function firstPaintReporter(options) { + return (entry) => { + log('', entry.startTime, 'fp'); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackFirstPaint(options) { + const observer = new PerformanceObserver((list) => { + list.getEntriesByName('first-paint').forEach(firstPaintReporter(options)); + }); + observer.observe({ type: 'paint', buffered: true }); +} + +export function resourceLoadReporter(options) { + return (entry) => { + const blockingStatus = entry.renderBlockingStatus === 'blocking' ? ` (by ${entry.initiatorType}, ${entry.renderBlockingStatus})` : ''; + log(`${entry.name}${blockingStatus}`, Math.round(entry.startTime + entry.duration), 'load'); + if (options.debug) { + console.log(JSON.stringify(entry)); + } + }; +} + +function trackResourceLoads(options) { + const observer = new PerformanceObserver((list) => { + list.getEntries().forEach(resourceLoadReporter(options)); + }); + observer.observe({ type: 'resource', buffered: true }); +} + +export function init(options = {}) { + log('Starting Franklin performance logger'); + const config = { ...DEFAULT_OPTIONS, ...options }; + try { + if (config.dcl) { + trackDomContentLoaded(options); + } + if (config.fcp) { + trackFirstContentfulPaint(options); + } + if (config.fp) { + trackFirstPaint(options); + } + if (config.fid) { + trackFirstInputDelay(options); + } + if (config.lcp) { + trackLagestContentfulPaint(options); + } + if (config.cls) { + trackCumulativeLayoutShifts(options); + } + if (config.tbt) { + trackLongTasks(options); + } + if (config.resources) { + trackResourceLoads(options); + } + } catch (err) { + // Prevent exception from bubbling up and breaking main script. + console.log(err); + } +} diff --git a/plugins/perflogger/index.test.js b/plugins/perflogger/index.test.js new file mode 100644 index 00000000..cb5be101 --- /dev/null +++ b/plugins/perflogger/index.test.js @@ -0,0 +1,401 @@ +/* + * Copyright 2022 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +/* eslint-disable no-console, object-curly-newline */ +import { assert } from '@esm-bundle/chai'; +import sinon from 'sinon'; +import { + cumulativeLayoutShiftReporter, + domContentLoadedReporter, + firstContentfulPaintReporter, + firstInputDelayReporter, + firstPaintReporter, + largestContentfulPaintReporter, + longTaskReporter, + resourceLoadReporter, + init, +} from './index'; + +describe('Performance Logger Plugin', () => { + let reporter; + beforeEach(() => { + sinon.spy(console, 'log'); + }); + + afterEach(() => { + console.log.restore(); + }); + + describe('#cumulativeLayoutShiftReporter', () => { + beforeEach(() => { + reporter = cumulativeLayoutShiftReporter({}); + }); + + it('logs the details of the CLS event', () => { + const entry = { + value: 1337, + startTime: 42, + sources: [ + { + node: { nodeType: Node.ELEMENT_NODE, nodeName: 'DIV' }, + currentRect: { top: 1, right: 3, bottom: 5, left: 7 }, + previousRect: { top: 0, right: 0, bottom: 0, left: 0 }, + }, + { + node: { nodeType: Node.TEXT_NODE, parentElement: { nodeType: Node.ELEMENT_NODE, nodeName: 'SPAN' } }, + currentRect: { top: 23, right: 29, bottom: 31, left: 37 }, + previousRect: { top: 11, right: 13, bottom: 17, left: 19 }, + }, + ], + }; + reporter(entry); + assert(console.log.calledWithMatch(sinon.match(/42.*cls.*1337ms/))); + // eslint-disable-next-line no-regex-spaces + assert(console.log.calledWith(sinon.match(/from: 0 0 0 0\n.*to: 1 3 5 7/))); + assert(console.log.calledWith({ nodeType: Node.ELEMENT_NODE, nodeName: 'DIV' })); + // eslint-disable-next-line no-regex-spaces + assert(console.log.calledWith(sinon.match(/from: 11 13 17 19\n.*to: 23 29 31 37/))); + assert(console.log.calledWith({ nodeType: Node.ELEMENT_NODE, nodeName: 'SPAN' })); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar', sources: [] }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar', sources: [] }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = cumulativeLayoutShiftReporter({ debug: true }); + reporter({ foo: 'bar', sources: [] }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar', sources: [] }))); + }); + }); + + describe('#domContentLoadedReporter', () => { + beforeEach(() => { + reporter = domContentLoadedReporter({}); + }); + + it('logs the details of the DOMContentLoaded event', () => { + const entry = { + name: 'http://foo.bar', + domContentLoadedEventStart: 42, + domContentLoadedEventEnd: 1337, + }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*dcl.*http:\/\/foo.bar.*1295.00ms/)); + }); + + it('logs the details of the load event', () => { + const entry = { + name: 'http://foo.bar', + loadEventStart: 42, + loadEventEnd: 1337, + }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*load.*http:\/\/foo.bar.*1295.00ms/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = domContentLoadedReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#firstContentfulPaintReporter', () => { + beforeEach(() => { + reporter = firstContentfulPaintReporter({}); + }); + + it('logs the details of the FCP event', () => { + const entry = { startTime: 42 }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*fcp/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = firstContentfulPaintReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#firstInputDelayReporter', () => { + beforeEach(() => { + reporter = firstInputDelayReporter({}); + }); + + it('logs the details of the FID event', () => { + const entry = { + name: 'foo', + startTime: 42, + duration: 1337, + }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*fid.*foo.*1337ms/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = firstInputDelayReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#firstPaintReporter', () => { + beforeEach(() => { + reporter = firstPaintReporter({}); + }); + + it('logs the details of the FP event', () => { + const entry = { startTime: 42 }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*fp/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = firstPaintReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#largestContentfulPaintReporter', () => { + beforeEach(() => { + reporter = largestContentfulPaintReporter({}); + }); + + it('logs the details of the LCP event', () => { + const entry = { + startTime: 42, + url: 'http://foo.bar', + }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*lcp.*http:\/\/foo.bar/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = largestContentfulPaintReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#longTaskReporter', () => { + beforeEach(() => { + reporter = longTaskReporter({}); + }); + + it('logs the details of the TBT event', () => { + const entry = { + startTime: 42, + duration: 1337, + }; + reporter(entry); + assert(console.log.calledWithMatch(/42.*tbt.*1337ms/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = longTaskReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#resourceLoadReporter', () => { + beforeEach(() => { + reporter = resourceLoadReporter({}); + }); + + it('logs the details of the non-blocking load event on resources', () => { + const entry = { + name: 'foo', + startTime: 42, + duration: 1337, + initiatorType: 'script', + renderBlockingStatus: 'non-blocking', + }; + reporter(entry); + assert(console.log.calledWithMatch(/1379.*load.*foo/)); + }); + + it('logs the details of the blocking load event on resources', () => { + const entry = { + name: 'foo', + startTime: 42, + duration: 1337, + initiatorType: 'script', + renderBlockingStatus: 'blocking', + }; + reporter(entry); + assert(console.log.calledWithMatch(/1379.*load.*foo.*by script, blocking/)); + }); + + it('does not log the full entry when debug not is set', () => { + reporter({ foo: 'bar' }); + assert(console.log.neverCalledWithMatch(JSON.stringify({ foo: 'bar' }))); + }); + + it('logs the full entry when debug is set', () => { + reporter = resourceLoadReporter({ debug: true }); + reporter({ foo: 'bar' }); + assert(console.log.calledWith(JSON.stringify({ foo: 'bar' }))); + }); + }); + + describe('#init', () => { + const mockList = { + getEntries: () => [{}], + getEntriesByName: () => [{}], + }; + const observeMock = sinon.stub(); + + beforeEach(() => { + window.PerformanceObserver = sinon.stub(window, 'PerformanceObserver').callsFake((cb) => { + cb(mockList); + return { + observe: observeMock, + }; + }); + }); + + afterEach(() => { + window.PerformanceObserver.restore(); + observeMock.reset(); + }); + + it('observes load events by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'navigation' }))); + assert(console.log.calledWithMatch(/dcl/)); + }); + + it('does not observe load events if disabled', () => { + init({ dcl: false }); + assert(console.log.neverCalledWithMatch(/dcl/)); + }); + + it('observes first paint events by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'paint' }))); + assert(console.log.calledWithMatch(/fp/)); + }); + + it('does not observe first paint events if disabled', () => { + init({ fp: false }); + assert(console.log.neverCalledWithMatch(/fp/)); + }); + + it('observes FCP events by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'paint' }))); + assert(console.log.calledWithMatch(/fcp/)); + }); + + it('does not observe FCP events if disabled', () => { + init({ fcp: false }); + assert(console.log.neverCalledWithMatch(/fcp/)); + }); + + it('observes FID by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'first-input' }))); + assert(console.log.calledWithMatch(/fid/)); + }); + + it('does not observe FID events if disabled', () => { + init({ fid: false }); + assert(console.log.neverCalledWithMatch(/fid/)); + }); + + it('observes LCP by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'largest-contentful-paint' }))); + assert(console.log.calledWithMatch(/lcp/)); + }); + + it('does not observe LCP events if disabled', () => { + init({ lcp: false }); + assert(console.log.neverCalledWithMatch(/lcp/)); + }); + + it('observes CLS by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'layout-shift' }))); + assert(console.log.calledWithMatch(/cls/)); + }); + + it('does not observe CLS events if disabled', () => { + init({ cls: false }); + assert(console.log.neverCalledWithMatch(/cls/)); + }); + + it('observes TBT by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'longtask' }))); + assert(console.log.calledWithMatch(/tbt/)); + }); + + it('does not observe TBT events if disabled', () => { + init({ tbt: false }); + assert(console.log.neverCalledWithMatch(/tbt/)); + }); + + it('observes resource loads by default', () => { + init({}); + assert(observeMock.calledWith(sinon.match({ type: 'resource' }))); + assert(console.log.calledWithMatch(/load/)); + }); + + it('does not observe resource loads if disabled', () => { + init({ resources: false }); + assert(console.log.neverCalledWithMatch(/load/)); + }); + + it('gracefully swallows error', () => { + window.PerformanceObserver.callsFake(() => { throw new Error('Foo'); }); + const spy = sinon.spy(init); + spy(); + assert(!spy.threw()); + }); + }); +}); diff --git a/plugins/perflogger/package-lock.json b/plugins/perflogger/package-lock.json new file mode 100644 index 00000000..458eb434 --- /dev/null +++ b/plugins/perflogger/package-lock.json @@ -0,0 +1,10621 @@ +{ + "name": "@ramboz/franklin-plugin-perflogger", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@ramboz/franklin-plugin-perflogger", + "version": "0.1.0", + "license": "MIT", + "devDependencies": { + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.15.0", + "eslint": "8.22.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.26.0", + "sinon": "15.0.1", + "stylelint": "14.10.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@esm-bundle/chai": { + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", + "dev": true, + "dependencies": { + "@types/chai": "^4.2.12" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "node_modules/@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", + "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", + "dev": true + }, + "node_modules/@types/convert-source-map": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", + "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", + "dev": true + }, + "node_modules/@types/cookies": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.31", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/http-assert": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true + }, + "node_modules/@types/koa": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.5.tgz", + "integrity": "sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA==", + "dev": true, + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "dev": true, + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@web/browser-logs": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", + "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", + "dev": true, + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", + "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", + "dev": true, + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server": { + "version": "0.1.35", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.35.tgz", + "integrity": "sha512-E7TSTSFdGPzhkiE3kIVt8i49gsiAYpJIZHzs1vJmVfdt8U4rsmhE+5roezxZo0hkEw4mNsqj9zCc4Dzqy/IFHg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.1.3", + "@web/dev-server-core": "^0.3.19", + "@web/dev-server-rollup": "^0.3.19", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "ip": "^1.1.5", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.2.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^4.0.6", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-rollup": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", + "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", + "dev": true, + "dependencies": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.3.19", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^2.67.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/parse5-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", + "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.15.0.tgz", + "integrity": "sha512-8gliiQPRY4oDeq90i53mb5LiilCIzfW6SRGkmZ3K62c1DpOdZsCIgt7GH2OsFF8mB9rb4olK7qQ0gdmRgm27jw==", + "dev": true, + "dependencies": { + "@web/browser-logs": "^0.2.2", + "@web/config-loader": "^0.1.3", + "@web/dev-server": "^0.1.35", + "@web/test-runner-chrome": "^0.11.0", + "@web/test-runner-commands": "^0.6.3", + "@web/test-runner-core": "^0.10.27", + "@web/test-runner-mocha": "^0.7.5", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "convert-source-map": "^1.7.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.32", + "source-map": "^0.7.3" + }, + "bin": { + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-chrome": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.11.0.tgz", + "integrity": "sha512-3Eq8C1XEGmfq7iwUvXy0xXfI/fbJNIq2ImDKTVdnwT4+5uTt1i8UFZxZ0PLdkWrhXVtiWI6zcZK/2VBzsGyHBA==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.5.0", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^13.1.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-commands": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.5.tgz", + "integrity": "sha512-W+wLg10jEAJY9N6tNWqG1daKmAzxGmTbO/H9fFfcgOgdxdn+hHiR4r2/x1iylKbFLujHUQlnjNQeu2d6eDPFqg==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.27", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-core": { + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", + "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^1.5.1", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.2.1", + "@web/dev-server-core": "^0.3.18", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^1.7.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "ip": "^1.1.5", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.5.0.tgz", + "integrity": "sha512-4eZs5K4JG7zqWEhVSO8utlscjbVScV7K6JVwoWWcObFTGAaBMbDVzwGRimyNSzvmfTdIO/Arze4CeUUfCl4iLQ==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "istanbul-lib-coverage": "^3.0.0", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-mocha": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", + "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", + "dev": true, + "dependencies": { + "@types/mocha": "^8.2.0", + "@web/test-runner-core": "^0.10.20" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-launcher": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", + "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "dev": true, + "dependencies": { + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/errorstacks": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.0.tgz", + "integrity": "sha512-5ecWhU5gt0a5G05nmQcgCxP5HperSMxLDzvWlT5U+ZSKkuDK0rJ3dbCQny6/vSCIXjwrhwSecXBbw1alr295hQ==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.1.0.tgz", + "integrity": "sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==", + "dev": true + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, + "node_modules/koa": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz", + "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==", + "dev": true, + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-etag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", + "dev": true, + "dependencies": { + "etag": "^1.8.1" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanocolors": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nise": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.3.tgz", + "integrity": "sha512-U597iWTTBBYIV72986jyU382/MMZ70ApWcRmkoF1AZ75bpqOtI3Gugv/6+0jLgoDOabmcSwYBkSSAWIp1eA5cg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "dev": true, + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sinon": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", + "diff": "^5.0.0", + "nise": "^5.1.2", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz", + "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.16", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^7.0.0" + }, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/ylru": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "requires": {} + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.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" + } + }, + "@esm-bundle/chai": { + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", + "dev": true, + "requires": { + "@types/chai": "^4.2.12" + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0" + } + }, + "@sinonjs/samsam": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/babel__code-frame": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", + "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "@types/co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*" + } + }, + "@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "dev": true + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/content-disposition": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", + "dev": true + }, + "@types/convert-source-map": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", + "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", + "dev": true + }, + "@types/cookies": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "@types/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", + "dev": true + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/express": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.31", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/http-assert": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", + "dev": true + }, + "@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true + }, + "@types/koa": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.5.tgz", + "integrity": "sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA==", + "dev": true, + "requires": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "@types/koa-compose": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "dev": true, + "requires": { + "@types/koa": "*" + } + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true + }, + "@types/node": { + "version": "18.11.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@web/browser-logs": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", + "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", + "dev": true, + "requires": { + "errorstacks": "^2.2.0" + } + }, + "@web/config-loader": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", + "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", + "dev": true, + "requires": { + "semver": "^7.3.4" + } + }, + "@web/dev-server": { + "version": "0.1.35", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.35.tgz", + "integrity": "sha512-E7TSTSFdGPzhkiE3kIVt8i49gsiAYpJIZHzs1vJmVfdt8U4rsmhE+5roezxZo0hkEw4mNsqj9zCc4Dzqy/IFHg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.1.3", + "@web/dev-server-core": "^0.3.19", + "@web/dev-server-rollup": "^0.3.19", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "ip": "^1.1.5", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" + } + }, + "@web/dev-server-core": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", + "dev": true, + "requires": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.2.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^4.0.6", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + } + }, + "@web/dev-server-rollup": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", + "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", + "dev": true, + "requires": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.3.19", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^2.67.0", + "whatwg-url": "^11.0.0" + } + }, + "@web/parse5-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", + "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", + "dev": true, + "requires": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + } + }, + "@web/test-runner": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.15.0.tgz", + "integrity": "sha512-8gliiQPRY4oDeq90i53mb5LiilCIzfW6SRGkmZ3K62c1DpOdZsCIgt7GH2OsFF8mB9rb4olK7qQ0gdmRgm27jw==", + "dev": true, + "requires": { + "@web/browser-logs": "^0.2.2", + "@web/config-loader": "^0.1.3", + "@web/dev-server": "^0.1.35", + "@web/test-runner-chrome": "^0.11.0", + "@web/test-runner-commands": "^0.6.3", + "@web/test-runner-core": "^0.10.27", + "@web/test-runner-mocha": "^0.7.5", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "convert-source-map": "^1.7.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.32", + "source-map": "^0.7.3" + } + }, + "@web/test-runner-chrome": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.11.0.tgz", + "integrity": "sha512-3Eq8C1XEGmfq7iwUvXy0xXfI/fbJNIq2ImDKTVdnwT4+5uTt1i8UFZxZ0PLdkWrhXVtiWI6zcZK/2VBzsGyHBA==", + "dev": true, + "requires": { + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.5.0", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^13.1.3" + } + }, + "@web/test-runner-commands": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.5.tgz", + "integrity": "sha512-W+wLg10jEAJY9N6tNWqG1daKmAzxGmTbO/H9fFfcgOgdxdn+hHiR4r2/x1iylKbFLujHUQlnjNQeu2d6eDPFqg==", + "dev": true, + "requires": { + "@web/test-runner-core": "^0.10.27", + "mkdirp": "^1.0.4" + } + }, + "@web/test-runner-core": { + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", + "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^1.5.1", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.2.1", + "@web/dev-server-core": "^0.3.18", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^1.7.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "ip": "^1.1.5", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + } + }, + "@web/test-runner-coverage-v8": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.5.0.tgz", + "integrity": "sha512-4eZs5K4JG7zqWEhVSO8utlscjbVScV7K6JVwoWWcObFTGAaBMbDVzwGRimyNSzvmfTdIO/Arze4CeUUfCl4iLQ==", + "dev": true, + "requires": { + "@web/test-runner-core": "^0.10.20", + "istanbul-lib-coverage": "^3.0.0", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" + } + }, + "@web/test-runner-mocha": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", + "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", + "dev": true, + "requires": { + "@types/mocha": "^8.2.0", + "@web/test-runner-core": "^0.10.20" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "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-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "requires": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-launcher": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz", + "integrity": "sha512-UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==", + "dev": true, + "requires": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "dev": true, + "requires": { + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "requires": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "requires": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "errorstacks": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.0.tgz", + "integrity": "sha512-5ecWhU5gt0a5G05nmQcgCxP5HperSMxLDzvWlT5U+ZSKkuDK0rJ3dbCQny6/vSCIXjwrhwSecXBbw1alr295hQ==", + "dev": true + }, + "es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + } + }, + "es-module-lexer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.1.0.tgz", + "integrity": "sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA==", + "dev": true + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true + }, + "http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "requires": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + } + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "requires": { + "tsscmp": "1.0.6" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, + "koa": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz", + "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==", + "dev": true, + "requires": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + } + }, + "koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "dev": true, + "requires": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + } + }, + "koa-etag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", + "dev": true, + "requires": { + "etag": "^1.8.1" + } + }, + "koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + } + }, + "koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lighthouse-logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "marky": "^1.2.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanocolors": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "nise": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.3.tgz", + "integrity": "sha512-U597iWTTBBYIV72986jyU382/MMZ70ApWcRmkoF1AZ75bpqOtI3Gugv/6+0jLgoDOabmcSwYBkSSAWIp1eA5cg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + } + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "postcss": { + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "requires": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "dependencies": { + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + } + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "dev": true, + "requires": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sinon": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", + "diff": "^5.0.0", + "nise": "^5.1.2", + "supports-color": "^7.2.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "stylelint": { + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz", + "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.16", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "requires": {} + }, + "stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "requires": {} + }, + "stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^7.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "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" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "requires": {} + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "ylru": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/plugins/perflogger/package.json b/plugins/perflogger/package.json new file mode 100644 index 00000000..38a1e7dd --- /dev/null +++ b/plugins/perflogger/package.json @@ -0,0 +1,27 @@ +{ + "name": "@ramboz/franklin-plugin-perflogger", + "private": true, + "version": "0.1.0", + "scripts": { + "lint": "eslint .", + "test": "wtr *.test.js --node-resolve" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ramboz/franklin-plugin-perflogger.git" + }, + "author": "Adobe", + "license": "apache-2.0", + "devDependencies": { + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.15.0", + "eslint": "8.22.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.26.0", + "sinon": "15.0.1", + "stylelint": "14.10.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + }, + "type": "module" +} diff --git a/plugins/screens/LICENSE b/plugins/screens/LICENSE new file mode 100644 index 00000000..b66a46db --- /dev/null +++ b/plugins/screens/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Julien Ramboz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/screens/README.md b/plugins/screens/README.md new file mode 100644 index 00000000..d0392a3a --- /dev/null +++ b/plugins/screens/README.md @@ -0,0 +1 @@ +# franklin-plugin-screens \ No newline at end of file diff --git a/plugins/screens/blocks/embed/embed.css b/plugins/screens/blocks/embed/embed.css new file mode 100644 index 00000000..7311b30d --- /dev/null +++ b/plugins/screens/blocks/embed/embed.css @@ -0,0 +1,18 @@ +.embed-wrapper { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.block.embed { + height: 100%; + width: 100%; +} + +.block.embed iframe { + border: none; + height: 100%; + width: 100%; +} diff --git a/plugins/screens/blocks/embed/embed.js b/plugins/screens/blocks/embed/embed.js new file mode 100644 index 00000000..694ed5bd --- /dev/null +++ b/plugins/screens/blocks/embed/embed.js @@ -0,0 +1,21 @@ +let i = 0; + +export default async function decorate(block, plugins) { + const key = 'screens-zone-cell' + ++i; + + // Add the `cq-Screens-subsequence` class as this is required by the default Screens instrumentation + block.closest('.section').classList.add('cq-Screens-subsequence'); + + // Direct link embed + if (block.childElementCount == 1 && block.firstElementChild.childElementCount === 1) { + const src = block.firstElementChild.firstElementChild.textContent; + block.innerHTML = ` + `; + +const embedDash = (url) => { + loadScript('https://cdn.dashjs.org/latest/dash.all.min.js'); + return ` +

+ `; +}; + +async function initHLS(manifestUri) { + await loadScript('https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.8.8/hls.min.js'); + const video = document.getElementById('video'); + if (video.canPlayType('application/vnd.apple.mpegurl')) { + // native browser support + video.src = manifestUri; + // eslint-disable-next-line no-console + console.log('Playing via native HLS'); + } else { + // console.log("typeofhls = " + typeof Hls); + // check if Hls library has been loaded + while (typeof Hls !== 'function') { + // eslint-disable-next-line no-console + console.log('waiting'); + // eslint-disable-next-line no-await-in-loop, no-promise-executor-return + await new Promise((r) => setTimeout(r, 1000)); + } + // eslint-disable-next-line no-undef + const hls = new Hls(); + // console.log("typeofhls = " + typeof Hls); + hls.loadSource(manifestUri.href); + hls.attachMedia(video); + } +} +const embedHLS = (url) => { + initHLS(url); + return ` +
+ +
`; +}; + +const embedPolarisVideoDelivery = (url) => { + if (url.href.endsWith('mpd')) return embedDash(url); + return embedHLS(url); +}; + +const embedYoutube = (url) => { + const usp = new URLSearchParams(url.search); + let vid = encodeURIComponent(usp.get('v')); + const embed = url.pathname; + if (url.origin.includes('youtu.be')) { + [, vid] = url.pathname.split('/'); + } + const embedHTML = `
+ +
`; + return embedHTML; +}; + +const embedVimeo = (url) => { + const [, video] = url.pathname.split('/'); + const embedHTML = `
+ +
`; + return embedHTML; +}; + +const embedTwitter = (url) => { + const embedHTML = `
`; + loadScript('https://platform.twitter.com/widgets.js'); + return embedHTML; +}; + +const loadEmbed = (block, link) => { + if (block.classList.contains('embed-is-loaded')) { + return; + } + + const EMBEDS_CONFIG = [ + { + match: ['youtube', 'youtu.be'], + embed: embedYoutube, + }, + { + match: ['vimeo'], + embed: embedVimeo, + }, + { + match: ['twitter'], + embed: embedTwitter, + }, + { + match: ['delivery'], + embed: embedPolarisVideoDelivery, + }, + ]; + + const config = EMBEDS_CONFIG.find((e) => e.match.some((match) => link.includes(match))); + const url = new URL(link); + if (config) { + block.innerHTML = config.embed(url); + block.classList = `block embed embed-${config.match[0]}`; + } else { + block.innerHTML = getDefaultEmbed(url); + block.classList = 'block embed'; + } + block.classList.add('embed-is-loaded'); +}; + +export default function decorate(block) { + const link = block.querySelector('a').href; + block.textContent = ''; + const observer = new IntersectionObserver((entries) => { + if (entries.some((e) => e.isIntersecting)) { + observer.disconnect(); + loadEmbed(block, link); + } + }); + observer.observe(block); +} diff --git a/package-lock.json b/package-lock.json index db1f2afe..c876d028 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,6986 @@ { "name": "@adobe/helix-project-boilerplate", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@adobe/helix-project-boilerplate", + "version": "1.0.0", + "license": "Apache License 2.0", + "dependencies": { + "@aem-screens/screens-offlineresources-generator": "0.0.1-B003", + "node-fetch": "^3.3.0" + }, + "devDependencies": { + "@babel/core": "7.18.10", + "@babel/eslint-parser": "7.18.9", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.14.0", + "@web/test-runner-commands": "0.6.4", + "chai": "4.3.6", + "eslint": "8.22.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.26.0", + "sinon": "14.0.0", + "stylelint": "14.10.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + } + }, + "node_modules/@adobe/helix-shared-git": { + "version": "3.0.0", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-adobe-release/@adobe/helix-shared-git/-/helix-shared-git-3.0.0.tgz", + "integrity": "sha512-uynXD2Lewaandb7W/1jnfJYxwN/uzZTRcO2gWNRPSWWprty/WKUenX+z4c8O7pKyxmb5rdcbY6ptiDaYLcwZ7g==", + "dependencies": { + "@adobe/helix-shared-prune": "^1.0.5", + "yaml": "2.2.1" + } + }, + "node_modules/@adobe/helix-shared-git/node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@adobe/helix-shared-prune": { + "version": "1.0.5", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-adobe-release/@adobe/helix-shared-prune/-/helix-shared-prune-1.0.5.tgz", + "integrity": "sha512-xvNIA5qxRSYnNAtzikIEbn8SEqnmAdr2NbsonQqTimor5Ie8jstLuIo4wXHzeK2l+Vy9zVvimzGokEkgBslgIg==" + }, + "node_modules/@aem-screens/screens-offlineresources-generator": { + "version": "0.0.1-B003", + "resolved": "https://registry.npmjs.org/@aem-screens/screens-offlineresources-generator/-/screens-offlineresources-generator-0.0.1-B003.tgz", + "integrity": "sha512-nN09vg6/WUD76ieXKclO8L5dKw2psgLj2ISWaP1TSYEavjayZkkt0SkZo8ELWZsHekv2QoFovBFczdcG+oM/Kg==", + "dependencies": { + "@adobe/helix-shared-git": "3.0.0", + "fs-extra": "11.1.0", + "isomorphic-git": "1.21.0", + "node-fetch": "^3.3.0", + "shelljs": "0.8.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", + "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@esm-bundle/chai": { + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", + "dev": true, + "dependencies": { + "@types/chai": "^4.2.12" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", + "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "dev": true + }, + "node_modules/@types/co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", + "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", + "dev": true + }, + "node_modules/@types/convert-source-map": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", + "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", + "dev": true + }, + "node_modules/@types/cookies": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/http-assert": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", + "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true + }, + "node_modules/@types/koa": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "dev": true, + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "dev": true, + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", + "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@web/browser-logs": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", + "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", + "dev": true, + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", + "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", + "dev": true, + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/dev-server": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", + "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.1.3", + "@web/dev-server-core": "^0.3.19", + "@web/dev-server-rollup": "^0.3.19", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "ip": "^1.1.5", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.28" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", + "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.2.0", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^4.0.6", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@web/dev-server-core/node_modules/ws": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@web/dev-server-rollup": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", + "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", + "dev": true, + "dependencies": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.3.19", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^2.67.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/parse5-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", + "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.14.0.tgz", + "integrity": "sha512-9xVKnsviCqXL/xi48l0GpDDfvdczZsKHfEhmZglGMTL+I5viDMAj0GGe7fD9ygJ6UT2+056a3RzyIW5x9lZTDQ==", + "dev": true, + "dependencies": { + "@web/browser-logs": "^0.2.2", + "@web/config-loader": "^0.1.3", + "@web/dev-server": "^0.1.33", + "@web/test-runner-chrome": "^0.10.7", + "@web/test-runner-commands": "^0.6.3", + "@web/test-runner-core": "^0.10.27", + "@web/test-runner-mocha": "^0.7.5", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "convert-source-map": "^1.7.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.28", + "source-map": "^0.7.3" + }, + "bin": { + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-chrome": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.7.tgz", + "integrity": "sha512-DKJVHhHh3e/b6/erfKOy0a4kGfZ47qMoQRgROxi9T4F9lavEY3E5/MQ7hapHFM2lBF4vDrm+EWjtBdOL8o42tw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "@web/test-runner-coverage-v8": "^0.4.8", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^13.1.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-commands": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.4.tgz", + "integrity": "sha512-opSfIVHj4PsIA/Ah582DKgnmdfY+Xn35FnnYeJ+aBYrM+setOP63McvrY4PuwasictwswHVSzq86qZzmxvXkHw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.27", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-core": { + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", + "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^1.5.1", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.2.1", + "@web/dev-server-core": "^0.3.18", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^1.7.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "ip": "^1.1.5", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", + "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", + "dev": true, + "dependencies": { + "@web/test-runner-core": "^0.10.20", + "istanbul-lib-coverage": "^3.0.0", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^8.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@web/test-runner-mocha": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", + "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", + "dev": true, + "dependencies": { + "@types/mocha": "^8.2.0", + "@web/test-runner-core": "^0.10.20" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-lock": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", + "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001342", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", + "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-launcher": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", + "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-git-ref": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", + "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/co-body": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "dev": true, + "dependencies": { + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cookies/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/cross-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/cross-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/cross-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff3": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", + "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.137", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", + "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/errorstacks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", + "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", + "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/http-assert/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isomorphic-git": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.21.0.tgz", + "integrity": "sha512-ZqCAUM63CYepA3fB8H7NVyPSiOkgzIbQ7T+QPrm9xtYgQypN9JUJ5uLMjB5iTfomdJf3mdm6aSxjZwnT6ubvEA==", + "dependencies": { + "async-lock": "^1.1.0", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, + "node_modules/koa": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", + "dev": true, + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-etag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", + "dev": true, + "dependencies": { + "etag": "^1.8.1" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-send/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/koa-send/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/koa/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", + "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz", + "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marky": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", + "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", + "dev": true + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimisted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "dependencies": { + "minimist": "^1.2.5" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanocolors": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", + "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "dev": true, + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.78.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", + "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sinon": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", + "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "node_modules/stylelint": { + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz", + "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.16", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^7.0.0" + }, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/ylru": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@adobe/helix-shared-git": { "version": "3.0.0", @@ -290,7 +7268,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true + "dev": true, + "requires": {} }, "@eslint/eslintrc": { "version": "1.3.0", @@ -843,7 +7822,8 @@ "version": "7.5.8", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -993,7 +7973,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -4031,7 +11012,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-parser": { "version": "6.0.10", @@ -4608,6 +11590,21 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -4639,21 +11636,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4754,7 +11736,8 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true + "dev": true, + "requires": {} }, "stylelint-config-standard": { "version": "25.0.0", @@ -4769,7 +11752,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -5184,7 +12168,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true + "dev": true, + "requires": {} }, "yallist": { "version": "4.0.0", diff --git a/scripts/lib-polaris.js b/scripts/lib-polaris.js new file mode 100644 index 00000000..52f4154c --- /dev/null +++ b/scripts/lib-polaris.js @@ -0,0 +1,57 @@ +function readPolarisInfo(img) { + const alt = img.getAttribute('alt'); + if (alt) { + try { + return JSON.parse(alt); + } catch (e) { + // eslint-disable-next-line no-console + console.error('Unable to parse info for img'); + } + } + return null; +} + +function relativeToAbsolute(relativeUrl) { + const a = document.createElement('a'); + a.href = relativeUrl; + return a.href; +} + +function isValidHttpUrl(string) { + let url; + try { + url = new URL(string); + } catch (_) { + return false; + } + return url.protocol === 'http:' || url.protocol === 'https:'; +} + +export default function decoratePolarisAssets(element) { + element.querySelectorAll('img').forEach((img) => { + const polarisInfo = readPolarisInfo(img); + if (polarisInfo && isValidHttpUrl(polarisInfo.deliveryURL)) { + const deliveryURL = new URL(polarisInfo.deliveryURL); + const ck = Math.random(); // Burst cache for demo purposes + const mediaBusURL = new URL(relativeToAbsolute(img.getAttribute('src'))); + if (mediaBusURL.search) { + img.setAttribute('src', `${deliveryURL.origin + deliveryURL.pathname + mediaBusURL.search}&ck=${ck}`); + } else { + img.setAttribute('src', `${deliveryURL.origin + deliveryURL.pathname}?ck=${ck}`); + } + + if (img.parentNode.nodeName === 'PICTURE') { + const picture = img.parentNode; + picture.querySelectorAll('source').forEach((source) => { + const srcSet = relativeToAbsolute(source.getAttribute('srcset')); + const loc = new URL(srcSet); + if (loc.search) { + source.setAttribute('srcset', `${deliveryURL.origin + deliveryURL.pathname + loc.search}&ck=${ck}`); + } else { + source.setAttribute('srcset', `${deliveryURL.origin + deliveryURL.pathname}?ck=${ck}`); + } + }); + } + } + }); +} diff --git a/scripts/scripts.js b/scripts/scripts.js index 7b1adb66..da4c81db 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -15,6 +15,8 @@ import { toClassName, } from './lib-franklin.js'; +import decoratePolarisAssets from './lib-polaris.js'; + const LCP_BLOCKS = []; // add your LCP blocks to the list window.hlx.RUM_GENERATION = 'project-1'; // add your RUM generation information here @@ -158,6 +160,7 @@ export function decorateMain(main) { buildAutoBlocks(main); decorateSections(main); decorateBlocks(main); + decoratePolarisAssets(main); } /** diff --git a/tools/sidekick/config.json b/tools/sidekick/config.json index fd0c23de..7c3e25f1 100644 --- a/tools/sidekick/config.json +++ b/tools/sidekick/config.json @@ -9,6 +9,17 @@ "paletteRect": "top: auto; bottom: 20px; left: 20px; height: 398px; width: 360px;", "url": "/block-library/library", "includePaths": [ "**.docx**" ] + }, + { + "id": "asset-library", + "title": "AEM Assets Library", + "environments": [ + "edit" + ], + "url": "/aem-asset-selector", + "isPalette": true, + "includePaths": [ "**.docx**" ], + "paletteRect": "top: auto; bottom: 20px; left: 20px; width:1000px; height:700px" } ] } From f56a7586566df90e373b60fbb64d3500e419cccb Mon Sep 17 00:00:00 2001 From: Satya Deep Maheshwari Date: Sun, 14 May 2023 11:38:01 +0530 Subject: [PATCH 089/149] Fixed typo in AEM Assets integration --- tools/sidekick/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/sidekick/config.json b/tools/sidekick/config.json index 7c3e25f1..2d7209b2 100644 --- a/tools/sidekick/config.json +++ b/tools/sidekick/config.json @@ -16,7 +16,7 @@ "environments": [ "edit" ], - "url": "/aem-asset-selector", + "url": "/aem-assets-selector", "isPalette": true, "includePaths": [ "**.docx**" ], "paletteRect": "top: auto; bottom: 20px; left: 20px; width:1000px; height:700px" From f30f0bcd260047b90cb68627e69b9ba185a416fe Mon Sep 17 00:00:00 2001 From: Satya Deep Maheshwari Date: Sun, 14 May 2023 11:40:04 +0530 Subject: [PATCH 090/149] Revert "Fixed typo in AEM Assets integration" This reverts commit f56a7586566df90e373b60fbb64d3500e419cccb. --- tools/sidekick/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/sidekick/config.json b/tools/sidekick/config.json index 2d7209b2..7c3e25f1 100644 --- a/tools/sidekick/config.json +++ b/tools/sidekick/config.json @@ -16,7 +16,7 @@ "environments": [ "edit" ], - "url": "/aem-assets-selector", + "url": "/aem-asset-selector", "isPalette": true, "includePaths": [ "**.docx**" ], "paletteRect": "top: auto; bottom: 20px; left: 20px; width:1000px; height:700px" From bd9ed42d5fcdcc8662edce684ae7f00a399efa2f Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Mon, 15 May 2023 09:56:33 +0000 Subject: [PATCH 091/149] Generating Screens offline resources --- package-lock.json | 7031 +---------------- .../locations/test-global.manifest.json | 4 +- .../wknd-ordering-kiosk.manifest.json | 4 +- .../north-america/test-us.manifest.json | 4 +- .../us/san-jose/test-founders.manifest.json | 4 +- .../us/san-jose/test-west.manifest.json | 6 +- .../san-jose/west/test-player0.manifest.json | 4 +- .../us/test-san-jose.manifest.json | 4 +- .../global/test-north-america.manifest.json | 4 +- .../locations/test-global.manifest.json | 4 +- screens/channels.json | 20 +- 11 files changed, 52 insertions(+), 7037 deletions(-) diff --git a/package-lock.json b/package-lock.json index c876d028..db1f2afe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6986 +1,8 @@ { "name": "@adobe/helix-project-boilerplate", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "@adobe/helix-project-boilerplate", - "version": "1.0.0", - "license": "Apache License 2.0", - "dependencies": { - "@aem-screens/screens-offlineresources-generator": "0.0.1-B003", - "node-fetch": "^3.3.0" - }, - "devDependencies": { - "@babel/core": "7.18.10", - "@babel/eslint-parser": "7.18.9", - "@esm-bundle/chai": "4.3.4-fix.0", - "@web/test-runner": "0.14.0", - "@web/test-runner-commands": "0.6.4", - "chai": "4.3.6", - "eslint": "8.22.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "sinon": "14.0.0", - "stylelint": "14.10.0", - "stylelint-config-prettier": "9.0.3", - "stylelint-config-standard": "25.0.0" - } - }, - "node_modules/@adobe/helix-shared-git": { - "version": "3.0.0", - "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-adobe-release/@adobe/helix-shared-git/-/helix-shared-git-3.0.0.tgz", - "integrity": "sha512-uynXD2Lewaandb7W/1jnfJYxwN/uzZTRcO2gWNRPSWWprty/WKUenX+z4c8O7pKyxmb5rdcbY6ptiDaYLcwZ7g==", - "dependencies": { - "@adobe/helix-shared-prune": "^1.0.5", - "yaml": "2.2.1" - } - }, - "node_modules/@adobe/helix-shared-git/node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@adobe/helix-shared-prune": { - "version": "1.0.5", - "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-adobe-release/@adobe/helix-shared-prune/-/helix-shared-prune-1.0.5.tgz", - "integrity": "sha512-xvNIA5qxRSYnNAtzikIEbn8SEqnmAdr2NbsonQqTimor5Ie8jstLuIo4wXHzeK2l+Vy9zVvimzGokEkgBslgIg==" - }, - "node_modules/@aem-screens/screens-offlineresources-generator": { - "version": "0.0.1-B003", - "resolved": "https://registry.npmjs.org/@aem-screens/screens-offlineresources-generator/-/screens-offlineresources-generator-0.0.1-B003.tgz", - "integrity": "sha512-nN09vg6/WUD76ieXKclO8L5dKw2psgLj2ISWaP1TSYEavjayZkkt0SkZo8ELWZsHekv2QoFovBFczdcG+oM/Kg==", - "dependencies": { - "@adobe/helix-shared-git": "3.0.0", - "fs-extra": "11.1.0", - "isomorphic-git": "1.21.0", - "node-fetch": "^3.3.0", - "shelljs": "0.8.5" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.10", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", - "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", - "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@esm-bundle/chai": { - "version": "4.3.4-fix.0", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", - "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", - "dev": true, - "dependencies": { - "@types/chai": "^4.2.12" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/babel__code-frame": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", - "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", - "dev": true - }, - "node_modules/@types/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", - "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", - "dev": true - }, - "node_modules/@types/convert-source-map": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", - "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", - "dev": true - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", - "dev": true - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dev": true, - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dev": true, - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@web/browser-logs": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", - "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/config-loader": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", - "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", - "dev": true, - "dependencies": { - "semver": "^7.3.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/config-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@web/dev-server": { - "version": "0.1.34", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", - "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.19", - "@web/dev-server-rollup": "^0.3.19", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.28" - }, - "bin": { - "wds": "dist/bin.js", - "web-dev-server": "dist/bin.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/dev-server-core": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", - "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/dev-server-core/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@web/dev-server-core/node_modules/ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@web/dev-server-rollup": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", - "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", - "dev": true, - "dependencies": { - "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.3.19", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.67.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/parse5-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", - "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/test-runner": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.14.0.tgz", - "integrity": "sha512-9xVKnsviCqXL/xi48l0GpDDfvdczZsKHfEhmZglGMTL+I5viDMAj0GGe7fD9ygJ6UT2+056a3RzyIW5x9lZTDQ==", - "dev": true, - "dependencies": { - "@web/browser-logs": "^0.2.2", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.33", - "@web/test-runner-chrome": "^0.10.7", - "@web/test-runner-commands": "^0.6.3", - "@web/test-runner-core": "^0.10.27", - "@web/test-runner-mocha": "^0.7.5", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "convert-source-map": "^1.7.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.28", - "source-map": "^0.7.3" - }, - "bin": { - "web-test-runner": "dist/bin.js", - "wtr": "dist/bin.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-chrome": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.7.tgz", - "integrity": "sha512-DKJVHhHh3e/b6/erfKOy0a4kGfZ47qMoQRgROxi9T4F9lavEY3E5/MQ7hapHFM2lBF4vDrm+EWjtBdOL8o42tw==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.4.8", - "chrome-launcher": "^0.15.0", - "puppeteer-core": "^13.1.3" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-commands": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.4.tgz", - "integrity": "sha512-opSfIVHj4PsIA/Ah582DKgnmdfY+Xn35FnnYeJ+aBYrM+setOP63McvrY4PuwasictwswHVSzq86qZzmxvXkHw==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.27", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-core": { - "version": "0.10.27", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", - "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.18", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", - "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "istanbul-lib-coverage": "^3.0.0", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-mocha": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", - "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", - "dev": true, - "dependencies": { - "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.20" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-lock": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", - "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "dependencies": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001342", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", - "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-launcher": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", - "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chrome-launcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clean-git-ref": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", - "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==" - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", - "dev": true, - "dependencies": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "dev": true, - "dependencies": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cookies/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true, - "engines": { - "node": ">=12.22" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.981744", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", - "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff3": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", - "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/errorstacks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", - "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-module-lexer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", - "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", - "dev": true - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "ajv": "^6.10.0", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "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" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", - "dev": true, - "dependencies": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-assert/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-assert/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/http-assert/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isomorphic-git": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.21.0.tgz", - "integrity": "sha512-ZqCAUM63CYepA3fB8H7NVyPSiOkgzIbQ7T+QPrm9xtYgQypN9JUJ5uLMjB5iTfomdJf3mdm6aSxjZwnT6ubvEA==", - "dependencies": { - "async-lock": "^1.1.0", - "clean-git-ref": "^2.0.1", - "crc-32": "^1.2.0", - "diff3": "0.0.3", - "ignore": "^5.1.4", - "minimisted": "^2.0.0", - "pako": "^1.0.10", - "pify": "^4.0.1", - "readable-stream": "^3.4.0", - "sha.js": "^2.4.9", - "simple-get": "^4.0.1" - }, - "bin": { - "isogit": "cli.cjs" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "node_modules/keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dev": true, - "dependencies": { - "tsscmp": "1.0.6" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/known-css-properties": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", - "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", - "dev": true - }, - "node_modules/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", - "dev": true, - "dependencies": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "engines": { - "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" - } - }, - "node_modules/koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true - }, - "node_modules/koa-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/koa-etag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", - "dev": true, - "dependencies": { - "etag": "^1.8.1" - } - }, - "node_modules/koa-send": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/koa-send/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/koa-send/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/koa-send/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/koa-static": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/koa-static/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/koa/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loupe": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz", - "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", - "dev": true - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minimisted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", - "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", - "dependencies": { - "minimist": "^1.2.5" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", - "dev": true - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/puppeteer-core": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", - "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", - "dev": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.981744", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.5.0" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-path": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", - "dev": true, - "dependencies": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/resolve-path/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/resolve-path/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/resolve-path/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.78.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", - "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sinon": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", - "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^9.1.2", - "@sinonjs/samsam": "^6.1.1", - "diff": "^5.0.0", - "nise": "^5.1.1", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "node_modules/stylelint": { - "version": "14.10.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz", - "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==", - "dev": true, - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.16", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-prettier": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", - "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true, - "bin": { - "stylelint-config-prettier": "bin/check.js", - "stylelint-config-prettier-check": "bin/check.js" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "stylelint": ">=11.0.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", - "dev": true, - "dependencies": { - "stylelint-config-recommended": "^7.0.0" - }, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "peerDependencies": { - "stylelint": "^14.4.0" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true, - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dev": true, - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/ylru": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, "dependencies": { "@adobe/helix-shared-git": { "version": "3.0.0", @@ -7268,8 +290,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "requires": {} + "dev": true }, "@eslint/eslintrc": { "version": "1.3.0", @@ -7822,8 +843,7 @@ "version": "7.5.8", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -7973,8 +993,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "agent-base": { "version": "6.0.2", @@ -11012,8 +4031,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-selector-parser": { "version": "6.0.10", @@ -11590,21 +4608,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11636,6 +4639,21 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11736,8 +4754,7 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-standard": { "version": "25.0.0", @@ -11752,8 +4769,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -12168,8 +5184,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "requires": {} + "dev": true }, "yallist": { "version": "4.0.0", diff --git a/screens-demo/employee-communications/locations/test-global.manifest.json b/screens-demo/employee-communications/locations/test-global.manifest.json index f2fe6b7c..7458ceea 100644 --- a/screens-demo/employee-communications/locations/test-global.manifest.json +++ b/screens-demo/employee-communications/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494232, + "timestamp": 1684144590284, "entries": [ { "path": "/screens-demo/employee-communications/locations/test-global", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 671f5b63..320c26b6 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709493867, + "timestamp": 1684144589852, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index e271c67f..308e393f 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494384, + "timestamp": 1684144590769, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json index 5fc4aa97..85f153a8 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494677, + "timestamp": 1684144591603, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 3c882334..b73028a5 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,15 +9,15 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709495234, + "timestamp": 1684144593301, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west", - "timestamp": 1661172839000 + "timestamp": 1683702707000 }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index e5ace155..f251d95e 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494954, + "timestamp": 1684144592448, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 234f12ca..0cbda71a 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494817, + "timestamp": 1684144592010, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 662f2b66..f115e66a 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709494528, + "timestamp": 1684144591188, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 63cd0bb1..20ec5467 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1683709495092, + "timestamp": 1684144592852, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global", @@ -17,7 +17,7 @@ }, { "path": "/scripts/scripts.js", - "timestamp": 1683702706000 + "timestamp": 1683774876000 }, { "path": "/styles/styles.css", diff --git a/screens/channels.json b/screens/channels.json index ad9fb548..96ba315f 100644 --- a/screens/channels.json +++ b/screens/channels.json @@ -2,66 +2,66 @@ "channels": [ { "manifestPath": "/screens-demo/wknd-ordering-kiosk.manifest.json", - "lastModified": "2023-05-10T07:48:53.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-ordering-kiosk", "title": "WKND Kiosk", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-ordering-kiosk" }, { "manifestPath": "/screens-demo/employee-communications/locations/test-global.manifest.json", - "lastModified": "2023-05-10T07:11:46.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/employee-communications/locations/test-global", "title": "test-global", "liveUrl": "https://main--wknd--ravverma.hlx.live/screens-demo/employee-communications/locations/test-global" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json", - "lastModified": "2023-05-10T07:11:47.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/test-us", "title": "test-us", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/test-us" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json", - "lastModified": "2023-05-10T07:11:47.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/test-north-america", "title": "test-north-america", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/test-north-america" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json", - "lastModified": "2023-05-10T07:11:46.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders", "title": "test-founder", "liveUrl": "https://main--wknd--ravverma.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json", - "lastModified": "2023-05-10T07:11:47.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose", "title": "test-san-jose", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json", - "lastModified": "2023-05-10T07:11:47.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0", "title": "test-player0", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0" }, { "manifestPath": "/screens-demo/wknd-retail/locations/test-global.manifest.json", - "lastModified": "2023-05-10T07:11:47.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/test-global", "title": "test-global", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/test-global" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json", - "lastModified": "2023-05-10T07:11:46.000Z", + "lastModified": "2023-05-11T03:14:36.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west", "title": "test-west", - "liveUrl": "https://main--wknd--ravverma.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west" + "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west" } ], "metadata": { From 3615d878ddba8c3280d927264aa302d57dfceecd Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Mon, 5 Jun 2023 16:13:47 +0000 Subject: [PATCH 092/149] Generating Screens offline resources --- .../locations/test-global.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../north-america/us/san-jose/test-founders.manifest.json | 4 ++-- .../global/north-america/us/san-jose/test-west.manifest.json | 2 +- .../north-america/us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- screens-demo/wknd-retail/locations/test-global.manifest.json | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/screens-demo/employee-communications/locations/test-global.manifest.json b/screens-demo/employee-communications/locations/test-global.manifest.json index 7458ceea..22951484 100644 --- a/screens-demo/employee-communications/locations/test-global.manifest.json +++ b/screens-demo/employee-communications/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144590284, + "timestamp": 1685981623499, "entries": [ { "path": "/screens-demo/employee-communications/locations/test-global", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 320c26b6..58861eb7 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144589852, + "timestamp": 1685981622821, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 308e393f..0516e12f 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144590769, + "timestamp": 1685981624100, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json index 85f153a8..1263aab9 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144591603, + "timestamp": 1685981625210, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders", - "timestamp": 1661172839000 + "timestamp": 1683702707000 }, { "path": "/scripts/scripts.js", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index b73028a5..2dbf8689 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144593301, + "timestamp": 1685981627166, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index f251d95e..0cdf0de4 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144592448, + "timestamp": 1685981626472, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 0cbda71a..4c627686 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144592010, + "timestamp": 1685981625480, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index f115e66a..8507f489 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144591188, + "timestamp": 1685981624680, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 20ec5467..f98ca8d2 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1684144592852, + "timestamp": 1685981626802, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global", From 78e4f5148b8af5649be59e764f664ea666c3651b Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Mon, 5 Jun 2023 18:59:10 +0000 Subject: [PATCH 093/149] Generating Screens offline resources --- .../locations/test-global.manifest.json | 4 ++-- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../global/north-america/test-us.manifest.json | 4 ++-- .../us/san-jose/test-founders.manifest.json | 4 ++-- .../us/san-jose/test-west.manifest.json | 4 ++-- .../us/san-jose/west/test-player0.manifest.json | 4 ++-- .../north-america/us/test-san-jose.manifest.json | 4 ++-- .../global/test-north-america.manifest.json | 4 ++-- .../locations/test-global.manifest.json | 4 ++-- screens/channels.json | 16 ++++++++-------- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/screens-demo/employee-communications/locations/test-global.manifest.json b/screens-demo/employee-communications/locations/test-global.manifest.json index 22951484..df6fd39f 100644 --- a/screens-demo/employee-communications/locations/test-global.manifest.json +++ b/screens-demo/employee-communications/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981623499, + "timestamp": 1685991548013, "entries": [ { "path": "/screens-demo/employee-communications/locations/test-global", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 58861eb7..fe188111 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981622821, + "timestamp": 1685991547712, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 0516e12f..b9623c44 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981624100, + "timestamp": 1685991548381, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json index 1263aab9..940a396b 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981625210, + "timestamp": 1685991549054, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 2dbf8689..7e51fa3c 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981627166, + "timestamp": 1685991550511, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index 0cdf0de4..05d76cd2 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981626472, + "timestamp": 1685991549824, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 4c627686..9740a0ac 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981625480, + "timestamp": 1685991549439, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 8507f489..2b6580cb 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981624680, + "timestamp": 1685991548755, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index f98ca8d2..6e7eb331 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1685981626802, + "timestamp": 1685991550137, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global", @@ -45,7 +45,7 @@ }, { "path": "/screens-demo/schedule.json", - "timestamp": 1683655515000 + "timestamp": 1685981566000 } ] } \ No newline at end of file diff --git a/screens/channels.json b/screens/channels.json index 96ba315f..6d225883 100644 --- a/screens/channels.json +++ b/screens/channels.json @@ -9,56 +9,56 @@ }, { "manifestPath": "/screens-demo/employee-communications/locations/test-global.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/employee-communications/locations/test-global", "title": "test-global", "liveUrl": "https://main--wknd--ravverma.hlx.live/screens-demo/employee-communications/locations/test-global" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/test-us", "title": "test-us", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/test-us" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/test-north-america", "title": "test-north-america", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/test-north-america" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders", "title": "test-founder", "liveUrl": "https://main--wknd--ravverma.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-founders" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose", "title": "test-san-jose", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0", "title": "test-player0", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0" }, { "manifestPath": "/screens-demo/wknd-retail/locations/test-global.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/test-global", "title": "test-global", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/test-global" }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json", - "lastModified": "2023-05-11T03:14:36.000Z", + "lastModified": "2023-06-05T16:12:46.000Z", "externalId": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west", "title": "test-west", "liveUrl": "https://main--wknd--hlxscreens.hlx.live/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west" From ddb1885e1787ae7b245f0fd166555f753ec83f54 Mon Sep 17 00:00:00 2001 From: ravverma Date: Tue, 6 Jun 2023 12:52:10 +0530 Subject: [PATCH 094/149] [Digital menu board] three zone and wknd theme --- scripts/processjson.js | 23 +++ scripts/scripts.js | 155 +++++++++++++++++ styles/Bungee-Regular.ttf | Bin 0 -> 122080 bytes styles/CabinSketch-Bold.ttf | Bin 0 -> 268404 bytes styles/Poppins-Black.ttf | Bin 0 -> 147708 bytes styles/Poppins-Regular.ttf | Bin 0 -> 154628 bytes styles/styles.css | 325 ++++++++++++++++++++++++++++++++++++ 7 files changed, 503 insertions(+) create mode 100644 scripts/processjson.js create mode 100644 styles/Bungee-Regular.ttf create mode 100644 styles/CabinSketch-Bold.ttf create mode 100644 styles/Poppins-Black.ttf create mode 100644 styles/Poppins-Regular.ttf diff --git a/scripts/processjson.js b/scripts/processjson.js new file mode 100644 index 00000000..ddff2ed0 --- /dev/null +++ b/scripts/processjson.js @@ -0,0 +1,23 @@ +import fetch from 'node-fetch'; + +fetch('https://api.example.com/data') + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error(error)); +fetch('https://main--wknd--hlxscreens.hlx.page/screens-demo/product-list.json') + .then(response => response.json()) + .then(data => { + // Access and process each JSON object + for (const key in data) { + if (typeof data[key] === 'object' && Array.isArray(data[key].data)) { + data[key].data.forEach(obj => { + console.log('Product Name:', obj.product_name); + console.log('Price:', obj.price); + console.log('------------------'); + }); + } + } + }) + .catch(error => { + console.log('Error:', error); + }); diff --git a/scripts/scripts.js b/scripts/scripts.js index da4c81db..9a974658 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -263,7 +263,162 @@ function loadDelayed() { async function loadPage() { await loadEager(document); await loadLazy(document); + await decoreateThreeZoneMenuBoard(document,getMetadata('pos-data')); + await decoreateThreeZoneMenu(document,getMetadata('pos-data')); loadDelayed(); } loadPage(); + +function decoreateThreeZoneMenuBoard(document,posDataUrl){ + if(document.querySelector('.three-zone-menu-board')){ + document.querySelector('body').classList.add('menuboardbody'); + document.querySelector('header').remove(); + var columnscontainer = document.querySelector('.columns-container'); + columnscontainer.className = ''; + var menuboarddiv = document.querySelector('.three-zone-menu-board'); + menuboarddiv.className = ''; + menuboarddiv.classList.add('three-zone-menu-board'); + var childDivs = menuboarddiv.children; + // Iterate over the first-level child div elements and add a class to each + for (var i = 0; i < childDivs.length; i++) { + var div = childDivs[i]; + div.classList.add('menucolumn'); + var menuchildDivs = div.children; + // Append the outer
element to the document body + menuchildDivs[3].className = 'menu-div'; + menuchildDivs[4].className = 'menu-div'; + } + loadMenuItems(childDivs,'soup-menu','soup-menu-right',posDataUrl); + } +} + +function decoreateThreeZoneMenu(document,posDataUrl){ + if(document.querySelector('.three-zone-menu')){ + document.querySelector('body').classList.add('wknd-menuboardbody'); + document.querySelector('header').remove(); + var columnscontainer = document.querySelector('.columns-container'); + columnscontainer.className = ''; + var menuboarddiv = document.querySelector('.three-zone-menu'); + menuboarddiv.className = ''; + menuboarddiv.classList.add('three-zone-menu'); + var childDivs = menuboarddiv.children; + // Iterate over the first-level child div elements and add a class to each + for (var i = 0; i < childDivs.length; i++) { + var div = childDivs[i]; + div.classList.add('wknd-menucolumn'); + var menuchildDivs = div.children; + // Append the outer
element to the document body + menuchildDivs[3].className = 'menu-div'; + menuchildDivs[4].className = 'menu-div'; + } + loadMenuItems(childDivs,'soup-menu-wknd','soup-menu-wknd-right',posDataUrl); + } +} + +function createMenuItems(menuItems,className,start,end){ +// Create the outer
element + var divElement = document.createElement("div"); + + // Create the
Hiking
@@ -68,7 +68,7 @@
-
{MTA1}
+
hiking
Surfing
@@ -80,7 +80,7 @@
-
{MTA3}
+
surfing
Biking
@@ -92,13 +92,13 @@
-
{MTA4}
+
cycling
diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index beb59cd8..24bd8956 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287271714, + "timestamp": 1690296054321, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", - "timestamp": 1690283272000 + "timestamp": 1690296053868 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/screens-demo/media_12593fe66c7eb756c8ca9bc938c4d976a45193076.png?width=750&format=png&optimize=medium", @@ -57,19 +57,19 @@ }, { "path": "/blocks/category/category.js", - "timestamp": 1690277350000 + "timestamp": 1690294310000 }, { "path": "/blocks/category/category.css", - "timestamp": 1690282148000 + "timestamp": 1690294309000 }, { "path": "/blocks/product-listing/product-listing.css", - "timestamp": 1690277350000 + "timestamp": 1690294310000 }, { "path": "/blocks/product-listing/product-listing.js", - "timestamp": 1690277350000 + "timestamp": 1690294310000 }, { "path": "/styles/lazy-styles.css", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 37db3cdf..852ead87 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287268648, + "timestamp": 1690296050270, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/screens-demo/media_19793eb1b14406684e44cf4e3f66cb83e7fa3d8f0.png?width=750&format=png&optimize=medium", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 41e646d8..e894760b 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287268844, + "timestamp": 1690296050614, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", - "timestamp": 1690282777000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 1f2acbc4..907a97ac 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287269733, + "timestamp": 1690296052508, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", - "timestamp": 1690283272000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index d3fd6df7..683d6833 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287269372, + "timestamp": 1690296051701, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", - "timestamp": 1690283272000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index b2da85ce..0a8b9c72 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287269202, + "timestamp": 1690296051277, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", - "timestamp": 1690283272000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 42df89fa..d4f30065 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287269013, + "timestamp": 1690296050935, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", - "timestamp": 1690282777000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 690a80f3..fa86418f 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690287269546, + "timestamp": 1690296052146, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", - "timestamp": 1690283272000 + "timestamp": 1690294309000 }, { "path": "/scripts/scripts.js", @@ -21,7 +21,7 @@ }, { "path": "/styles/styles.css", - "timestamp": 1690275726000 + "timestamp": 1690294310000 }, { "path": "/blocks/screens-looping-content/screens-looping-content.js", diff --git a/screens/channels.json b/screens/channels.json index db6eb16e..431f8ec7 100644 --- a/screens/channels.json +++ b/screens/channels.json @@ -2,7 +2,7 @@ "channels": [ { "manifestPath": "/screens-demo/wknd-ordering-kiosk.manifest.json", - "lastModified": "2023-07-25T10:49:08.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -15,7 +15,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json", - "lastModified": "2023-07-25T10:59:37.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -44,7 +44,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json", - "lastModified": "2023-07-25T10:59:37.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -69,7 +69,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -102,7 +102,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -143,7 +143,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/test-global.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -164,7 +164,7 @@ }, { "manifestPath": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -201,7 +201,7 @@ }, { "manifestPath": "/screens-demo/.manifest.json", - "lastModified": "2023-07-25T10:49:08.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -214,7 +214,7 @@ }, { "manifestPath": "/screens-demo/wknd-cafe-menu.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -227,7 +227,7 @@ }, { "manifestPath": "/screens-demo/wknd-cafe-menuboard.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:11:50.000Z", "hierarchy": [ { "title": "screens-demo", @@ -240,7 +240,7 @@ }, { "manifestPath": "/screens-demo/wknd-kiosk-commerce.manifest.json", - "lastModified": "2023-07-25T11:07:52.000Z", + "lastModified": "2023-07-25T14:40:53.868Z", "hierarchy": [ { "title": "screens-demo", From 0b0cf6a6f39a90058039817cefef5f50a64b3705 Mon Sep 17 00:00:00 2001 From: sandsinh Date: Tue, 25 Jul 2023 19:41:36 +0530 Subject: [PATCH 131/149] fix: adds product-list render from json --- blocks/category/category.css | 2 ++ blocks/category/category.js | 2 +- blocks/product-listing/product-listing.css | 20 +++++++---- blocks/product-listing/product-listing.js | 40 ++++++++++++++++++++++ styles/styles.css | 4 +-- 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/blocks/category/category.css b/blocks/category/category.css index 7cbe054a..5c568ccb 100644 --- a/blocks/category/category.css +++ b/blocks/category/category.css @@ -11,6 +11,8 @@ text-align: center; font-size: bold; text-transform: uppercase; + margin-bottom: 5rem; + margin-top: 5rem; } .category > ul > li { diff --git a/blocks/category/category.js b/blocks/category/category.js index 36fbe4ef..13c377b9 100644 --- a/blocks/category/category.js +++ b/blocks/category/category.js @@ -10,8 +10,8 @@ const onCategoryClick = (event) => { // navigate and fetch data and update the blocks const productListing = document.getElementsByClassName('product-listing')[0]; productListing.textContent = ''; - productListing.setAttribute('category-id', categoryId); productListing.setAttribute('category-name', categoryName); + productListing.setAttribute('category-id', categoryId); onNavigate('product-listing-container'); } diff --git a/blocks/product-listing/product-listing.css b/blocks/product-listing/product-listing.css index 3dbd3eae..ce5e64b0 100644 --- a/blocks/product-listing/product-listing.css +++ b/blocks/product-listing/product-listing.css @@ -40,15 +40,23 @@ .skeleton-grid { display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); - grid-gap: 3rem; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 0.5rem; margin: auto; } .skeleton-grid > div { - width: 250px; - height: 250px; + width: 300px; + height: 300px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - border-radius: 2rem; + border-radius: 1rem; overflow: hidden; -} \ No newline at end of file + display: flex; + justify-content: center; +} + +.skeleton-grid > div img { + max-width: 100%; + max-height: 100%; + display: block; +} diff --git a/blocks/product-listing/product-listing.js b/blocks/product-listing/product-listing.js index a6694526..0b31cc1a 100644 --- a/blocks/product-listing/product-listing.js +++ b/blocks/product-listing/product-listing.js @@ -1,4 +1,6 @@ import { onNavigate } from '../../scripts/scripts.js'; +import { createOptimizedPicture } from '../../scripts/lib-franklin.js'; +let isLoading = false; const getHeaderAndSearch = (heading) => { const headerDiv = document.createElement('div'); @@ -43,6 +45,29 @@ const renderSkeleton = (target) => { target.append(getSkeleton()); } +const getItem = (product) => { + const imgDiv = document.createElement('div'); + const img = new Image(); + img.src = product.image.url; + img.alt = product.image.label; + imgDiv.append(img); + return imgDiv; +} + +const renderItems = (target, products) => { + const heading = target.getAttribute('category-name'); + target.textContent = ''; + target.append(getHeaderAndSearch(heading)); + const productGrid = document.createElement('div'); + productGrid.className = 'skeleton-grid'; + console.log(products); + products.forEach((product) => { + productGrid.append(getItem(product)) + }) + target.append(productGrid); + return; +} + const observer = new MutationObserver(function(mutations) { Promise.all(mutations.map(async (mutation) => { if (mutation.type === "attributes") { @@ -50,6 +75,21 @@ const observer = new MutationObserver(function(mutations) { console.log('Mutation target', mutation.target); renderSkeleton(mutation.target); // fetch data + const categoryId = mutation.target.getAttribute('category-id'); + if(!categoryId) return; + if(isLoading) { + console.log('returning subsequent calls'); + return; + } + isLoading = true; + const rawResponse = await fetch(`https://main--wknd--hlxscreens.hlx.page/defaultData/${categoryId}.json`); + isLoading = false; + if(!rawResponse.ok) { + return; + } + const response = await rawResponse.json(); + console.log(response); + renderItems(mutation.target, response.data.products.items); // execute dom change } })); diff --git a/styles/styles.css b/styles/styles.css index 95eee495..c5a1762c 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -258,7 +258,7 @@ img { @media (min-width: 600px) { main .section { - padding: 64px 32px; + padding: 1rem 1rem; } } @@ -273,7 +273,7 @@ img { } .section > div { - max-width: 1200px; + max-width: 90%; margin: auto; } } From 92873c46968c1864c07169be4ee42caa011d6191 Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Tue, 25 Jul 2023 16:49:50 +0000 Subject: [PATCH 132/149] Generating Screens offline resources --- screens-demo/.manifest.json | 2 +- screens-demo/wknd-cafe-menu.manifest.json | 2 +- screens-demo/wknd-cafe-menuboard.manifest.json | 2 +- screens-demo/wknd-kiosk-commerce.manifest.json | 4 ++-- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../global/north-america/us/san-jose/test-west.manifest.json | 2 +- .../north-america/us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- screens-demo/wknd-retail/locations/test-global.manifest.json | 2 +- screens/channels.json | 2 +- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 58b3b9c1..276c5d57 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296052883, + "timestamp": 1690303787972, "entries": [ { "path": "/screens-demo/.html" diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index c87e6e8f..8cf815a5 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296053320, + "timestamp": 1690303788648, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index 99d26cdc..b20413b4 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296053799, + "timestamp": 1690303789288, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index 24bd8956..33aba282 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,11 +9,11 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296054321, + "timestamp": 1690303790387, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", - "timestamp": 1690296053868 + "timestamp": 1690296059000 }, { "path": "/scripts/scripts.js", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 852ead87..b7e194e4 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296050270, + "timestamp": 1690303784671, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index e894760b..6d6bfbf1 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296050614, + "timestamp": 1690303785162, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 907a97ac..eb123fed 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296052508, + "timestamp": 1690303787486, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index 683d6833..f30a1f6f 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296051701, + "timestamp": 1690303786543, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 0a8b9c72..02e3199a 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296051277, + "timestamp": 1690303786039, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index d4f30065..2e8c3422 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296050935, + "timestamp": 1690303785598, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index fa86418f..fae7ef1b 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690296052146, + "timestamp": 1690303786969, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", diff --git a/screens/channels.json b/screens/channels.json index 431f8ec7..af204dda 100644 --- a/screens/channels.json +++ b/screens/channels.json @@ -240,7 +240,7 @@ }, { "manifestPath": "/screens-demo/wknd-kiosk-commerce.manifest.json", - "lastModified": "2023-07-25T14:40:53.868Z", + "lastModified": "2023-07-25T14:40:59.000Z", "hierarchy": [ { "title": "screens-demo", From 6fd8bdbb299bfad907986d10db865d9d930b892c Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Tue, 25 Jul 2023 17:14:44 +0000 Subject: [PATCH 133/149] Generating Screens offline resources --- screens-demo/.manifest.json | 2 +- screens-demo/wknd-cafe-menu.manifest.json | 2 +- screens-demo/wknd-cafe-menuboard.manifest.json | 2 +- screens-demo/wknd-kiosk-commerce.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../global/north-america/us/san-jose/test-west.manifest.json | 2 +- .../north-america/us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- screens-demo/wknd-retail/locations/test-global.manifest.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 276c5d57..57d67b30 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303787972, + "timestamp": 1690305281813, "entries": [ { "path": "/screens-demo/.html" diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index 8cf815a5..087663bd 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303788648, + "timestamp": 1690305282512, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index b20413b4..b8fa7264 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303789288, + "timestamp": 1690305283161, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index 33aba282..e64f53f2 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303790387, + "timestamp": 1690305284562, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index b7e194e4..25da9c4e 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303784671, + "timestamp": 1690305279060, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 6d6bfbf1..7b496309 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303785162, + "timestamp": 1690305279442, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index eb123fed..b2fcfde9 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303787486, + "timestamp": 1690305281346, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index f30a1f6f..3b277791 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303786543, + "timestamp": 1690305280574, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 02e3199a..866c884f 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303786039, + "timestamp": 1690305280209, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 2e8c3422..c52835f5 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303785598, + "timestamp": 1690305279817, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index fae7ef1b..e8dacb36 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690303786969, + "timestamp": 1690305280977, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", From 1eb227c40fc9ff9eafd64e28a2a2cca037d393fd Mon Sep 17 00:00:00 2001 From: sandsinh Date: Wed, 26 Jul 2023 01:59:28 +0530 Subject: [PATCH 134/149] fix: improves product list and add adnimation in category --- blocks/category/category.css | 19 ++- blocks/category/category.js | 29 +---- blocks/idle-carousel/idle-carousel.js | 11 +- blocks/product-listing/product-listing.css | 87 ++++++++++++- blocks/product-listing/product-listing.js | 122 +++++++++++------- scripts/delayed.js | 124 +++++++++--------- scripts/scripts.js | 143 ++------------------- styles/styles.css | 2 + 8 files changed, 256 insertions(+), 281 deletions(-) diff --git a/blocks/category/category.css b/blocks/category/category.css index 5c568ccb..0e565273 100644 --- a/blocks/category/category.css +++ b/blocks/category/category.css @@ -4,7 +4,7 @@ padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 16px; + grid-gap: 2rem; } .category > h1 { @@ -18,23 +18,27 @@ .category > ul > li { background-color: var(--background-color); position: relative; + animation: pulse 0.5s ease-in 2; + height: 100%; } .category > ul > li > h2 { position: absolute; bottom: 0; left: 50%; - transform: translate(-50%, -50%); + transform: translate(-50%, 0); color: white; text-shadow: 1px 1px 1px lightblue; text-transform: uppercase; + margin: 0; + margin-bottom: 2rem; } .category .category-image { line-height: 0; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); position: relative; - border-radius: 1.5rem; + /* border-radius: 1.5rem; */ overflow: hidden; } @@ -42,7 +46,7 @@ content:""; position: absolute; width: 100%; - height: 40%; + height: 20%; left: 0; bottom: 0; background: linear-gradient(to bottom, lightgrey 0%, black 100%); @@ -51,7 +55,7 @@ .category > ul > li img { width: 100%; - aspect-ratio: 4 / 3; + aspect-ratio: 3 / 4; object-fit: cover; } @@ -59,3 +63,8 @@ aspect-ratio: unset; object-fit: unset; } + +@keyframes pulse{ + 25% {transform: scale(0.99);} + 75% {transform: scale(1.01);} +} \ No newline at end of file diff --git a/blocks/category/category.js b/blocks/category/category.js index 13c377b9..d3302089 100644 --- a/blocks/category/category.js +++ b/blocks/category/category.js @@ -1,5 +1,6 @@ import { createOptimizedPicture } from '../../scripts/lib-franklin.js'; import { onNavigate } from '../../scripts/scripts.js'; + const onCategoryClick = (event) => { console.log('clicked'); console.log(event); @@ -13,11 +14,11 @@ const onCategoryClick = (event) => { productListing.setAttribute('category-name', categoryName); productListing.setAttribute('category-id', categoryId); onNavigate('product-listing-container'); -} +}; export default function decorate(block) { - const heading = block.closest('.section').dataset.heading; - const header = document.createElement("H1"); + const { heading } = block.closest('.section').dataset; + const header = document.createElement('h1'); const text = document.createTextNode(heading); header.appendChild(text); const ul = document.createElement('ul'); @@ -37,29 +38,9 @@ export default function decorate(block) { li.appendChild(imgdiv); li.appendChild(categoryTile); ul.append(li); - }) + }); ul.querySelectorAll('img').forEach((img) => img.closest('picture').replaceWith(createOptimizedPicture(img.src, img.alt, false, [{ width: '750' }]))); block.textContent = ''; block.append(header); block.append(ul); - - // const buttons = document.createElement('div'); - // buttons.className = 'carousel-buttons'; - // [...block.children].forEach((row, i) => { - // const classes = ['image', 'text']; - // classes.forEach((e, j) => { - // row.children[j].classList.add(`carousel-${e}`); - // }); - // /* buttons */ - // const button = document.createElement('button'); - // button.title = 'Carousel Nav'; - // if (!i) button.classList.add('selected'); - // button.addEventListener('click', () => { - // block.scrollTo({ top: 0, left: row.offsetLeft - row.parentNode.offsetLeft, behavior: 'smooth' }); - // [...buttons.children].forEach((r) => r.classList.remove('selected')); - // button.classList.add('selected'); - // }); - // buttons.append(button); - // }); - // block.parentElement.append(buttons); } diff --git a/blocks/idle-carousel/idle-carousel.js b/blocks/idle-carousel/idle-carousel.js index b7d6db2e..7664baed 100644 --- a/blocks/idle-carousel/idle-carousel.js +++ b/blocks/idle-carousel/idle-carousel.js @@ -17,12 +17,11 @@ export default async function decorate(block) { const sequenceElement = document.createElement('div'); sequenceElement.classList.add('sequence-element', 'fadeIn'); sequenceElement.setAttribute('duration', carouselElement.children[2].textContent); - let media; - if(type === 'img') { + let media; + if (type === 'img') { media = carouselElement.querySelector('img'); media.classList.add('sequence-element-video'); - } - else { + } else { const url = carouselElement.children[1].textContent; media = createVideoElement(url, type); } @@ -43,8 +42,8 @@ export default async function decorate(block) { // svg.appendChild(newElement); // tooltip.append(svg); const handClick = new Image(); - handClick.src = "https://main--wknd--hlxscreens.hlx.live/screens-demo/media_13828d4ce2feb1b173bec8680847539ad592ee955.png"; + handClick.src = 'https://main--wknd--hlxscreens.hlx.live/screens-demo/media_13828d4ce2feb1b173bec8680847539ad592ee955.png'; tooltip.append(handClick); tooltip.append('Touch Me!'); block.append(tooltip); -} \ No newline at end of file +} diff --git a/blocks/product-listing/product-listing.css b/blocks/product-listing/product-listing.css index ce5e64b0..0d36535a 100644 --- a/blocks/product-listing/product-listing.css +++ b/blocks/product-listing/product-listing.css @@ -40,23 +40,96 @@ .skeleton-grid { display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 0.5rem; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + grid-gap: 1rem; + margin: auto; +} + +.product-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + grid-gap: 1rem; margin: auto; } .skeleton-grid > div { - width: 300px; - height: 300px; + width: 250px; + height: 350px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - border-radius: 1rem; - overflow: hidden; + /* border-radius: 1rem; */ + /* overflow: hidden; */ + /* display: flex; */ + /* justify-content: center; */ + /* margin: 0 auto; */ +} + +.product { + min-width: 250px; + min-height: 300px; + max-width: 100%; + max-height: 100%; display: flex; + flex-direction: column; + background: white; + /* padding: 1rem 2rem; */ + background: linear-gradient(to bottom, rgb(238, 238, 238), white 50%); +} + +.product .product-img { + width: 225px; + height: 300px; + /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */ + /* border-radius: 1rem; */ + /* overflow: hidden; */ + /* display: flex; */ justify-content: center; + margin: 0 auto; } -.skeleton-grid > div img { +.product .product-img img { + width: 100%; + aspect-ratio: 1 / 1; + object-fit: contain; +} + +.skeleton-grid > div > div img { max-width: 100%; max-height: 100%; display: block; } + + +.home { + position: fixed; + width: 2.5rem; + height: 2.5rem; + top: 3rem; + left: 3rem; + border-radius: 50%; +} + +.product-details { + display: flex; + flex-direction: column; + text-align: left; + color: black; + font-size: 1rem; + font-weight: bold; + white-space: nowrap; + max-width: 250px; + width: 100%; +} + +.product-details span { + display: inline-block; + white-space: normal; + padding-left: 1rem; +} + +.product-details span:nth-child(1) { + padding-top: 1rem; +} + +.header-search { + margin-bottom: 3rem; +} \ No newline at end of file diff --git a/blocks/product-listing/product-listing.js b/blocks/product-listing/product-listing.js index 0b31cc1a..a33fd5f3 100644 --- a/blocks/product-listing/product-listing.js +++ b/blocks/product-listing/product-listing.js @@ -1,102 +1,138 @@ import { onNavigate } from '../../scripts/scripts.js'; -import { createOptimizedPicture } from '../../scripts/lib-franklin.js'; + let isLoading = false; +const homeButtonClick = () => { + onNavigate('category-container'); +}; + const getHeaderAndSearch = (heading) => { const headerDiv = document.createElement('div'); - const header = document.createElement("H1"); + headerDiv.className = 'header-search'; + const header = document.createElement('H1'); const text = document.createTextNode(heading); header.appendChild(text); headerDiv.append(header); - const formContainer = document.createElement('div'); - formContainer.className = 'form-container'; - const form = document.createElement('form'); - form.className = 'form'; - const inputField = document.createElement('input'); - inputField.setAttribute('id', 'search'); - inputField.className = 'input'; - const searchButton = document.createElement('button'); - searchButton.className = 'search-results'; - searchButton.textContent = 'search'; - form.append(inputField); - form.append(searchButton); - formContainer.append(form); - headerDiv.append(formContainer); + // search bar + // const formContainer = document.createElement('div'); + // formContainer.className = 'form-container'; + // const form = document.createElement('form'); + // form.className = 'form'; + // const inputField = document.createElement('input'); + // inputField.setAttribute('id', 'search'); + // inputField.className = 'input'; + // const searchButton = document.createElement('button'); + // searchButton.className = 'search-results'; + // searchButton.textContent = 'search'; + // form.append(inputField); + // form.append(searchButton); + // formContainer.append(form); + // headerDiv.append(formContainer); + // Home button + const imgDiv = document.createElement('div'); + imgDiv.className = 'home'; + const backSvg = new Image(); + backSvg.src = 'https://main--wknd--hlxscreens.hlx.live/screens-demo/left-arrow-svgrepo-com.svg'; + backSvg.alt = 'Go Back'; + imgDiv.append(backSvg); + imgDiv.addEventListener('click', homeButtonClick); + headerDiv.append(imgDiv); return headerDiv; -} +}; const getSkeleton = () => { const skeletonGrid = document.createElement('div'); skeletonGrid.className = 'skeleton-grid'; const times = 8; - for(let id = 0; id < times; id++){ + for (let id = 0; id < times; id += 1) { const skeletonDiv = document.createElement('div'); skeletonDiv.className = 'skeleton'; skeletonDiv.setAttribute('id', id); skeletonGrid.append(skeletonDiv); } return skeletonGrid; -} +}; const renderSkeleton = (target) => { const heading = target.getAttribute('category-name'); target.textContent = ''; target.append(getHeaderAndSearch(heading)); target.append(getSkeleton()); -} +}; + +const getDetails = (product) => { + const details = document.createElement('div'); + details.className = 'product-details'; + const title = document.createElement('span'); + title.textContent = product.name; + const price = document.createElement('span'); + price.textContent = `Starts at $${product.price_range.minimum_price.final_price.value}`; + details.append(title); + details.append(price); + return details; +}; const getItem = (product) => { + const productDiv = document.createElement('div'); + productDiv.className = 'product'; const imgDiv = document.createElement('div'); + imgDiv.className = 'product-img'; + imgDiv.setAttribute('id', product.sku); const img = new Image(); img.src = product.image.url; img.alt = product.image.label; imgDiv.append(img); - return imgDiv; -} + productDiv.append(getDetails(product)); + productDiv.append(imgDiv); + return productDiv; +}; const renderItems = (target, products) => { const heading = target.getAttribute('category-name'); target.textContent = ''; target.append(getHeaderAndSearch(heading)); const productGrid = document.createElement('div'); - productGrid.className = 'skeleton-grid'; + productGrid.className = 'product-grid'; console.log(products); products.forEach((product) => { - productGrid.append(getItem(product)) - }) + productGrid.append(getItem(product)); + }); target.append(productGrid); - return; -} +}; -const observer = new MutationObserver(function(mutations) { +const observer = new MutationObserver((mutations) => { Promise.all(mutations.map(async (mutation) => { - if (mutation.type === "attributes") { - mutation.target; + if (mutation.type === 'attributes') { console.log('Mutation target', mutation.target); - renderSkeleton(mutation.target); - // fetch data const categoryId = mutation.target.getAttribute('category-id'); - if(!categoryId) return; - if(isLoading) { + if (!categoryId) return; + if (isLoading) { console.log('returning subsequent calls'); return; } + renderSkeleton(mutation.target); + // fetch data isLoading = true; - const rawResponse = await fetch(`https://main--wknd--hlxscreens.hlx.page/defaultData/${categoryId}.json`); - isLoading = false; - if(!rawResponse.ok) { - return; + try { + const rawResponse = await fetch(`https://main--wknd--hlxscreens.hlx.page/defaultData/${categoryId}.json`); + if (!rawResponse.ok) { + return; + } + console.log('ok response'); + // execute dom change + const response = await rawResponse.json(); + console.log(response); + renderItems(mutation.target, response.data.products.items); + } catch (err) { + console.log('loading failed'); } - const response = await rawResponse.json(); - console.log(response); - renderItems(mutation.target, response.data.products.items); - // execute dom change + isLoading = false; } })); }); export default function decorate(block) { observer.observe(block, { - attributes: true //configure it to listen to attribute changes + attributes: true, // configure it to listen to attribute changes }); block.textContent = ''; } diff --git a/scripts/delayed.js b/scripts/delayed.js index 4ce7bee8..34c01892 100644 --- a/scripts/delayed.js +++ b/scripts/delayed.js @@ -1,49 +1,51 @@ // eslint-disable-next-line import/no-cycle import { sampleRUM } from './lib-franklin.js'; +// eslint-disable-next-line import/no-cycle +import { onNavigate } from './scripts.js'; + // Core Web Vitals RUM collection sampleRUM('cwv'); -import { onNavigate } from './scripts.js'; - // add more delayed functionality here function playVideo(divWrappingVideo) { - divWrappingVideo.firstElementChild.muted = true; - setTimeout(() => { - divWrappingVideo.firstElementChild.play(); - }, 300); + divWrappingVideo.firstElementChild.muted = true; + setTimeout(() => { + divWrappingVideo.firstElementChild.play(); + }, 300); } function stopVideo(divWrappingVideo) { - divWrappingVideo.firstElementChild.pause(); - divWrappingVideo.firstElementChild.load(); + divWrappingVideo.firstElementChild.pause(); + divWrappingVideo.firstElementChild.load(); } -function deactivateCurrentElement(divWrapping){ - if(divWrapping.classList.contains('active')) { - divWrapping.classList.remove('active'); - } - if(divWrapping.querySelectorAll('img').length === 0){ - stopVideo(divWrapping); - } +function deactivateCurrentElement(divWrapping) { + if (divWrapping.classList.contains('active')) { + divWrapping.classList.remove('active'); + } + if (divWrapping.querySelectorAll('img').length === 0) { + stopVideo(divWrapping); + } } -function activateNextElement(divWrapping){ - if(!divWrapping.classList.contains('active')) divWrapping.classList.add('active'); - if(divWrapping.querySelectorAll('img').length === 0){ - playVideo(divWrapping); - } +function activateNextElement(divWrapping) { + if (!divWrapping.classList.contains('active')) divWrapping.classList.add('active'); + if (divWrapping.querySelectorAll('img').length === 0) { + playVideo(divWrapping); + } } let carouselTimeout; let currentPlaying = 0; +let idleTimer; function handleTransition(sequence) { deactivateCurrentElement(sequence.children[currentPlaying], currentPlaying); currentPlaying += 1; - if(currentPlaying === sequence.childElementCount){ - currentPlaying = 0; + if (currentPlaying === sequence.childElementCount) { + currentPlaying = 0; } activateNextElement(sequence.children[currentPlaying]); const switchTimeout = sequence.children[currentPlaying].getAttribute('duration') || 8000; @@ -52,52 +54,52 @@ function handleTransition(sequence) { } function startCarousel(sequence) { - sequence.classList.add('idle'); - currentPlaying = 0; - activateNextElement(sequence.children[currentPlaying]); - const switchTimeout = sequence.children[currentPlaying].getAttribute('duration') || 8000; - console.log(switchTimeout); - carouselTimeout = setTimeout(handleTransition, switchTimeout, sequence); -} - -function idleHandler(){ - const carousels = document.querySelectorAll('.sequence'); - carousels.forEach((sequence) => { - if (!sequence.classList.contains('idle')) { - onNavigate('idle-carousel-container'); - startCarousel(sequence); - } - }); + sequence.classList.add('idle'); + currentPlaying = 0; + activateNextElement(sequence.children[currentPlaying]); + const switchTimeout = sequence.children[currentPlaying].getAttribute('duration') || 8000; + console.log(switchTimeout); + carouselTimeout = setTimeout(handleTransition, switchTimeout, sequence); } -function stopCarousel(sequence) { - sequence.classList.remove('idle'); - for(let item of sequence.children){ - deactivateCurrentElement(item); +function idleHandler() { + const carousels = document.querySelectorAll('.sequence'); + carousels.forEach((sequence) => { + if (!sequence.classList.contains('idle')) { + onNavigate('idle-carousel-container'); + startCarousel(sequence); } + }); } -function interactionEventHandler(){ - const carousels = document.querySelectorAll('.sequence'); - carousels.forEach((sequence) => { - if (sequence.classList.contains('idle')) { - onNavigate('category-container'); - stopCarousel(sequence); - clearTimeout(carouselTimeout); - } - }); +function stopCarousel(sequence) { + sequence.classList.remove('idle'); + // eslint-disable-next-line no-restricted-syntax + for (const item of sequence.children) { + deactivateCurrentElement(item); + } } -let activityDetector = () => { - idleHandler(); - const resetTimer = () => { - interactionEventHandler(); - clearTimeout(idleTimer); - idleTimer = setTimeout(idleHandler,80000); +function interactionEventHandler() { + const carousels = document.querySelectorAll('.sequence'); + carousels.forEach((sequence) => { + if (sequence.classList.contains('idle')) { + onNavigate('category-container'); + stopCarousel(sequence); + clearTimeout(carouselTimeout); } - let idleTimer; - window.onload = resetTimer; - document.onclick = resetTimer; - document.onkeydown = resetTimer; + }); } + +const activityDetector = () => { + idleHandler(); + const resetTimer = () => { + interactionEventHandler(); + clearTimeout(idleTimer); + idleTimer = setTimeout(idleHandler, 80000); + }; + window.onload = resetTimer; + document.onclick = resetTimer; + document.onkeydown = resetTimer; +}; activityDetector(); diff --git a/scripts/scripts.js b/scripts/scripts.js index b22c9da9..39eaf2f3 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -269,113 +269,7 @@ async function loadPage() { loadPage(); -function decoreateThreeZoneMenuBoard(document,posDataUrl){ - if(document.querySelector('.three-zone-menu-board')){ - document.querySelector('body').classList.add('menuboardbody'); - document.querySelector('header').remove(); - var columnscontainer = document.querySelector('.columns-container'); - columnscontainer.className = ''; - var menuboarddiv = document.querySelector('.three-zone-menu-board'); - menuboarddiv.className = ''; - menuboarddiv.classList.add('three-zone-menu-board'); - var childDivs = menuboarddiv.children; - // Iterate over the first-level child div elements and add a class to each - for (var i = 0; i < childDivs.length; i++) { - var div = childDivs[i]; - div.classList.add('menucolumn'); - var menuchildDivs = div.children; - // Append the outer
element to the document body - menuchildDivs[3].className = 'menu-div'; - menuchildDivs[4].className = 'menu-div'; - } - loadMenuItems(childDivs,'soup-menu','soup-menu-right',posDataUrl); - } -} - -function decoreateThreeZoneMenu(document,posDataUrl){ - if(document.querySelector('.three-zone-menu')){ - document.querySelector('body').classList.add('wknd-menuboardbody'); - document.querySelector('header').remove(); - var columnscontainer = document.querySelector('.columns-container'); - columnscontainer.className = ''; - var menuboarddiv = document.querySelector('.three-zone-menu'); - menuboarddiv.className = ''; - menuboarddiv.classList.add('three-zone-menu'); - var childDivs = menuboarddiv.children; - // Iterate over the first-level child div elements and add a class to each - for (var i = 0; i < childDivs.length; i++) { - var div = childDivs[i]; - div.classList.add('wknd-menucolumn'); - var menuchildDivs = div.children; - // Append the outer
element to the document body - menuchildDivs[3].className = 'menu-div'; - menuchildDivs[4].className = 'menu-div'; - } - loadMenuItems(childDivs,'soup-menu-wknd','soup-menu-wknd-right',posDataUrl); - } -} - -function createMenuItems(menuItems,className,start,end){ -// Create the outer
element - var divElement = document.createElement("div"); - - // Create the
    element with class "soup-menu" - var ulElement = document.createElement("ul"); - ulElement.className = className; - - // Iterate over the soup items array - for (var j = start; j < end; j++) { - - if(menuItems[j].availability === "true"){ - - var menuItem = menuItems[j]; - - // Create the
  • element - var liElement = document.createElement("li"); - - // Create the

    element for the soup name - var nameElement = document.createElement("p"); - nameElement.className = "name"; - nameElement.textContent = menuItem.product_name; - - // Create the element for the seperator - var separator = document.createElement("span"); - separator.className = "separator"; - - - // Create the element for the soup price - var priceElement = document.createElement("span"); - priceElement.className = "price"; - priceElement.textContent = '$'+menuItem.price; - - //nameElement.style.display = "inline"; - //priceElement.style.display = "inline"; - // Append the name and price elements to the

  • element - liElement.appendChild(nameElement); - liElement.appendChild(separator); - liElement.appendChild(priceElement); - - var liElementDesciption = document.createElement("li"); - var descriptionElement = document.createElement("span"); - descriptionElement.className = "description"; - descriptionElement.textContent = menuItem.description; - liElementDesciption.appendChild(descriptionElement); - - - // Append the
  • element to the
      element - ulElement.appendChild(liElement); - ulElement.appendChild(liElementDesciption); - } - } - - // Append the
        element to the outer
        element - divElement.appendChild(ulElement); - - return divElement; -} - - - /*async function getMenuItems(menuName) { +/* async function getMenuItems(menuName) { try { const response = await fetch('http://localhost:3000/screens-demo/product-list.json'); const data = await response.json(); @@ -384,34 +278,11 @@ function createMenuItems(menuItems,className,start,end){ } catch (error) { console.log('Error:', error); } - }*/ - - - function loadMenuItems(childDivs,className,classNameRight,posDataUrl){ - fetch(posDataUrl) - .then(response => response.json()) - .then(data => { - for (var i = 0; i < childDivs.length; i++) { - var div = childDivs[i]; - var menuchildDivs = div.children; - var menuName = menuchildDivs[1].innerText.replace(/\s/g, "").toLowerCase(); - var picturediv = menuchildDivs[3].children[0]; - var length = data[menuName].data.length; - var start = 0; - var mid = length/2; - var end = length; - menuchildDivs[3].insertBefore(createMenuItems(data[menuName].data,className,start,mid),picturediv); - menuchildDivs[4].append(createMenuItems(data[menuName].data,classNameRight,mid,end)); - } - }) - .catch(error => { - console.log('Error:', error); - }); - } + } */ // Orchestrator -export function onNavigate(pathName){ +export function onNavigate(pathName) { // window.history.pushState( // {}, // pathName, @@ -419,15 +290,17 @@ export function onNavigate(pathName){ // ) const allSections = document.getElementsByClassName('section'); console.log(allSections); - for(let item of allSections){ + // eslint-disable-next-line no-restricted-syntax + for (const item of allSections) { item.classList.remove('displaySection'); } const section = document.getElementsByClassName(`section ${pathName}`); console.log(section, pathName); + // eslint-disable-next-line no-unused-expressions section && section.length > 0 && section[0].classList.add('displaySection'); } - /* +/* // Access and process each JSON object for (const key in data) { console.log(key); @@ -438,4 +311,4 @@ export function onNavigate(pathName){ console.log('------------------'); }); } - }*/ \ No newline at end of file + } */ diff --git a/styles/styles.css b/styles/styles.css index c5a1762c..7aa2b04a 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -75,6 +75,8 @@ header { main { text-align: var(--default-text-align); + background: linear-gradient(to right bottom, #007185, lightblue, white); + min-height: 100vh; } .hidden { From 9430f149210edbb6e1303a7925303e1c3a361fcb Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Tue, 25 Jul 2023 21:48:14 +0000 Subject: [PATCH 135/149] Generating Screens offline resources --- screens-demo/.manifest.json | 2 +- screens-demo/wknd-cafe-menu.manifest.json | 2 +- screens-demo/wknd-cafe-menuboard.manifest.json | 2 +- screens-demo/wknd-kiosk-commerce.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../global/north-america/us/san-jose/test-west.manifest.json | 2 +- .../north-america/us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- screens-demo/wknd-retail/locations/test-global.manifest.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 57d67b30..366692c8 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305281813, + "timestamp": 1690321692702, "entries": [ { "path": "/screens-demo/.html" diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index 087663bd..a536e655 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305282512, + "timestamp": 1690321693200, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index b8fa7264..cbbcaf8a 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305283161, + "timestamp": 1690321693585, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index e64f53f2..632dac51 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305284562, + "timestamp": 1690321694388, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 25da9c4e..9d564573 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305279060, + "timestamp": 1690321690782, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 7b496309..44c2398c 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305279442, + "timestamp": 1690321691031, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index b2fcfde9..61916aed 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305281346, + "timestamp": 1690321692325, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index 3b277791..b6d289b2 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305280574, + "timestamp": 1690321691820, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 866c884f..1dd973b4 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305280209, + "timestamp": 1690321691572, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index c52835f5..0f2c86a6 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305279817, + "timestamp": 1690321691301, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index e8dacb36..01088934 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690305280977, + "timestamp": 1690321692087, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", From 3999845619c575861ecb2fac52790abecb02a5f3 Mon Sep 17 00:00:00 2001 From: sandsinh Date: Wed, 26 Jul 2023 03:37:28 +0530 Subject: [PATCH 136/149] feat: initialize product detail page --- blocks/product-detail/product-detail.css | 52 +++++++++++++++ blocks/product-detail/product-detail.js | 77 ++++++++++++++++++++++ blocks/product-listing/product-listing.css | 2 +- blocks/product-listing/product-listing.js | 20 ++++++ 4 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 blocks/product-detail/product-detail.css create mode 100644 blocks/product-detail/product-detail.js diff --git a/blocks/product-detail/product-detail.css b/blocks/product-detail/product-detail.css new file mode 100644 index 00000000..16118cdc --- /dev/null +++ b/blocks/product-detail/product-detail.css @@ -0,0 +1,52 @@ + +.home-btn { + position: fixed; + display: flex; + width: 2.5rem; + height: 2.5rem; + top: 8rem; + left: 3rem; + border-radius: 50%; + white-space: nowrap; +} + +.home-btn span { + margin-left: 0.5rem; +} + +.back-btn { + position: fixed; + display: flex; + width: 2.5rem; + height: 2.5rem; + top: 3rem; + left: 3rem; + border-radius: 50%; + white-space: nowrap; +} + +.back-btn span { + margin-left: 0.5rem; +} + +.product-info { + margin-top: 5rem; + text-align: center; +} + +.product-info .product-info-img { + width: 225px; + height: 300px; + /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */ + /* border-radius: 1rem; */ + /* overflow: hidden; */ + /* display: flex; */ + justify-content: center; + margin: 0 auto; +} + +.product-info .product-info-img img { + width: 100%; + aspect-ratio: 3 / 4; + object-fit: contain; +} diff --git a/blocks/product-detail/product-detail.js b/blocks/product-detail/product-detail.js new file mode 100644 index 00000000..68aaecc9 --- /dev/null +++ b/blocks/product-detail/product-detail.js @@ -0,0 +1,77 @@ +import { onNavigate } from '../../scripts/scripts.js'; + +let isLoading = false; +// const renderSkeleton = () => document.createElement('div'); +const backButtonClick = () => { + const productListing = document.getElementsByClassName('product-listing')[0]; + productListing.setAttribute('update', true); + onNavigate('product-listing-container'); +}; + +const homeButtonClick = () => { + onNavigate('category-container'); +}; + +const navigationButton = (className, url, callback, alt) => { + const navigationBtn = document.createElement('div'); + navigationBtn.className = className; + const btnSVG = new Image(); + btnSVG.src = url; + btnSVG.alt = alt || 'btn'; + navigationBtn.append(btnSVG); + const btnTitle = document.createElement('span'); + btnTitle.textContent = alt; + navigationBtn.append(btnTitle); + navigationBtn.addEventListener('click', callback); + return navigationBtn; +}; + +const renderProduct = (target, product) => { + const productInfo = document.createElement('div'); + productInfo.className = 'product-info'; + const productTitle = document.createElement('div'); + productTitle.textContent = product.name; + const productImgDiv = document.createElement('div'); + productImgDiv.className = 'product-info-img'; + const productImg = new Image(); + productImg.src = product.image.url; + productImg.alt = 'product-info-img'; + productImgDiv.append(productImg); + productInfo.append(productTitle); + productInfo.append(productImgDiv); + target.textContent = ''; + const backButtonDiv = navigationButton('back-btn', 'https://main--wknd--hlxscreens.hlx.live/screens-demo/left-arrow-svgrepo-com.svg', backButtonClick, 'GO BACK'); + const homeButtonDiv = navigationButton('home-btn', 'https://main--wknd--hlxscreens.hlx.live/screens-demo/home-icon-silhouette-svgrepo-com.svg', homeButtonClick, 'GO HOME'); + target.append(backButtonDiv); + target.append(homeButtonDiv); + target.append(productInfo); +}; + +const observer = new MutationObserver((mutations) => { + Promise.all(mutations.map(async (mutation) => { + if (mutation.type === 'attributes') { + console.log('Mutation target', mutation.target); + const productSKU = mutation.target.getAttribute('sku'); + const product = mutation.target.dataset?.object && JSON.parse(mutation.target.dataset.object); + if (!productSKU || !product) return; + if (isLoading) { + console.log('returning subsequent calls'); + return; + } + // renderSkeleton(product); + // fetch data + isLoading = true; + // fetch from graphql apis + const response = product; + console.log(response); + renderProduct(mutation.target, response); + isLoading = false; + } + })); +}); +export default function decorate(block) { + observer.observe(block, { + attributes: true, // configure it to listen to attribute changes + }); + block.textContent = ''; +} diff --git a/blocks/product-listing/product-listing.css b/blocks/product-listing/product-listing.css index 0d36535a..475efdc3 100644 --- a/blocks/product-listing/product-listing.css +++ b/blocks/product-listing/product-listing.css @@ -88,7 +88,7 @@ .product .product-img img { width: 100%; - aspect-ratio: 1 / 1; + aspect-ratio: 3 / 4; object-fit: contain; } diff --git a/blocks/product-listing/product-listing.js b/blocks/product-listing/product-listing.js index a33fd5f3..6658420b 100644 --- a/blocks/product-listing/product-listing.js +++ b/blocks/product-listing/product-listing.js @@ -6,6 +6,23 @@ const homeButtonClick = () => { onNavigate('category-container'); }; +const onProductClick = (event) => { + console.log(event.currentTarget); + const selectedProductSKU = event.currentTarget.getAttribute('sku'); + if (!selectedProductSKU) { + return; + } + const selectedProduct = event.currentTarget.dataset?.object + && JSON.parse(event.currentTarget.dataset.object); + console.log(selectedProductSKU, selectedProduct); + if (!selectedProduct) return; + const productDetail = document.getElementsByClassName('product-detail')[0]; + productDetail.textContent = ''; + productDetail.setAttribute('sku', selectedProductSKU); + productDetail.setAttribute('data-object', JSON.stringify(selectedProduct)); + onNavigate('product-detail-container'); +}; + const getHeaderAndSearch = (heading) => { const headerDiv = document.createElement('div'); headerDiv.className = 'header-search'; @@ -75,6 +92,9 @@ const getDetails = (product) => { const getItem = (product) => { const productDiv = document.createElement('div'); productDiv.className = 'product'; + productDiv.setAttribute('sku', product.sku); + productDiv.setAttribute('data-object', JSON.stringify(product)); + productDiv.addEventListener('click', onProductClick); const imgDiv = document.createElement('div'); imgDiv.className = 'product-img'; imgDiv.setAttribute('id', product.sku); From 72b785ab3e11d119bf7e9382e2e43e80405ad489 Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Wed, 26 Jul 2023 06:02:11 +0000 Subject: [PATCH 137/149] Generating Screens offline resources --- screens-demo/.manifest.json | 2 +- screens-demo/wknd-cafe-menu.manifest.json | 2 +- screens-demo/wknd-cafe-menuboard.manifest.json | 2 +- screens-demo/wknd-kiosk-commerce.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../global/north-america/us/san-jose/test-west.manifest.json | 2 +- .../north-america/us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- screens-demo/wknd-retail/locations/test-global.manifest.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 366692c8..9a33384a 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321692702, + "timestamp": 1690351330078, "entries": [ { "path": "/screens-demo/.html" diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index a536e655..d845ee2b 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321693200, + "timestamp": 1690351330622, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index cbbcaf8a..449f8dbc 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321693585, + "timestamp": 1690351331148, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index 632dac51..453b58ad 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321694388, + "timestamp": 1690351331827, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 9d564573..5137deb9 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321690782, + "timestamp": 1690351327699, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 44c2398c..1f629383 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321691031, + "timestamp": 1690351328009, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 61916aed..5cd20298 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321692325, + "timestamp": 1690351329653, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index b6d289b2..d33faa34 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321691820, + "timestamp": 1690351328963, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index 1dd973b4..d99d18fc 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321691572, + "timestamp": 1690351328655, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 0f2c86a6..1426d7fa 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321691301, + "timestamp": 1690351328311, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 01088934..858a68cf 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690321692087, + "timestamp": 1690351329302, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", From 265a6f66ce2cf057590f5b597308c1f1a2c6bdcd Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Wed, 26 Jul 2023 07:23:05 +0000 Subject: [PATCH 138/149] Generating Screens offline resources --- screens-demo/.manifest.json | 14 +++++++++++++- screens-demo/wknd-cafe-menu.manifest.json | 10 +++++++++- screens-demo/wknd-cafe-menuboard.manifest.json | 14 +++++++++++++- screens-demo/wknd-kiosk-commerce.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../global/north-america/test-us.manifest.json | 14 +++++++++++++- .../us/san-jose/test-west.manifest.json | 14 +++++++++++++- .../us/san-jose/west/test-player0.manifest.json | 14 +++++++++++++- .../north-america/us/test-san-jose.manifest.json | 14 +++++++++++++- .../global/test-north-america.manifest.json | 14 +++++++++++++- .../locations/test-global.manifest.json | 14 +++++++++++++- 11 files changed, 115 insertions(+), 11 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 9a33384a..8131f266 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351330078, + "timestamp": 1690356185052, "entries": [ { "path": "/screens-demo/.html" @@ -46,6 +46,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -54,6 +62,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index d845ee2b..5644f932 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351330622, + "timestamp": 1690356185295, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", @@ -55,6 +55,10 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -63,6 +67,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index 449f8dbc..2673ce32 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351331148, + "timestamp": 1690356185560, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", @@ -55,6 +55,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -63,6 +71,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index 453b58ad..ced5366e 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351331827, + "timestamp": 1690356185817, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 5137deb9..41784c97 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351327699, + "timestamp": 1690356183759, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index 1f629383..e4ad19ce 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351328009, + "timestamp": 1690356183911, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 5cd20298..3d3435b2 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351329653, + "timestamp": 1690356184793, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index d33faa34..0088765d 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351328963, + "timestamp": 1690356184487, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index d99d18fc..ecfe57e2 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351328655, + "timestamp": 1690356184257, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index 1426d7fa..a666e4c5 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351328311, + "timestamp": 1690356184106, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 858a68cf..10f3b46a 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690351329302, + "timestamp": 1690356184636, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", @@ -31,6 +31,14 @@ "path": "/blocks/screens-looping-content/screens-looping-content.css", "timestamp": 1686036191000 }, + { + "path": "/blocks/columns/columns.js", + "timestamp": 1686036189000 + }, + { + "path": "/blocks/columns/columns.css", + "timestamp": 1686036189000 + }, { "path": "/styles/lazy-styles.css", "timestamp": 1686036193000 @@ -39,6 +47,10 @@ "path": "/scripts/delayed.js", "timestamp": 1690277350000 }, + { + "path": "/tools/preview/preview.js", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 From 1f851afcc751ea059246dc0d30ae65f813768a76 Mon Sep 17 00:00:00 2001 From: "helix-bot[bot]" <> Date: Wed, 26 Jul 2023 07:28:20 +0000 Subject: [PATCH 139/149] Generating Screens offline resources --- screens-demo/.manifest.json | 2 +- screens-demo/wknd-cafe-menu.manifest.json | 2 +- screens-demo/wknd-cafe-menuboard.manifest.json | 6 +++++- screens-demo/wknd-kiosk-commerce.manifest.json | 2 +- screens-demo/wknd-ordering-kiosk.manifest.json | 2 +- .../locations/global/north-america/test-us.manifest.json | 2 +- .../north-america/us/san-jose/test-west.manifest.json | 2 +- .../us/san-jose/west/test-player0.manifest.json | 2 +- .../global/north-america/us/test-san-jose.manifest.json | 2 +- .../locations/global/test-north-america.manifest.json | 2 +- .../wknd-retail/locations/test-global.manifest.json | 2 +- 11 files changed, 15 insertions(+), 11 deletions(-) diff --git a/screens-demo/.manifest.json b/screens-demo/.manifest.json index 8131f266..713d2c20 100644 --- a/screens-demo/.manifest.json +++ b/screens-demo/.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356185052, + "timestamp": 1690356497061, "entries": [ { "path": "/screens-demo/.html" diff --git a/screens-demo/wknd-cafe-menu.manifest.json b/screens-demo/wknd-cafe-menu.manifest.json index 5644f932..ef7ccf59 100644 --- a/screens-demo/wknd-cafe-menu.manifest.json +++ b/screens-demo/wknd-cafe-menu.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356185295, + "timestamp": 1690356498024, "entries": [ { "path": "/screens-demo/wknd-cafe-menu.html", diff --git a/screens-demo/wknd-cafe-menuboard.manifest.json b/screens-demo/wknd-cafe-menuboard.manifest.json index 2673ce32..5f0057bc 100644 --- a/screens-demo/wknd-cafe-menuboard.manifest.json +++ b/screens-demo/wknd-cafe-menuboard.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356185560, + "timestamp": 1690356498802, "entries": [ { "path": "/screens-demo/wknd-cafe-menuboard.html", @@ -75,6 +75,10 @@ "path": "/tools/preview/preview.js", "timestamp": 1686036193000 }, + { + "path": "/tools/preview/preview.css", + "timestamp": 1686036193000 + }, { "path": "/scripts/lib-polaris.js", "timestamp": 1686036192000 diff --git a/screens-demo/wknd-kiosk-commerce.manifest.json b/screens-demo/wknd-kiosk-commerce.manifest.json index ced5366e..129152b5 100644 --- a/screens-demo/wknd-kiosk-commerce.manifest.json +++ b/screens-demo/wknd-kiosk-commerce.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356185817, + "timestamp": 1690356500110, "entries": [ { "path": "/screens-demo/wknd-kiosk-commerce.html", diff --git a/screens-demo/wknd-ordering-kiosk.manifest.json b/screens-demo/wknd-ordering-kiosk.manifest.json index 41784c97..2dfcd6fe 100644 --- a/screens-demo/wknd-ordering-kiosk.manifest.json +++ b/screens-demo/wknd-ordering-kiosk.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356183759, + "timestamp": 1690356493697, "entries": [ { "path": "/screens-demo/wknd-ordering-kiosk.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json index e4ad19ce..b9704195 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/test-us.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356183911, + "timestamp": 1690356494441, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/test-us.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json index 3d3435b2..cc1b4b6a 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356184793, + "timestamp": 1690356496277, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/test-west.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json index 0088765d..d92cf7f8 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356184487, + "timestamp": 1690356495540, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/san-jose/west/test-player0.html", diff --git a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json index ecfe57e2..655bcf7d 100644 --- a/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json +++ b/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356184257, + "timestamp": 1690356495178, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/north-america/us/test-san-jose.html", diff --git a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json index a666e4c5..4f848c97 100644 --- a/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json +++ b/screens-demo/wknd-retail/locations/global/test-north-america.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356184106, + "timestamp": 1690356494803, "entries": [ { "path": "/screens-demo/wknd-retail/locations/global/test-north-america.html", diff --git a/screens-demo/wknd-retail/locations/test-global.manifest.json b/screens-demo/wknd-retail/locations/test-global.manifest.json index 10f3b46a..ff2f6d45 100644 --- a/screens-demo/wknd-retail/locations/test-global.manifest.json +++ b/screens-demo/wknd-retail/locations/test-global.manifest.json @@ -9,7 +9,7 @@ ], "defaultProvider": "franklin" }, - "timestamp": 1690356184636, + "timestamp": 1690356495890, "entries": [ { "path": "/screens-demo/wknd-retail/locations/test-global.html", From c890590492e01267bdfd8ce7bf0f9ed42445daea Mon Sep 17 00:00:00 2001 From: ravverma Date: Wed, 26 Jul 2023 15:17:29 +0530 Subject: [PATCH 140/149] commerce use method 'await getItems(categoryIdValue)' from commerce.js file --- package-lock.json | 5461 +++++++++++++++++++++++++++++-------------- package.json | 12 +- scripts/commerce.js | 65 + 3 files changed, 3749 insertions(+), 1789 deletions(-) create mode 100644 scripts/commerce.js diff --git a/package-lock.json b/package-lock.json index 899f2a5a..1aebb2fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,35 +1,64 @@ { "name": "@adobe/helix-project-boilerplate", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@adobe/helix-shared-git": { + "packages": { + "": { + "name": "@adobe/helix-project-boilerplate", + "version": "1.0.0", + "license": "Apache License 2.0", + "dependencies": { + "@aem-screens/screens-offlineresources-generator": "0.0.3-screens-IA-B002", + "axios": "^1.4.0", + "graphql-request": "^6.1.0", + "node-fetch": "^3.3.0" + }, + "devDependencies": { + "@babel/core": "7.18.10", + "@babel/eslint-parser": "7.18.9", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.14.0", + "@web/test-runner-commands": "0.6.4", + "chai": "4.3.6", + "eslint": "8.22.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.26.0", + "sinon": "14.0.0", + "stylelint": "14.10.0", + "stylelint-config-prettier": "9.0.3", + "stylelint-config-standard": "25.0.0" + } + }, + "node_modules/@adobe/helix-shared-git": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@adobe/helix-shared-git/-/helix-shared-git-3.0.0.tgz", "integrity": "sha512-uynXD2Lewaandb7W/1jnfJYxwN/uzZTRcO2gWNRPSWWprty/WKUenX+z4c8O7pKyxmb5rdcbY6ptiDaYLcwZ7g==", - "requires": { + "license": "Apache-2.0", + "dependencies": { "@adobe/helix-shared-prune": "^1.0.5", "yaml": "2.2.1" - }, - "dependencies": { - "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==" - } } }, - "@adobe/helix-shared-prune": { + "node_modules/@adobe/helix-shared-git/node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@adobe/helix-shared-prune": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@adobe/helix-shared-prune/-/helix-shared-prune-1.0.5.tgz", - "integrity": "sha512-xvNIA5qxRSYnNAtzikIEbn8SEqnmAdr2NbsonQqTimor5Ie8jstLuIo4wXHzeK2l+Vy9zVvimzGokEkgBslgIg==" + "integrity": "sha512-xvNIA5qxRSYnNAtzikIEbn8SEqnmAdr2NbsonQqTimor5Ie8jstLuIo4wXHzeK2l+Vy9zVvimzGokEkgBslgIg==", + "license": "Apache-2.0" }, - "@aem-screens/screens-offlineresources-generator": { + "node_modules/@aem-screens/screens-offlineresources-generator": { "version": "0.0.3-screens-IA-B002", "resolved": "https://registry.npmjs.org/@aem-screens/screens-offlineresources-generator/-/screens-offlineresources-generator-0.0.3-screens-IA-B002.tgz", "integrity": "sha512-uB1wb0tlUzPghFAHcxK1X7FgEHZFDRoVwTvhxofZE2yPIpES4/IddmmrrxJotnKFIpvjT8Cmwh5dh3K0LMJkNA==", - "requires": { + "dependencies": { "@adobe/helix-shared-git": "3.0.0", "cheerio": "^1.0.0-rc.12", "fetch": "^1.1.0", @@ -38,37 +67,46 @@ "node-fetch": "^3.3.0" } }, - "@ampproject/remapping": { + "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/code-frame": { + "node_modules/@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "dev": true, - "requires": { + "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.10", @@ -84,95 +122,131 @@ "gensync": "^1.0.0-beta.2", "json5": "^2.2.1", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/eslint-parser": { + "node_modules/@babel/eslint-parser": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", "dev": true, - "requires": { + "dependencies": { "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" } }, - "@babel/generator": { + "node_modules/@babel/generator": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.10", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.18.8", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-environment-visitor": { + "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", @@ -181,89 +255,122 @@ "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.9", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-string-parser": { + "node_modules/@babel/helper-string-parser": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.9", "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", - "dev": true + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.10", "@babel/helper-environment-visitor": "^7.18.9", @@ -274,31 +381,48 @@ "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@csstools/selector-specificity": { + "node_modules/@csstools/selector-specificity": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } }, - "@eslint/eslintrc": { + "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.2", @@ -309,343 +433,395 @@ "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, "dependencies": { - "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@esm-bundle/chai": { + "node_modules/@esm-bundle/chai": { "version": "4.3.4-fix.0", "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, - "requires": { + "dependencies": { "@types/chai": "^4.2.12" } }, - "@humanwhocodes/config-array": { + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, - "requires": { + "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" } }, - "@humanwhocodes/gitignore-to-minimatch": { + "node_modules/@humanwhocodes/gitignore-to-minimatch": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "@humanwhocodes/object-schema": { + "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "@jridgewell/gen-mapping": { + "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" } }, - "@jridgewell/resolve-uri": { + "node_modules/@jridgewell/resolve-uri": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/set-array": { + "node_modules/@jridgewell/set-array": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "@jridgewell/sourcemap-codec": { + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.13", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", "dev": true }, - "@jridgewell/trace-mapping": { + "node_modules/@jridgewell/trace-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@nodelib/fs.scandir": { + "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@rollup/plugin-node-resolve": { + "node_modules/@rollup/plugin-node-resolve": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, - "requires": { + "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", "deepmerge": "^4.2.2", "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" } }, - "@rollup/pluginutils": { + "node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "@sinonjs/commons": { + "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, - "requires": { + "dependencies": { "type-detect": "4.0.8" } }, - "@sinonjs/fake-timers": { + "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/samsam": { + "node_modules/@sinonjs/samsam": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, - "@sinonjs/text-encoding": { + "node_modules/@sinonjs/text-encoding": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "@types/accepts": { + "node_modules/@types/accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/babel__code-frame": { + "node_modules/@types/babel__code-frame": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", "dev": true }, - "@types/body-parser": { + "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, - "requires": { + "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "@types/chai": { + "node_modules/@types/chai": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", "dev": true }, - "@types/co-body": { + "node_modules/@types/co-body": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "@types/qs": "*" } }, - "@types/command-line-args": { + "node_modules/@types/command-line-args": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", "dev": true }, - "@types/connect": { + "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/content-disposition": { + "node_modules/@types/content-disposition": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", "dev": true }, - "@types/convert-source-map": { + "node_modules/@types/convert-source-map": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", "dev": true }, - "@types/cookies": { + "node_modules/@types/cookies": { "version": "0.7.7", "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "dev": true, - "requires": { + "dependencies": { "@types/connect": "*", "@types/express": "*", "@types/keygrip": "*", "@types/node": "*" } }, - "@types/debounce": { + "node_modules/@types/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", "dev": true }, - "@types/estree": { + "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "@types/express": { + "node_modules/@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, - "requires": { + "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, - "@types/express-serve-static-core": { + "node_modules/@types/express-serve-static-core": { "version": "4.17.29", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" } }, - "@types/http-assert": { + "node_modules/@types/http-assert": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", "dev": true }, - "@types/http-errors": { + "node_modules/@types/http-errors": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==", "dev": true }, - "@types/istanbul-lib-coverage": { + "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "@types/istanbul-lib-report": { + "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "*" } }, - "@types/istanbul-reports": { + "node_modules/@types/istanbul-reports": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-report": "*" } }, - "@types/json5": { + "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "@types/keygrip": { + "node_modules/@types/keygrip": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", "dev": true }, - "@types/koa": { + "node_modules/@types/koa": { "version": "2.13.4", "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", "dev": true, - "requires": { + "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", "@types/cookies": "*", @@ -656,142 +832,152 @@ "@types/node": "*" } }, - "@types/koa-compose": { + "node_modules/@types/koa-compose": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "dev": true, - "requires": { + "dependencies": { "@types/koa": "*" } }, - "@types/mime": { + "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, - "@types/minimist": { + "node_modules/@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, - "@types/mocha": { + "node_modules/@types/mocha": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", "dev": true }, - "@types/node": { + "node_modules/@types/node": { "version": "16.11.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", "dev": true }, - "@types/normalize-package-data": { + "node_modules/@types/normalize-package-data": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "@types/parse-json": { + "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "@types/parse5": { + "node_modules/@types/parse5": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", "dev": true }, - "@types/qs": { + "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, - "@types/range-parser": { + "node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, - "@types/resolve": { + "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/serve-static": { + "node_modules/@types/serve-static": { "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, - "requires": { + "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, - "@types/ws": { + "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/yauzl": { + "node_modules/@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@web/browser-logs": { + "node_modules/@web/browser-logs": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", "dev": true, - "requires": { + "dependencies": { "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "@web/config-loader": { + "node_modules/@web/config-loader": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", "dev": true, - "requires": { + "dependencies": { "semver": "^7.3.4" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/config-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@web/dev-server": { + "node_modules/@web/dev-server": { "version": "0.1.34", "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", "@web/config-loader": "^0.1.3", @@ -806,14 +992,21 @@ "nanocolors": "^0.2.1", "open": "^8.0.2", "portfinder": "^1.0.28" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=10.0.0" } }, - "@web/dev-server-core": { + "node_modules/@web/dev-server-core": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", "dev": true, - "requires": { + "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", "@web/parse5-utils": "^1.2.0", @@ -833,51 +1026,79 @@ "picomatch": "^2.2.2", "ws": "^7.4.2" }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/dev-server-core/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@web/dev-server-core/node_modules/ws": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true + "utf-8-validate": { + "optional": true } } }, - "@web/dev-server-rollup": { + "node_modules/@web/dev-server-rollup": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", "dev": true, - "requires": { + "dependencies": { "@rollup/plugin-node-resolve": "^13.0.4", "@web/dev-server-core": "^0.3.19", "nanocolors": "^0.2.1", "parse5": "^6.0.1", "rollup": "^2.67.0", "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "@web/parse5-utils": { + "node_modules/@web/parse5-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", "dev": true, - "requires": { + "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "@web/test-runner": { + "node_modules/@web/test-runner": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.14.0.tgz", "integrity": "sha512-9xVKnsviCqXL/xi48l0GpDDfvdczZsKHfEhmZglGMTL+I5viDMAj0GGe7fD9ygJ6UT2+056a3RzyIW5x9lZTDQ==", "dev": true, - "requires": { + "dependencies": { "@web/browser-logs": "^0.2.2", "@web/config-loader": "^0.1.3", "@web/dev-server": "^0.1.33", @@ -894,36 +1115,49 @@ "nanocolors": "^0.2.1", "portfinder": "^1.0.28", "source-map": "^0.7.3" + }, + "bin": { + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" + }, + "engines": { + "node": ">=12.0.0" } }, - "@web/test-runner-chrome": { + "node_modules/@web/test-runner-chrome": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.7.tgz", "integrity": "sha512-DKJVHhHh3e/b6/erfKOy0a4kGfZ47qMoQRgROxi9T4F9lavEY3E5/MQ7hapHFM2lBF4vDrm+EWjtBdOL8o42tw==", "dev": true, - "requires": { + "dependencies": { "@web/test-runner-core": "^0.10.20", "@web/test-runner-coverage-v8": "^0.4.8", "chrome-launcher": "^0.15.0", "puppeteer-core": "^13.1.3" + }, + "engines": { + "node": ">=12.0.0" } }, - "@web/test-runner-commands": { + "node_modules/@web/test-runner-commands": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.4.tgz", "integrity": "sha512-opSfIVHj4PsIA/Ah582DKgnmdfY+Xn35FnnYeJ+aBYrM+setOP63McvrY4PuwasictwswHVSzq86qZzmxvXkHw==", "dev": true, - "requires": { + "dependencies": { "@web/test-runner-core": "^0.10.27", "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" } }, - "@web/test-runner-core": { + "node_modules/@web/test-runner-core": { "version": "0.10.27", "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.12.11", "@types/babel__code-frame": "^7.0.2", "@types/co-body": "^6.1.0", @@ -950,354 +1184,540 @@ "open": "^8.0.2", "picomatch": "^2.2.2", "source-map": "^0.7.3" + }, + "engines": { + "node": ">=12.0.0" } }, - "@web/test-runner-coverage-v8": { + "node_modules/@web/test-runner-coverage-v8": { "version": "0.4.9", "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.9.tgz", "integrity": "sha512-y9LWL4uY25+fKQTljwr0XTYjeWIwU4h8eYidVuLoW3n1CdFkaddv+smrGzzF5j8XY+Mp6TmV9NdxjvMWqVkDdw==", "dev": true, - "requires": { + "dependencies": { "@web/test-runner-core": "^0.10.20", "istanbul-lib-coverage": "^3.0.0", "picomatch": "^2.2.2", "v8-to-istanbul": "^8.0.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "@web/test-runner-mocha": { + "node_modules/@web/test-runner-mocha": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.5.tgz", "integrity": "sha512-12/OBq6efPCAvJpcz3XJs2OO5nHe7GtBibZ8Il1a0QtsGpRmuJ4/m1EF0Fj9f6KHg7JdpGo18A37oE+5hXjHwg==", "dev": true, - "requires": { + "dependencies": { "@types/mocha": "^8.2.0", "@web/test-runner-core": "^0.10.20" + }, + "engines": { + "node": ">=12.0.0" } }, - "accepts": { + "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { + "node_modules/acorn": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-jsx": { + "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-escapes": { + "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { + "dependencies": { "type-fest": "^0.21.3" }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { + "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "argparse": { + "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "array-back": { + "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "array-includes": { + "node_modules/array-includes": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "array.prototype.flat": { + "node_modules/array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "arrify": { + "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "assertion-error": { + "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "astral-regex": { + "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "async": { + "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.14" } }, - "async-lock": { + "node_modules/async-lock": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" }, - "balanced-match": { + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "biskviit": { + "node_modules/biskviit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/biskviit/-/biskviit-1.0.1.tgz", "integrity": "sha512-VGCXdHbdbpEkFgtjkeoBN8vRlbj1ZRX2/mxhE8asCCRalUx2nBzOomLJv8Aw/nRt5+ccDb+tPKidg4XxcfGW4w==", - "requires": { + "dependencies": { "psl": "^1.1.7" + }, + "engines": { + "node": ">=1.0.0" } }, - "bl": { + "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "requires": { + "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.20.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { "caniuse-lite": "^1.0.30001332", "electron-to-chromium": "^1.4.118", "escalade": "^3.1.1", "node-releases": "^2.0.3", "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "builtin-modules": { + "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "bytes": { + "node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cache-content-type": { + "node_modules/cache-content-type": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, - "requires": { + "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "camelcase": { + "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "camelcase-keys": { + "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "requires": { + "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "caniuse-lite": { + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { "version": "1.0.30001342", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, - "chai": { + "node_modules/chai": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, - "requires": { + "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", @@ -1305,30 +1725,39 @@ "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" } }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "check-error": { + "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "cheerio": { + "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "requires": { + "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", @@ -1337,601 +1766,813 @@ "parse5": "^7.0.0", "parse5-htmlparser2-tree-adapter": "^7.0.0" }, - "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - } + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "cheerio-select": { + "node_modules/cheerio-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "chokidar": { + "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.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" }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "chownr": { + "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "chrome-launcher": { + "node_modules/chrome-launcher": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0" }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "clean-git-ref": { + "node_modules/clean-git-ref": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==" }, - "cli-cursor": { + "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "requires": { + "dependencies": { "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "co": { + "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } }, - "co-body": { + "node_modules/co-body": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", "dev": true, - "requires": { + "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", "raw-body": "^2.3.3", "type-is": "^1.6.16" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "colord": { + "node_modules/colord": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", "dev": true }, - "command-line-args": { + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, - "requires": { + "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "command-line-usage": { + "node_modules/command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", "table-layout": "^1.0.2", "typical": "^5.2.0" }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } + "engines": { + "node": ">=8.0.0" } }, - "concat-map": { + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "confusing-browser-globals": { + "node_modules/confusing-browser-globals": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "5.2.1" }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "~5.1.1" } }, - "cookies": { + "node_modules/cookies": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", "dev": true, - "requires": { + "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - } + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cookies/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "cosmiconfig": { + "node_modules/cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, - "requires": { + "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" } }, - "crc-32": { + "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } }, - "cross-fetch": { + "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "requires": { + "dependencies": { "node-fetch": "2.6.7" - }, + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true } } }, - "cross-spawn": { + "node_modules/cross-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/cross-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/cross-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "css-functions-list": { + "node_modules/css-functions-list": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true + "dev": true, + "engines": { + "node": ">=12.22" + } }, - "css-select": { + "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-what": { + "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "cssesc": { + "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "data-uri-to-buffer": { + "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } }, - "debounce": { + "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decamelize-keys": { + "node_modules/decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, - "requires": { + "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "decompress-response": { + "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { + "dependencies": { "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "deep-eql": { + "node_modules/deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, - "requires": { + "dependencies": { "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" } }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", "dev": true }, - "deep-extend": { + "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0.0" + } }, - "deep-is": { + "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "deepmerge": { + "node_modules/deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "define-lazy-prop": { + "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { + "dependencies": { "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" } }, - "delegates": { + "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, - "depd": { + "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "dependency-graph": { + "node_modules/dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "destroy": { + "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "devtools-protocol": { + "node_modules/devtools-protocol": { "version": "0.0.981744", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", "dev": true }, - "diff": { + "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "diff3": { + "node_modules/diff3": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==" }, - "dir-glob": { + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { + "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "domhandler": { + "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { + "dependencies": { "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "domutils": { + "node_modules/domutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "requires": { + "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.4.137", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", "dev": true }, - "emoji-regex": { + "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "encoding": { + "node_modules/encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==", - "requires": { + "dependencies": { "iconv-lite": "~0.4.13" } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "entities": { + "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "errorstacks": { + "node_modules/errorstacks": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", "dev": true }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -1952,49 +2593,67 @@ "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-module-lexer": { + "node_modules/es-module-lexer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", "dev": true }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escalade": { + "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "eslint": { + "node_modules/eslint": { "version": "8.22.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", "dev": true, - "requires": { + "dependencies": { "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.10.4", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", @@ -2035,198 +2694,82 @@ "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-config-airbnb-base": { + "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, - "requires": { + "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", "object.entries": "^1.1.5", "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "eslint-import-resolver-node": { + "node_modules/eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.7", "resolve": "^1.20.0" - }, + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "ms": "^2.1.1" } }, - "eslint-module-utils": { + "node_modules/eslint-module-utils": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.7", "find-up": "^2.1.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "ms": "^2.1.1" } }, - "eslint-plugin-import": { + "node_modules/eslint-plugin-import": { "version": "2.26.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, - "requires": { + "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", @@ -2241,927 +2784,1538 @@ "resolve": "^1.22.0", "tsconfig-paths": "^3.14.1" }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "eslint-scope": { + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "requires": { + "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "eslint-utils": { + "node_modules/eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "requires": { + "dependencies": { "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "espree": { + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { "version": "9.3.3", "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "esquery": { + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.1.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "estree-walker": { + "node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "extract-zip": { + "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", + "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-glob": { + "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, - "requires": { + "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" }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastest-levenshtein": { + "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, - "fastq": { + "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "fd-slicer": { + "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, - "requires": { + "dependencies": { "pend": "~1.2.0" } }, - "fetch": { + "node_modules/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-5O8TwrGzoNblBG/jtK4NFuZwNCkZX6s5GfRNOaGtm+QGJEuNakSC/i2RW0R93KX6E0jVjNXm6O3CRN4Ql3K+yA==", - "requires": { + "dependencies": { "biskviit": "1.0.1", "encoding": "0.1.12" } }, - "fetch-blob": { + "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" } }, - "file-entry-cache": { + "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "requires": { + "dependencies": { "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "find-replace": { + "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "requires": { + "dependencies": { "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "find-up": { + "node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "requires": { + "dependencies": { "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "flat-cache": { + "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { + "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { + "node_modules/flatted": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "formdata-polyfill": { + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "requires": { + "dependencies": { "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs-constants": { + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-extra": { + "node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { + "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { + "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gensync": { + "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-func-name": { + "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stream": { + "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "get-symbol-description": { + "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "requires": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "requires": { + "dependencies": { "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "global-modules": { + "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "requires": { + "dependencies": { "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "global-prefix": { + "node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, - "requires": { + "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "globals": { + "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "globby": { + "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "globjoin": { + "node_modules/globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", "dev": true }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "grapheme-splitter": { + "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "hard-rejection": { + "node_modules/graphql": { + "version": "16.7.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", + "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-bigints": { + "node_modules/has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hosted-git-info": { + "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "requires": { + "dependencies": { "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "html-escaper": { + "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "html-tags": { + "node_modules/html-tags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "requires": { + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, - "http-assert": { + "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, - "requires": { + "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" } }, - "http-errors": { + "node_modules/http-assert/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/http-assert/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, - "requires": { + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "https-proxy-agent": { + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "requires": { + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "ignore": { + "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "import-lazy": { + "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "indent-string": { + "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "inflation": { + "node_modules/inflation": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { + "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "internal-slot": { + "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "ip": { + "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-bigint": { + "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { + "dependencies": { "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-boolean-object": { + "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-builtin-module": { + "node_modules/is-builtin-module": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", "dev": true, - "requires": { + "dependencies": { "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-docker": { + "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-module": { + "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, - "is-negative-zero": { + "node_modules/is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-number-object": { + "node_modules/is-number-object": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-plain-obj": { + "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-plain-object": { + "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-shared-array-buffer": { + "node_modules/is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-stream": { + "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-string": { + "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-weakref": { + "node_modules/is-weakref": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-wsl": { + "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "requires": { + "dependencies": { "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "isarray": { + "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, - "isbinaryfile": { + "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isomorphic-git": { + "node_modules/isomorphic-git": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.21.0.tgz", "integrity": "sha512-ZqCAUM63CYepA3fB8H7NVyPSiOkgzIbQ7T+QPrm9xtYgQypN9JUJ5uLMjB5iTfomdJf3mdm6aSxjZwnT6ubvEA==", - "requires": { + "dependencies": { "async-lock": "^1.1.0", "clean-git-ref": "^2.0.1", "crc-32": "^1.2.0", @@ -3173,139 +4327,181 @@ "readable-stream": "^3.4.0", "sha.js": "^2.4.9", "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" } }, - "istanbul-lib-coverage": { + "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "istanbul-lib-report": { + "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "requires": { + "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-reports": { + "node_modules/istanbul-reports": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", "dev": true, - "requires": { + "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { + "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { + "dependencies": { "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "just-extend": { + "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "keygrip": { + "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, - "requires": { + "dependencies": { "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" } }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "known-css-properties": { + "node_modules/known-css-properties": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", "dev": true }, - "koa": { + "node_modules/koa": { "version": "2.13.4", "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", "dev": true, - "requires": { + "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", @@ -3330,288 +4526,345 @@ "type-is": "^1.6.16", "vary": "^1.1.2" }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - } + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" } }, - "koa-compose": { + "node_modules/koa-compose": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", "dev": true }, - "koa-convert": { + "node_modules/koa-convert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, - "requires": { + "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "koa-etag": { + "node_modules/koa-etag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", "dev": true, - "requires": { + "dependencies": { "etag": "^1.8.1" } }, - "koa-send": { + "node_modules/koa-send": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", "resolve-path": "^1.4.0" }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-send/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/koa-send/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" } }, - "koa-static": { + "node_modules/koa-static": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.1.0", "koa-send": "^5.0.0" }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "ms": "^2.1.1" + } + }, + "node_modules/koa/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "levn": { + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "lighthouse-logger": { + "node_modules/lighthouse-logger": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", "dev": true, - "requires": { + "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" - }, + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "lines-and-columns": { + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "locate-path": { + "node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "requires": { + "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.camelcase": { + "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, - "lodash.get": { + "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.merge": { + "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { + "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, - "log-update": { + "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, - "requires": { + "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "loupe": { + "node_modules/loupe": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz", "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==", "dev": true, - "requires": { + "dependencies": { "get-func-name": "^2.0.0" } }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { + "dependencies": { "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "map-obj": { + "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "marky": { + "node_modules/marky": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", "dev": true }, - "mathml-tag-names": { + "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "meow": { + "node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, - "requires": { + "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", "decamelize": "^1.2.0", @@ -3625,144 +4878,197 @@ "type-fest": "^0.18.0", "yargs-parser": "^20.2.3" }, - "dependencies": { - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "micromatch": { + "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "requires": { + "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { + "dependencies": { "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "mimic-response": { + "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "min-indent": { + "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "minimist-options": { + "node_modules/minimist-options": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "requires": { + "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" } }, - "minimisted": { + "node_modules/minimisted": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", - "requires": { + "dependencies": { "minimist": "^1.2.5" } }, - "mkdirp": { + "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, - "mkdirp-classic": { + "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nanocolors": { + "node_modules/nanocolors": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", "dev": true }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "negotiator": { + "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "nise": { + "node_modules/nise": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", @@ -3770,497 +5076,678 @@ "path-to-regexp": "^1.7.0" } }, - "node-domexception": { + "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } }, - "node-fetch": { + "node_modules/node-fetch": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "requires": { + "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, - "node-releases": { + "node_modules/node-releases": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", "dev": true }, - "normalize-package-data": { + "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "requires": { + "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.entries": { + "node_modules/object.entries": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" } }, - "object.values": { + "node_modules/object.values": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "on-finished": { + "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "only": { + "node_modules/only": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, - "open": { + "node_modules/open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, - "requires": { + "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "optionator": { + "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "requires": { + "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "p-limit": { + "node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "requires": { + "dependencies": { "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "p-locate": { + "node_modules/p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "requires": { + "dependencies": { "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "p-try": { + "node_modules/p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-json": { + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse5": { + "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, - "parse5-htmlparser2-tree-adapter": { + "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "requires": { + "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - } + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-exists": { + "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, - "requires": { + "dependencies": { "isarray": "0.0.1" } }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "pathval": { + "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "pend": { + "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "picocolors": { + "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" } }, - "portfinder": { + "node_modules/portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, - "requires": { + "dependencies": { "async": "^2.6.2", "debug": "^3.1.1", "mkdirp": "^0.5.5" }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "postcss": { + "node_modules/postcss": { "version": "8.4.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "postcss-media-query-parser": { + "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, - "postcss-resolve-nested-selector": { + "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, - "postcss-safe-parser": { + "node_modules/postcss-safe-parser": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } }, - "postcss-selector-parser": { + "node_modules/postcss-selector-parser": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8.0" + } }, - "progress": { + "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "psl": { + "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, - "pump": { + "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "requires": { + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "punycode": { + "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "puppeteer-core": { + "node_modules/puppeteer-core": { "version": "13.7.0", "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", "dev": true, - "requires": { + "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", "devtools-protocol": "0.0.981744", @@ -4273,377 +5760,548 @@ "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" } }, - "qs": { + "node_modules/qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "quick-lru": { + "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "raw-body": { + "node_modules/raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "read-pkg": { + "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "requires": { + "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "read-pkg-up": { + "node_modules/read-pkg-up": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "redent": { + "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "requires": { + "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "reduce-flatten": { + "node_modules/reduce-flatten": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "regexpp": { + "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "resolve": { + "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "resolve-path": { + "node_modules/resolve-path": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, - "requires": { + "dependencies": { "http-errors": "~1.6.2", "path-is-absolute": "1.0.1" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "restore-cursor": { + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "requires": { + "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rollup": { + "node_modules/rollup": { "version": "2.78.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", "dev": true, - "requires": { + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { "fsevents": "~2.3.2" } }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "semver": { + "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "simple-concat": { + "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "simple-get": { + "node_modules/simple-get": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, - "sinon": { + "node_modules/sinon": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", "dev": true, - "requires": { + "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^9.1.2", "@sinonjs/samsam": "^6.1.1", @@ -4651,205 +6309,274 @@ "nise": "^5.1.1", "supports-color": "^7.2.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "slice-ansi": { + "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "source-map": { + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "spdx-correct": { + "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, - "requires": { + "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-exceptions": { + "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "spdx-expression-parse": { + "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "requires": { + "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { + "node_modules/spdx-license-ids": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "string-width": { + "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { + "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "strip-indent": { + "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "requires": { + "dependencies": { "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "style-search": { + "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, - "stylelint": { + "node_modules/stylelint": { "version": "14.10.0", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz", "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==", "dev": true, - "requires": { + "dependencies": { "@csstools/selector-specificity": "^2.0.2", "balanced-match": "^2.0.0", "colord": "^2.9.2", @@ -4889,497 +6616,663 @@ "v8-compile-cache": "^2.3.0", "write-file-atomic": "^4.0.1" }, - "dependencies": { - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" } }, - "stylelint-config-prettier": { + "node_modules/stylelint-config-prettier": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", - "dev": true + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } }, - "stylelint-config-standard": { + "node_modules/stylelint-config-standard": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", "dev": true, - "requires": { + "dependencies": { "stylelint-config-recommended": "^7.0.0" }, - "dependencies": { - "stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true - } + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-hyperlinks": { + "node_modules/supports-hyperlinks": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "svg-tags": { + "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, - "table": { + "node_modules/table": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, - "requires": { + "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "engines": { + "node": ">=10.0.0" } }, - "table-layout": { + "node_modules/table-layout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, - "requires": { + "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", "typical": "^5.2.0", "wordwrapjs": "^4.0.0" }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "tar-fs": { + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, - "requires": { + "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, - "tar-stream": { + "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { + "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "tr46": { + "node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" } }, - "trim-newlines": { + "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "tsconfig-paths": { + "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, - "requires": { + "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "tsscmp": { + "node_modules/tsscmp": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6.x" + } }, - "type-check": { + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-detect": { + "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "type-fest": { + "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typical": { + "node_modules/typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "unbox-primitive": { + "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "unbzip2-stream": { + "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, - "requires": { + "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "v8-compile-cache": { + "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "v8-to-istanbul": { + "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" } }, - "validate-npm-package-license": { + "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "requires": { + "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "web-streams-polyfill": { + "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + } }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, - "requires": { + "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "wordwrapjs": { + "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, - "requires": { + "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write-file-atomic": { + "node_modules/write-file-atomic": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", "dev": true, - "requires": { + "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "ws": { + "node_modules/ws": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6" + } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, - "requires": { + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "ylru": { + "node_modules/ylru": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index e528c2eb..a9838f9d 100644 --- a/package.json +++ b/package.json @@ -23,19 +23,21 @@ }, "homepage": "https://github.com/adobe/helix-project-boilerplate#readme", "dependencies": { - "node-fetch": "^3.3.0", - "@aem-screens/screens-offlineresources-generator": "0.0.3-screens-IA-B002" + "@aem-screens/screens-offlineresources-generator": "0.0.3-screens-IA-B002", + "axios": "^1.4.0", + "graphql-request": "^6.1.0", + "node-fetch": "^3.3.0" }, "devDependencies": { "@babel/core": "7.18.10", "@babel/eslint-parser": "7.18.9", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.14.0", + "@web/test-runner-commands": "0.6.4", "chai": "4.3.6", "eslint": "8.22.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", - "@esm-bundle/chai": "4.3.4-fix.0", - "@web/test-runner": "0.14.0", - "@web/test-runner-commands": "0.6.4", "sinon": "14.0.0", "stylelint": "14.10.0", "stylelint-config-prettier": "9.0.3", diff --git a/scripts/commerce.js b/scripts/commerce.js new file mode 100644 index 00000000..e38f611c --- /dev/null +++ b/scripts/commerce.js @@ -0,0 +1,65 @@ +import { request as graphqlRequest } from 'graphql-request'; +import fetch from 'node-fetch'; +const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint +// Define the value to be passed as the "categoryId" variable +const categoryIdValue = 'MTA0'; // Replace this with the value you want to compare + + +const dataRaw = ` +query { + products(filter: { category_uid: { eq: "MTA3"} }) { + items { + name + } + page_info { + current_page + page_size + total_pages + } + total_count + } + } +`; +const variables = { + categoryId: categoryIdValue, + }; +const headers = { + // Add any custom headers you need, like authorization headers, etc. + 'Authority': 'venia.magento.com', + 'Store': 'wknd', + 'Content-type': 'application/json' +}; + + /*graphqlRequest(url, dataRaw, variables, { headers }) + .then(response => { + console.log('GraphQL request successful!'); + console.log('Response:'); + console.log(response); + }) + .catch(error => { + console.error('Error making the GraphQL request:', error.message); + }); +*/ +console.log(await getItems(categoryIdValue)); +export function getItems(categoryId) { + return fetch("https://venia.magento.com/graphql", { + "headers": { + "accept": "*/*", + "content-type": "application/json", + "store": "wknd", + }, + "body": `{\"query\":\"{\\n products(filter: { category_uid: { eq: ${categoryId} } }) {\\n items {\\n name\\n sku\\n url_key\\n is_returnable\\n image {\\n label\\n url\\n }\\n small_image{\\n label\\n url\\n }\\n swatch_image\\n price_range{\\n maximum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n minimum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n }\\n }\\n page_info {\\n current_page\\n page_size\\n total_pages\\n }\\n total_count\\n }\\n}\\n\"}`, + "method": "POST" +}).then(response => { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.json(); +}) +} + + + + + + From 8c43143d94f9802d397397adfc31f06814c45a53 Mon Sep 17 00:00:00 2001 From: sandsinh Date: Wed, 26 Jul 2023 15:30:34 +0530 Subject: [PATCH 141/149] fix: complete initial skeleton --- blocks/product-listing/product-listing.css | 26 ++++- blocks/product-listing/product-listing.js | 113 +++++++++++++++++++-- scripts/scripts.js | 23 +++++ 3 files changed, 150 insertions(+), 12 deletions(-) diff --git a/blocks/product-listing/product-listing.css b/blocks/product-listing/product-listing.css index 475efdc3..bf4e1a7b 100644 --- a/blocks/product-listing/product-listing.css +++ b/blocks/product-listing/product-listing.css @@ -49,7 +49,7 @@ display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); grid-gap: 1rem; - margin: auto; + /* margin: auto; */ } .skeleton-grid > div { @@ -132,4 +132,28 @@ .header-search { margin-bottom: 3rem; +} + +.product-view { + display: grid; + grid-template-columns: 0.5fr 10fr 0.5fr; + gap: 1rem;; +} + +.left-rail { + display: flex; + align-items: center; +} + +.right-rail { + display: flex; + align-items: center; +} + +.left-rail.disable-button { + opacity: 30%; +} + +.right-rail.disable-button { + opacity: 30%; } \ No newline at end of file diff --git a/blocks/product-listing/product-listing.js b/blocks/product-listing/product-listing.js index 6658420b..dabefa62 100644 --- a/blocks/product-listing/product-listing.js +++ b/blocks/product-listing/product-listing.js @@ -1,11 +1,35 @@ import { onNavigate } from '../../scripts/scripts.js'; let isLoading = false; - +const perPage = 6; +let totalPages = 2; +let currentPage = 1; +let items; const homeButtonClick = () => { onNavigate('category-container'); }; +const railStatus = () => { + const leftRail = document.getElementsByClassName('left-rail'); + const rightRail = document.getElementsByClassName('right-rail'); + console.log('status', currentPage, totalPages); + if (leftRail && rightRail) { + if (currentPage === 1 && currentPage === totalPages) { + leftRail[0].classList.add('disable-button'); + rightRail[0].classList.add('disable-button'); + } else if (currentPage === 1) { + leftRail[0].classList.add('disable-button'); + rightRail[0].classList.remove('disable-button'); + } else if (currentPage === totalPages) { + leftRail[0].classList.remove('disable-button'); + rightRail[0].classList.add('disable-button'); + } else { + leftRail[0].classList.remove('disable-button'); + rightRail[0].classList.remove('disable-button'); + } + } +}; + const onProductClick = (event) => { console.log(event.currentTarget); const selectedProductSKU = event.currentTarget.getAttribute('sku'); @@ -107,17 +131,82 @@ const getItem = (product) => { return productDiv; }; -const renderItems = (target, products) => { +const leftButtonClick = (event) => { + console.log(event.currentTarget); + if (currentPage !== 1) { + console.log(currentPage); + currentPage -= 1; + railStatus(); + const productGrid = document.getElementsByClassName('product-grid'); + // eslint-disable-next-line no-use-before-define + if (productGrid) renderProductsGrid(productGrid[0]); + // eslint-disable-next-line no-use-before-define + } +}; +const rightButtonClick = (event) => { + console.log(event.currentTarget); + if (currentPage !== totalPages) { + currentPage += 1; + railStatus(); + const productListing = document.getElementsByClassName('product-listing')[0]; + // eslint-disable-next-line no-use-before-define + renderProductsPage(productListing, items); + } +}; + +const getRail = (className, url, callback, alt) => { + const rail = document.createElement('div'); + rail.classList.add(className); + const btnSVG = new Image(); + btnSVG.src = url; + btnSVG.alt = alt || 'btn'; + rail.append(btnSVG); + rail.addEventListener('click', callback); + return rail; +}; + +const renderProductsGrid = (productGrid) => { + console.log(currentPage, totalPages, perPage); + if (!items) return; + console.log('rendering productGrid'); + productGrid.textContent = ''; + const totalItems = items.length; + const startIdx = (currentPage - 1) * perPage; + const renderProducts = items.slice(startIdx, Math.min(startIdx + perPage, totalItems)); + renderProducts.forEach((product) => { + productGrid.append(getItem(product)); + }); +}; + +const renderItems = () => { + const productView = document.createElement('div'); + productView.className = 'product-view'; + const leftArrowURL = 'https://main--wknd--hlxscreens.hlx.live/screens-demo/left-arrow-svgrepo-com-1.svg'; + const rightArrowURL = 'https://main--wknd--hlxscreens.hlx.live/screens-demo/right-arrow-backup-2-svgrepo-com.svg'; + const leftRail = getRail('left-rail', leftArrowURL, leftButtonClick, 'left-rail'); + const rightRail = getRail('right-rail', rightArrowURL, rightButtonClick, 'right-rail'); + if (currentPage === 1) { + leftRail.classList.add('disable-button'); + } + if (currentPage === totalPages) { + rightRail.classList.add('disable-button'); + } + const productGrid = document.createElement('div'); + productGrid.className = 'product-grid'; + console.log(productGrid); + renderProductsGrid(productGrid); + productView.append(leftRail); + productView.append(productGrid); + productView.append(rightRail); + return productView; +}; + +const renderProductsPage = (target, products) => { const heading = target.getAttribute('category-name'); target.textContent = ''; target.append(getHeaderAndSearch(heading)); - const productGrid = document.createElement('div'); - productGrid.className = 'product-grid'; - console.log(products); - products.forEach((product) => { - productGrid.append(getItem(product)); - }); - target.append(productGrid); + const itemsPage = renderItems(products); + target.append(itemsPage); }; const observer = new MutationObserver((mutations) => { @@ -141,8 +230,10 @@ const observer = new MutationObserver((mutations) => { console.log('ok response'); // execute dom change const response = await rawResponse.json(); - console.log(response); - renderItems(mutation.target, response.data.products.items); + items = response.data.products.items; + totalPages = Math.ceil(items.length / perPage); + console.log(response.data.products.items); + renderProductsPage(mutation.target, response.data.products.items); } catch (err) { console.log('loading failed'); } diff --git a/scripts/scripts.js b/scripts/scripts.js index 39eaf2f3..ab49d83d 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -300,6 +300,29 @@ export function onNavigate(pathName) { section && section.length > 0 && section[0].classList.add('displaySection'); } +// export function sendAnalyticsEvent() { +// const data = { +// 'event.type': 'play', +// 'event.coll_dts': '2023-07-26T08:04:21.759Z', +// 'event.dts_start': '2023-07-26T08:04:21.759Z', +// 'content.type': 'IMAGE', +// 'content.action': '/content/dam/6thfloor-do-not-delete/Recognitions-3.png', +// 'trn.product': '/content/dam/6thfloor-do-not-delete/Recognitions-3.png', +// 'trn.amount': 0, +// 'event.dts_end': '2023-07-26T08:08:47.495Z', +// 'event.count': 265736, +// eslint-disable-next-line max-len +// 'event.value': 'Started Wed Jul 26 2023 13:34:21 GMT+0530 (India Standard Time) ended Wed Jul 26 2023 13:38:47 GMT+0530 (India Standard Time) Duration 265 seconds', +// 'trn.quantity': 265736, +// 'event.subtype': 'end', +// }; +// window.parent.postMessage(JSON.stringify({ +// namespace: 'screens-player', +// type: 'analytics-tracking-event', +// data, +// })); +// } + /* // Access and process each JSON object for (const key in data) { From a968024aa8c93d049c72377cddc3d1700b40326e Mon Sep 17 00:00:00 2001 From: ravverma Date: Wed, 26 Jul 2023 15:51:05 +0530 Subject: [PATCH 142/149] commerce integration --- scripts/commerce.js | 65 -------------------------------------------- scripts/scripts.js | 66 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 67 deletions(-) delete mode 100644 scripts/commerce.js diff --git a/scripts/commerce.js b/scripts/commerce.js deleted file mode 100644 index e38f611c..00000000 --- a/scripts/commerce.js +++ /dev/null @@ -1,65 +0,0 @@ -import { request as graphqlRequest } from 'graphql-request'; -import fetch from 'node-fetch'; -const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint -// Define the value to be passed as the "categoryId" variable -const categoryIdValue = 'MTA0'; // Replace this with the value you want to compare - - -const dataRaw = ` -query { - products(filter: { category_uid: { eq: "MTA3"} }) { - items { - name - } - page_info { - current_page - page_size - total_pages - } - total_count - } - } -`; -const variables = { - categoryId: categoryIdValue, - }; -const headers = { - // Add any custom headers you need, like authorization headers, etc. - 'Authority': 'venia.magento.com', - 'Store': 'wknd', - 'Content-type': 'application/json' -}; - - /*graphqlRequest(url, dataRaw, variables, { headers }) - .then(response => { - console.log('GraphQL request successful!'); - console.log('Response:'); - console.log(response); - }) - .catch(error => { - console.error('Error making the GraphQL request:', error.message); - }); -*/ -console.log(await getItems(categoryIdValue)); -export function getItems(categoryId) { - return fetch("https://venia.magento.com/graphql", { - "headers": { - "accept": "*/*", - "content-type": "application/json", - "store": "wknd", - }, - "body": `{\"query\":\"{\\n products(filter: { category_uid: { eq: ${categoryId} } }) {\\n items {\\n name\\n sku\\n url_key\\n is_returnable\\n image {\\n label\\n url\\n }\\n small_image{\\n label\\n url\\n }\\n swatch_image\\n price_range{\\n maximum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n minimum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n }\\n }\\n page_info {\\n current_page\\n page_size\\n total_pages\\n }\\n total_count\\n }\\n}\\n\"}`, - "method": "POST" -}).then(response => { - if (!response.ok) { - throw new Error('Network response was not ok'); - } - return response.json(); -}) -} - - - - - - diff --git a/scripts/scripts.js b/scripts/scripts.js index b22c9da9..a7805ff2 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -16,7 +16,7 @@ import { } from './lib-franklin.js'; import decoratePolarisAssets from './lib-polaris.js'; - +import { request as graphqlRequest } from 'graphql-request'; const LCP_BLOCKS = []; // add your LCP blocks to the list window.hlx.RUM_GENERATION = 'project-1'; // add your RUM generation information here @@ -438,4 +438,66 @@ export function onNavigate(pathName){ console.log('------------------'); }); } - }*/ \ No newline at end of file + }*/ + +export function getItems(categoryId){ + const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint + const headers = { + // Add any custom headers you need, like authorization headers, etc. + 'Authority': 'venia.magento.com', + 'Store': 'wknd', + 'Content-type': 'application/json' + }; + const dataRaw = ` + query{ + products(filter: { category_uid: { eq: ${categoryId}} }) { + items { + name + sku + url_key + is_returnable + image { + label + url + } + small_image{ + label + url + } + swatch_image + price_range{ + maximum_price{ + final_price{ + currency + value + } + } + minimum_price{ + final_price{ + currency + value + } + } + } + } + page_info { + current_page + page_size + total_pages + } + total_count + } + } + `; + return graphqlRequest(url, dataRaw,null,headers) + .then(response => { + if (!response) { + throw new Error('Network response was not ok'); + } + return response; + }) + .catch(error => { + console.error('Error making the GraphQL request:', error.message); + }); +} + \ No newline at end of file From 163dae324277255c58f2fd80a9a8e029a551113c Mon Sep 17 00:00:00 2001 From: ravverma Date: Wed, 26 Jul 2023 15:17:29 +0530 Subject: [PATCH 143/149] commerce use method 'await getItems(categoryIdValue)' from commerce.js file --- package-lock.json | 2399 +++++++++++++++++++++++++------------------ package.json | 12 +- scripts/commerce.js | 65 ++ 3 files changed, 1496 insertions(+), 980 deletions(-) create mode 100644 scripts/commerce.js diff --git a/package-lock.json b/package-lock.json index 92df0bb7..25569f01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,30 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@75lb/deep-merge": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", + "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", + "dev": true, + "requires": { + "lodash.assignwith": "^4.2.0", + "typical": "^7.1.1" + }, + "dependencies": { + "typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "dev": true + } + } + }, + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@adobe/helix-shared-git": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@adobe/helix-shared-git/-/helix-shared-git-3.0.0.tgz", @@ -26,9 +50,9 @@ "integrity": "sha512-xvNIA5qxRSYnNAtzikIEbn8SEqnmAdr2NbsonQqTimor5Ie8jstLuIo4wXHzeK2l+Vy9zVvimzGokEkgBslgIg==" }, "@aem-screens/screens-offlineresources-generator": { - "version": "0.0.3-screens-IA-B001", - "resolved": "https://registry.npmjs.org/@aem-screens/screens-offlineresources-generator/-/screens-offlineresources-generator-0.0.3-screens-IA-B001.tgz", - "integrity": "sha512-sJ+n+ArAPK9tozfcPe/BG4XBLLcgFZL++w1oLp4jB2JtiacdfpcLbOB4v6bcFhFDbYztjeZMyseG0fN8SA9ISg==", + "version": "0.0.3-screens-IA-B002", + "resolved": "https://registry.npmjs.org/@aem-screens/screens-offlineresources-generator/-/screens-offlineresources-generator-0.0.3-screens-IA-B002.tgz", + "integrity": "sha512-uB1wb0tlUzPghFAHcxK1X7FgEHZFDRoVwTvhxofZE2yPIpES4/IddmmrrxJotnKFIpvjT8Cmwh5dh3K0LMJkNA==", "requires": { "@adobe/helix-shared-git": "3.0.0", "cheerio": "^1.0.0-rc.12", @@ -39,28 +63,28 @@ } }, "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" } }, "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true }, "@babel/core": { @@ -98,211 +122,197 @@ } }, "@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", "dev": true, "requires": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.22.5", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true }, "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true }, "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", - "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "dev": true }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/traverse": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", - "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, "@csstools/selector-specificity": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", - "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", + "espree": "^9.4.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -311,13 +321,19 @@ }, "dependencies": { "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, @@ -330,10 +346,15 @@ "@types/chai": "^4.2.12" } }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==" + }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -354,41 +375,50 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } } }, "@nodelib/fs.scandir": { @@ -443,9 +473,9 @@ } }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -461,9 +491,9 @@ } }, "@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -472,9 +502,9 @@ } }, "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "@types/accepts": { @@ -503,9 +533,9 @@ } }, "@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", "dev": true }, "@types/co-body": { @@ -540,9 +570,9 @@ "dev": true }, "@types/convert-source-map": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", - "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-QUm4YOC/ENo0VjPVl2o8HGyTbHHQGDOw8PCg3rXBucYHKyZN/XjXRbPFAV1tB2FvM0/wyFoDct4cTIctzKrQFg==", "dev": true }, "@types/cookies": { @@ -570,26 +600,27 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/http-assert": { @@ -599,9 +630,9 @@ "dev": true }, "@types/http-errors": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.2.tgz", - "integrity": "sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", "dev": true }, "@types/istanbul-lib-coverage": { @@ -631,7 +662,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/keygrip": { @@ -641,9 +672,9 @@ "dev": true }, "@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "version": "2.13.7", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.7.tgz", + "integrity": "sha512-Xd9xiGmTDv57y86kQYnBZZcE9H8cJhv+aL0YH+hZIa3rbUDNdk+EY6wcJC3xCyfrVIC+vjhtNENFwisF+E8Zhg==", "dev": true, "requires": { "@types/accepts": "*", @@ -684,9 +715,9 @@ "dev": true }, "@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", + "version": "20.4.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", + "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", "dev": true }, "@types/normalize-package-data": { @@ -728,16 +759,27 @@ "@types/node": "*" } }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, "requires": { "@types/mime": "^1", "@types/node": "*" } }, + "@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, "@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", @@ -758,9 +800,9 @@ } }, "@web/browser-logs": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", - "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", + "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", "dev": true, "requires": { "errorstacks": "^2.2.0" @@ -775,54 +817,95 @@ "semver": "^7.3.4" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "@web/dev-server": { - "version": "0.1.34", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.34.tgz", - "integrity": "sha512-+te6iwxAQign1KyhHpkR/a3+5qw/Obg/XWCES2So6G5LcZ86zIKXbUpWAJuNOqiBV6eGwqEB1AozKr2Jj7gj/Q==", + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", + "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.19", - "@web/dev-server-rollup": "^0.3.19", + "@web/dev-server-core": "^0.4.1", + "@web/dev-server-rollup": "^0.4.1", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", + "command-line-usage": "^7.0.1", "debounce": "^1.2.0", "deepmerge": "^4.2.2", "ip": "^1.1.5", "nanocolors": "^0.2.1", "open": "^8.0.2", - "portfinder": "^1.0.28" + "portfinder": "^1.0.32" + }, + "dependencies": { + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + }, + "command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" + } + }, + "typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "dev": true + } } }, "@web/dev-server-core": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.19.tgz", - "integrity": "sha512-Q/Xt4RMVebLWvALofz1C0KvP8qHbzU1EmdIA2Y1WMPJwiFJFhPxdr75p9YxK32P2t0hGs6aqqS5zE0HW9wYzYA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", "dev": true, "requires": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", + "@web/parse5-utils": "^1.3.1", "chokidar": "^3.4.3", "clone": "^2.1.2", "es-module-lexer": "^1.0.0", "get-stream": "^6.0.0", "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", + "isbinaryfile": "^5.0.0", "koa": "^2.13.0", "koa-etag": "^4.0.0", "koa-send": "^5.0.1", @@ -834,28 +917,31 @@ "ws": "^7.4.2" }, "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, - "ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "@web/dev-server-rollup": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.19.tgz", - "integrity": "sha512-IwiwI+fyX0YuvAOldStlYJ+Zm/JfSCk9OSGIs7+fWbOYysEHwkEVvBwoPowaclSZA44Tobvqt+6ej9udbbZ/WQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", + "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", "dev": true, "requires": { "@rollup/plugin-node-resolve": "^13.0.4", - "@web/dev-server-core": "^0.3.19", + "@web/dev-server-core": "^0.4.1", "nanocolors": "^0.2.1", "parse5": "^6.0.1", "rollup": "^2.67.0", @@ -863,9 +949,9 @@ } }, "@web/parse5-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", - "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", + "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", "dev": true, "requires": { "@types/parse5": "^6.0.1", @@ -916,27 +1002,35 @@ "requires": { "@web/test-runner-core": "^0.10.27", "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "@web/test-runner-core": { - "version": "0.10.27", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.27.tgz", - "integrity": "sha512-ClV/hSxs4wDm/ANFfQOdRRFb/c0sYywC1QfUXG/nS4vTp3nnt7x7mjydtMGGLmvK9f6Zkubkc1aa+7ryfmVwNA==", + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", + "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.11", "@types/babel__code-frame": "^7.0.2", "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", + "@types/convert-source-map": "^2.0.0", "@types/debounce": "^1.2.0", "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.18", + "@web/browser-logs": "^0.2.6", + "@web/dev-server-core": "^0.4.1", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", + "convert-source-map": "^2.0.0", "debounce": "^1.2.0", "dependency-graph": "^0.11.0", "globby": "^11.0.1", @@ -950,6 +1044,14 @@ "open": "^8.0.2", "picomatch": "^2.2.2", "source-map": "^0.7.3" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + } } }, "@web/test-runner-coverage-v8": { @@ -985,9 +1087,9 @@ } }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true }, "acorn-jsx": { @@ -1024,14 +1126,6 @@ "dev": true, "requires": { "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } } }, "ansi-regex": { @@ -1050,9 +1144,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -1071,16 +1165,26 @@ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -1091,14 +1195,29 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" } }, "arrify": { @@ -1133,6 +1252,27 @@ "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==" }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1195,16 +1335,15 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" } }, "buffer": { @@ -1230,9 +1369,9 @@ "dev": true }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "cache-content-type": { @@ -1287,9 +1426,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001342", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz", - "integrity": "sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==", + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", "dev": true }, "chai": { @@ -1318,10 +1457,70 @@ "supports-color": "^5.3.0" } }, + "chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "requires": { + "chalk": "^4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "cheerio": { @@ -1375,17 +1574,6 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "chownr": { @@ -1395,9 +1583,9 @@ "dev": true }, "chrome-launcher": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz", - "integrity": "sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, "requires": { "@types/node": "*", @@ -1464,15 +1652,23 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", @@ -1503,24 +1699,46 @@ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true }, + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + } + }, "typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true + }, + "wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + } } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, "content-disposition": { @@ -1541,19 +1759,16 @@ } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "cookies": { "version": "0.8.0", @@ -1563,20 +1778,12 @@ "requires": { "depd": "~2.0.0", "keygrip": "~1.1.0" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - } } }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -1595,7 +1802,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, "requires": { "node-fetch": "2.6.7" }, @@ -1604,7 +1810,6 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, "requires": { "whatwg-url": "^5.0.0" } @@ -1612,20 +1817,17 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -1645,9 +1847,9 @@ } }, "css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", + "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "dev": true }, "css-select": { @@ -1696,13 +1898,13 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -1712,7 +1914,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true } } @@ -1753,9 +1955,9 @@ "dev": true }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, "define-lazy-prop": { @@ -1765,14 +1967,20 @@ "dev": true }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -1780,9 +1988,9 @@ "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "dependency-graph": { @@ -1804,9 +2012,9 @@ "dev": true }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, "diff3": { @@ -1872,9 +2080,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", + "version": "1.4.471", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.471.tgz", + "integrity": "sha512-GpmGRC1vTl60w/k6YpQ18pSiqnmr0j3un//5TV1idPi6aheNfkT1Ye71tMEabWyNDO6sBMgAR+95Eb0eUUr1tA==", "dev": true }, "emoji-regex": { @@ -1921,45 +2129,84 @@ } }, "errorstacks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", - "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.0.tgz", + "integrity": "sha512-5ecWhU5gt0a5G05nmQcgCxP5HperSMxLDzvWlT5U+ZSKkuDK0rJ3dbCQny6/vSCIXjwrhwSecXBbw1alr295hQ==", "dev": true }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" } }, "es-module-lexer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", - "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -1986,7 +2233,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "eslint": { @@ -2077,9 +2324,9 @@ "dev": true }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", + "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -2087,9 +2334,9 @@ } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "estraverse": { @@ -2108,10 +2355,19 @@ "path-exists": "^4.0.0" } }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2150,12 +2406,6 @@ "p-limit": "^3.0.2" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2164,6 +2414,12 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, @@ -2180,13 +2436,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -2201,13 +2458,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -2263,7 +2519,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -2294,28 +2550,28 @@ "dev": true }, "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true } } }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -2380,6 +2636,17 @@ "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } } }, "fast-deep-equal": { @@ -2389,9 +2656,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -2399,17 +2666,6 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "fast-json-stable-stringify": { @@ -2421,7 +2677,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastest-levenshtein": { @@ -2431,9 +2687,9 @@ "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -2442,7 +2698,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "requires": { "pend": "~1.2.0" @@ -2494,12 +2750,13 @@ } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat-cache": { @@ -2513,11 +2770,35 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -2551,7 +2832,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -2567,10 +2848,28 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "gensync": { @@ -2582,28 +2881,26 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true }, "get-symbol-description": { "version": "1.0.0", @@ -2630,12 +2927,12 @@ } }, "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" } }, "global-modules": { @@ -2675,6 +2972,15 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -2692,9 +2998,18 @@ "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2706,6 +3021,15 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "graphql-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" + } + }, "hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -2722,21 +3046,36 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { @@ -2755,6 +3094,23 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "html-escaper": { @@ -2764,9 +3120,9 @@ "dev": true }, "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true }, "htmlparser2": { @@ -2788,52 +3144,25 @@ "requires": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" - }, - "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } } }, "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "toidentifier": "1.0.1" }, "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true } } @@ -2886,7 +3215,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { @@ -2898,13 +3227,13 @@ "inflation": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -2923,26 +3252,37 @@ "dev": true }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-bigint": { @@ -2974,24 +3314,24 @@ } }, "is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "requires": { "builtin-modules": "^3.3.0" } }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, "requires": { "has": "^1.0.3" @@ -3015,7 +3355,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -3049,9 +3389,9 @@ "dev": true }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -3061,9 +3401,9 @@ "dev": true }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -3072,7 +3412,7 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true }, "is-plain-object": { @@ -3092,10 +3432,13 @@ } }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -3121,13 +3464,22 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-wsl": { @@ -3140,21 +3492,21 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", + "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isomorphic-git": { @@ -3182,13 +3534,13 @@ "dev": true }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "dependencies": { @@ -3210,9 +3562,9 @@ } }, "istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -3255,13 +3607,13 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonfile": { @@ -3301,9 +3653,9 @@ "dev": true }, "koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz", + "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==", "dev": true, "requires": { "accepts": "^1.3.5", @@ -3329,14 +3681,6 @@ "statuses": "^1.5.0", "type-is": "^1.6.16", "vary": "^1.1.2" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - } } }, "koa-compose": { @@ -3373,33 +3717,6 @@ "debug": "^4.1.1", "http-errors": "^1.7.3", "resolve-path": "^1.4.0" - }, - "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } } }, "koa-static": { @@ -3434,9 +3751,9 @@ } }, "lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, "requires": { "debug": "^2.6.9", @@ -3455,7 +3772,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -3467,13 +3784,12 @@ "dev": true }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -3482,16 +3798,22 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.assignwith": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", + "dev": true + }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "lodash.merge": { @@ -3503,7 +3825,7 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "log-update": { @@ -3516,82 +3838,71 @@ "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "loupe": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz", - "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { "get-func-name": "^2.0.0" } }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "^6.0.0" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "semver": "^7.5.3" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, "marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true }, "mathml-tag-names": { @@ -3603,7 +3914,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "meow": { @@ -3653,14 +3964,12 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "requires": { "mime-db": "1.51.0" } @@ -3716,10 +4025,13 @@ } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } }, "mkdirp-classic": { "version": "0.5.3", @@ -3740,15 +4052,15 @@ "dev": true }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -3758,16 +4070,47 @@ "dev": true }, "nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + } } }, "node-domexception": { @@ -3786,9 +4129,9 @@ } }, "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "normalize-package-data": { @@ -3803,14 +4146,29 @@ "validate-npm-package-license": "^3.0.1" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -3829,9 +4187,9 @@ } }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, "object-keys": { @@ -3841,37 +4199,37 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "on-finished": { @@ -3886,7 +4244,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -3907,9 +4265,9 @@ "dev": true }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", @@ -3918,41 +4276,41 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@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", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "pako": { @@ -4013,15 +4371,15 @@ "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { @@ -4043,6 +4401,14 @@ "dev": true, "requires": { "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + } } }, "path-type": { @@ -4060,7 +4426,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, "picocolors": { @@ -4087,68 +4453,17 @@ "dev": true, "requires": { "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } } }, "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "dependencies": { "debug": { @@ -4159,25 +4474,16 @@ "requires": { "ms": "^2.1.1" } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } } } }, "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -4185,13 +4491,13 @@ "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", "dev": true }, "postcss-safe-parser": { @@ -4201,9 +4507,9 @@ "dev": true }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -4231,8 +4537,7 @@ "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "psl": { "version": "1.9.0", @@ -4250,9 +4555,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "puppeteer-core": { @@ -4273,13 +4578,24 @@ "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", "ws": "8.5.0" + }, + "dependencies": { + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true + } } }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "queue-microtask": { "version": "1.2.3", @@ -4294,15 +4610,36 @@ "dev": true }, "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } }, "read-pkg": { @@ -4336,9 +4673,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true }, "type-fest": { @@ -4360,55 +4697,6 @@ "type-fest": "^0.8.1" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -4452,6 +4740,17 @@ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -4465,12 +4764,12 @@ "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -4491,6 +4790,12 @@ "path-is-absolute": "1.0.1" }, "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -4543,9 +4848,9 @@ } }, "rollup": { - "version": "2.78.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", - "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -4560,26 +4865,49 @@ "queue-microtask": "^1.2.2" } }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "sha.js": { @@ -4713,9 +5041,9 @@ } }, "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true }, "source-map-js": { @@ -4725,9 +5053,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -4751,15 +5079,21 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "stream-read-all": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", + "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", "dev": true }, "string-width": { @@ -4773,24 +5107,37 @@ "strip-ansi": "^6.0.1" } }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string_decoder": { @@ -4820,7 +5167,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-indent": { @@ -4841,7 +5188,7 @@ "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", "dev": true }, "stylelint": { @@ -4910,6 +5257,12 @@ "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", "dev": true }, + "stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true + }, "stylelint-config-standard": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", @@ -4917,14 +5270,6 @@ "dev": true, "requires": { "stylelint-config-recommended": "^7.0.0" - }, - "dependencies": { - "stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", - "dev": true - } } }, "supports-color": { @@ -4937,9 +5282,9 @@ } }, "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -4972,13 +5317,13 @@ "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -4989,9 +5334,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -5009,27 +5354,42 @@ } }, "table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", + "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "dev": true, "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" + "@75lb/deep-merge": "^1.1.1", + "array-back": "^6.2.2", + "command-line-args": "^5.2.1", + "command-line-usage": "^7.0.0", + "stream-read-all": "^3.0.1", + "typical": "^7.1.1", + "wordwrapjs": "^5.1.0" }, "dependencies": { "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true }, + "command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" + } + }, "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true } } @@ -5062,13 +5422,13 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "to-fast-properties": { @@ -5087,9 +5447,9 @@ } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, "tr46": { @@ -5108,21 +5468,21 @@ "dev": true }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -5152,9 +5512,9 @@ "dev": true }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "type-is": { @@ -5167,6 +5527,53 @@ "mime-types": "~2.1.24" } }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, "typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", @@ -5174,14 +5581,14 @@ "dev": true }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -5203,9 +5610,19 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5218,7 +5635,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "v8-compile-cache": { "version": "2.3.0", @@ -5296,26 +5713,58 @@ "is-symbol": "^1.0.3" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } }, "wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } @@ -5323,12 +5772,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -5336,15 +5785,15 @@ } }, "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yaml": { @@ -5362,7 +5811,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", diff --git a/package.json b/package.json index b26c5942..a9838f9d 100644 --- a/package.json +++ b/package.json @@ -23,19 +23,21 @@ }, "homepage": "https://github.com/adobe/helix-project-boilerplate#readme", "dependencies": { - "node-fetch": "^3.3.0", - "@aem-screens/screens-offlineresources-generator": "0.0.3-screens-IA-B001" + "@aem-screens/screens-offlineresources-generator": "0.0.3-screens-IA-B002", + "axios": "^1.4.0", + "graphql-request": "^6.1.0", + "node-fetch": "^3.3.0" }, "devDependencies": { "@babel/core": "7.18.10", "@babel/eslint-parser": "7.18.9", + "@esm-bundle/chai": "4.3.4-fix.0", + "@web/test-runner": "0.14.0", + "@web/test-runner-commands": "0.6.4", "chai": "4.3.6", "eslint": "8.22.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", - "@esm-bundle/chai": "4.3.4-fix.0", - "@web/test-runner": "0.14.0", - "@web/test-runner-commands": "0.6.4", "sinon": "14.0.0", "stylelint": "14.10.0", "stylelint-config-prettier": "9.0.3", diff --git a/scripts/commerce.js b/scripts/commerce.js new file mode 100644 index 00000000..e38f611c --- /dev/null +++ b/scripts/commerce.js @@ -0,0 +1,65 @@ +import { request as graphqlRequest } from 'graphql-request'; +import fetch from 'node-fetch'; +const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint +// Define the value to be passed as the "categoryId" variable +const categoryIdValue = 'MTA0'; // Replace this with the value you want to compare + + +const dataRaw = ` +query { + products(filter: { category_uid: { eq: "MTA3"} }) { + items { + name + } + page_info { + current_page + page_size + total_pages + } + total_count + } + } +`; +const variables = { + categoryId: categoryIdValue, + }; +const headers = { + // Add any custom headers you need, like authorization headers, etc. + 'Authority': 'venia.magento.com', + 'Store': 'wknd', + 'Content-type': 'application/json' +}; + + /*graphqlRequest(url, dataRaw, variables, { headers }) + .then(response => { + console.log('GraphQL request successful!'); + console.log('Response:'); + console.log(response); + }) + .catch(error => { + console.error('Error making the GraphQL request:', error.message); + }); +*/ +console.log(await getItems(categoryIdValue)); +export function getItems(categoryId) { + return fetch("https://venia.magento.com/graphql", { + "headers": { + "accept": "*/*", + "content-type": "application/json", + "store": "wknd", + }, + "body": `{\"query\":\"{\\n products(filter: { category_uid: { eq: ${categoryId} } }) {\\n items {\\n name\\n sku\\n url_key\\n is_returnable\\n image {\\n label\\n url\\n }\\n small_image{\\n label\\n url\\n }\\n swatch_image\\n price_range{\\n maximum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n minimum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n }\\n }\\n page_info {\\n current_page\\n page_size\\n total_pages\\n }\\n total_count\\n }\\n}\\n\"}`, + "method": "POST" +}).then(response => { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.json(); +}) +} + + + + + + From ce50332379bd3aedd9b39826d9c05c6586715776 Mon Sep 17 00:00:00 2001 From: ravverma Date: Wed, 26 Jul 2023 15:51:05 +0530 Subject: [PATCH 144/149] commerce integration --- scripts/commerce.js | 65 --------------------------------------------- scripts/scripts.js | 62 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 65 deletions(-) delete mode 100644 scripts/commerce.js diff --git a/scripts/commerce.js b/scripts/commerce.js deleted file mode 100644 index e38f611c..00000000 --- a/scripts/commerce.js +++ /dev/null @@ -1,65 +0,0 @@ -import { request as graphqlRequest } from 'graphql-request'; -import fetch from 'node-fetch'; -const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint -// Define the value to be passed as the "categoryId" variable -const categoryIdValue = 'MTA0'; // Replace this with the value you want to compare - - -const dataRaw = ` -query { - products(filter: { category_uid: { eq: "MTA3"} }) { - items { - name - } - page_info { - current_page - page_size - total_pages - } - total_count - } - } -`; -const variables = { - categoryId: categoryIdValue, - }; -const headers = { - // Add any custom headers you need, like authorization headers, etc. - 'Authority': 'venia.magento.com', - 'Store': 'wknd', - 'Content-type': 'application/json' -}; - - /*graphqlRequest(url, dataRaw, variables, { headers }) - .then(response => { - console.log('GraphQL request successful!'); - console.log('Response:'); - console.log(response); - }) - .catch(error => { - console.error('Error making the GraphQL request:', error.message); - }); -*/ -console.log(await getItems(categoryIdValue)); -export function getItems(categoryId) { - return fetch("https://venia.magento.com/graphql", { - "headers": { - "accept": "*/*", - "content-type": "application/json", - "store": "wknd", - }, - "body": `{\"query\":\"{\\n products(filter: { category_uid: { eq: ${categoryId} } }) {\\n items {\\n name\\n sku\\n url_key\\n is_returnable\\n image {\\n label\\n url\\n }\\n small_image{\\n label\\n url\\n }\\n swatch_image\\n price_range{\\n maximum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n minimum_price{\\n final_price{\\n currency\\n value\\n }\\n }\\n }\\n }\\n page_info {\\n current_page\\n page_size\\n total_pages\\n }\\n total_count\\n }\\n}\\n\"}`, - "method": "POST" -}).then(response => { - if (!response.ok) { - throw new Error('Network response was not ok'); - } - return response.json(); -}) -} - - - - - - diff --git a/scripts/scripts.js b/scripts/scripts.js index ab49d83d..c49dbc01 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -1,3 +1,4 @@ +import { request as graphqlRequest } from 'graphql-request'; import { sampleRUM, buildBlock, @@ -335,3 +336,64 @@ export function onNavigate(pathName) { }); } } */ + +export function getItems(categoryId) { + const url = 'https://venia.magento.com/graphql'; // Replace with your GraphQL endpoint + const headers = { + // Add any custom headers you need, like authorization headers, etc. + Authority: 'venia.magento.com', + Store: 'wknd', + 'Content-type': 'application/json', + }; + const dataRaw = ` + query{ + products(filter: { category_uid: { eq: ${categoryId}} }) { + items { + name + sku + url_key + is_returnable + image { + label + url + } + small_image{ + label + url + } + swatch_image + price_range{ + maximum_price{ + final_price{ + currency + value + } + } + minimum_price{ + final_price{ + currency + value + } + } + } + } + page_info { + current_page + page_size + total_pages + } + total_count + } + } + `; + return graphqlRequest(url, dataRaw, null, headers) + .then((response) => { + if (!response) { + throw new Error('Network response was not ok'); + } + return response; + }) + .catch((error) => { + console.error('Error making the GraphQL request:', error.message); + }); +} From 3bf83d4435297d37fff20066cfa3e866ede3dae8 Mon Sep 17 00:00:00 2001 From: ravverma Date: Wed, 26 Jul 2023 21:00:29 +0530 Subject: [PATCH 145/149] picker --- .vscode/settings.json | 2 + package-lock.json | 815 +- package.json | 4 +- scripts/scripts.js | 4 +- tools/picker/dist/index.6897f79f.css | 2 + tools/picker/dist/index.6897f79f.css.map | 1 + tools/picker/dist/index.fce879da.js | 29 + tools/picker/dist/index.fce879da.js.map | 1 + tools/picker/dist/index.html | 1 + tools/picker/package-lock.json | 9766 +++++++++++++++++ tools/picker/package.json | 27 + tools/picker/src/index.html | 16 + tools/picker/src/index.js | 172 + tools/picker/src/picker.js | 157 + .../picker/src/queries/categories.graphql.js | 24 + tools/picker/src/queries/category.graphql.js | 15 + tools/picker/src/queries/products.graphql.js | 36 + tools/picker/src/styles.css | 11 + tools/sidekick/config.json | 13 +- 19 files changed, 11072 insertions(+), 24 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 tools/picker/dist/index.6897f79f.css create mode 100644 tools/picker/dist/index.6897f79f.css.map create mode 100644 tools/picker/dist/index.fce879da.js create mode 100644 tools/picker/dist/index.fce879da.js.map create mode 100644 tools/picker/dist/index.html create mode 100644 tools/picker/package-lock.json create mode 100644 tools/picker/package.json create mode 100644 tools/picker/src/index.html create mode 100644 tools/picker/src/index.js create mode 100644 tools/picker/src/picker.js create mode 100644 tools/picker/src/queries/categories.graphql.js create mode 100644 tools/picker/src/queries/category.graphql.js create mode 100644 tools/picker/src/queries/products.graphql.js create mode 100644 tools/picker/src/styles.css diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1aebb2fd..0b0c127c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,9 @@ "sinon": "14.0.0", "stylelint": "14.10.0", "stylelint-config-prettier": "9.0.3", - "stylelint-config-standard": "25.0.0" + "stylelint-config-standard": "25.0.0", + "webpack": "^5.88.2", + "webpack-cli": "^5.1.4" } }, "node_modules/@adobe/helix-shared-git": { @@ -417,6 +419,15 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -513,9 +524,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -530,20 +541,44 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -739,6 +774,26 @@ "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", "dev": true }, + "node_modules/@types/eslint": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz", + "integrity": "sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -804,6 +859,12 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -1217,6 +1278,208 @@ "node": ">=12.0.0" } }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1231,9 +1494,9 @@ } }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1242,6 +1505,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -1279,6 +1551,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1602,6 +1883,12 @@ "node": "*" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -1875,6 +2162,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/clean-git-ref": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", @@ -1901,6 +2197,32 @@ "node": ">=0.8" } }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -1944,6 +2266,12 @@ "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", "dev": true }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2003,6 +2331,12 @@ "node": ">=8" } }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2541,6 +2875,19 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2552,6 +2899,18 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/envinfo": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2602,9 +2961,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", - "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, "node_modules/es-to-primitive": { @@ -3157,6 +3516,15 @@ "node": ">= 0.6" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -3546,6 +3914,12 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -3908,6 +4282,25 @@ "node": ">=8" } }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3970,6 +4363,15 @@ "node": ">= 0.4" } }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -4311,6 +4713,15 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isomorphic-git": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.21.0.tgz", @@ -4392,6 +4803,44 @@ "node": ">=8" } }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4678,6 +5127,15 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, "node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -4897,6 +5355,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5063,6 +5527,12 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "node_modules/nise": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", @@ -5803,6 +6273,15 @@ "node": ">=8" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", @@ -5990,6 +6469,18 @@ "node": ">=8.10.0" } }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -6050,6 +6541,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -6185,6 +6697,24 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -6194,6 +6724,15 @@ "semver": "bin/semver.js" } }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -6212,6 +6751,18 @@ "sha.js": "bin.js" } }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6412,6 +6963,25 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -6814,6 +7384,15 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -6842,6 +7421,58 @@ "node": ">=6" } }, + "node_modules/terser": { + "version": "5.19.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", + "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7088,6 +7719,19 @@ "node": ">= 0.8" } }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -7105,6 +7749,135 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.88.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, "node_modules/whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", @@ -7149,6 +7922,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", diff --git a/package.json b/package.json index a9838f9d..58d07f45 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,8 @@ "sinon": "14.0.0", "stylelint": "14.10.0", "stylelint-config-prettier": "9.0.3", - "stylelint-config-standard": "25.0.0" + "stylelint-config-standard": "25.0.0", + "webpack": "^5.88.2", + "webpack-cli": "^5.1.4" } } diff --git a/scripts/scripts.js b/scripts/scripts.js index a7805ff2..85183e86 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -16,7 +16,6 @@ import { } from './lib-franklin.js'; import decoratePolarisAssets from './lib-polaris.js'; -import { request as graphqlRequest } from 'graphql-request'; const LCP_BLOCKS = []; // add your LCP blocks to the list window.hlx.RUM_GENERATION = 'project-1'; // add your RUM generation information here @@ -499,5 +498,4 @@ export function getItems(categoryId){ .catch(error => { console.error('Error making the GraphQL request:', error.message); }); -} - \ No newline at end of file +} \ No newline at end of file diff --git a/tools/picker/dist/index.6897f79f.css b/tools/picker/dist/index.6897f79f.css new file mode 100644 index 00000000..3761625c --- /dev/null +++ b/tools/picker/dist/index.6897f79f.css @@ -0,0 +1,2 @@ +html,body{height:100%}body{margin:0}#app{height:100%}.spectrum-Menu-popover_7ea47c{max-width:320px}[dir=ltr] .spectrum-Menu_7ea47c{text-align:left}[dir=rtl] .spectrum-Menu_7ea47c{text-align:right}.spectrum-Menu_7ea47c{box-sizing:border-box;padding:var(--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50))0;-webkit-user-select:none;user-select:none;margin:0;list-style-type:none;display:block;overflow-y:auto}.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c{margin-top:var(--spectrum-global-dimension-size-75);margin-bottom:var(--spectrum-global-dimension-size-40)}.spectrum-Menu_7ea47c:focus{outline:none}.spectrum-Menu-checkmark_7ea47c{opacity:1;padding-top:calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));transform:scale(1)}[dir=ltr] .spectrum-Menu-item_7ea47c{border-left:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}[dir=rtl] .spectrum-Menu-item_7ea47c{border-right:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}.spectrum-Menu-item_7ea47c{cursor:default;box-sizing:border-box;font-size:var(--spectrum-selectlist-option-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-selectlist-option-text-font-weight,var(--spectrum-global-font-weight-regular));margin:0;font-style:normal;text-decoration:none;position:relative}.spectrum-Menu-item_7ea47c:focus{outline:none}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{display:block}[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Menu-itemLabel_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);word-break:break-word;grid-area:text}.spectrum-Menu-itemLabel--wrapping_7ea47c{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spectrum-Menu-checkmark_7ea47c{grid-area:checkmark;place-self:flex-start end;display:none}.spectrum-Menu-divider_7ea47c{box-sizing:content-box;height:var(--spectrum-selectlist-divider-size,var(--spectrum-alias-border-size-thick));margin:calc(var(--spectrum-selectlist-divider-padding,3px)/2)var(--spectrum-global-dimension-size-150);border:none;padding:0;overflow:visible}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-450)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-450)}.spectrum-Menu-sectionHeading_7ea47c{margin:var(--spectrum-global-dimension-size-75)0 0 0;font-size:var(--spectrum-global-dimension-font-size-100);font-weight:var(--spectrum-global-font-weight-bold,700);line-height:var(--spectrum-alias-line-height-medium,var(--spectrum-global-dimension-size-250));padding-top:0;padding-bottom:0;display:block}.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c{margin:0;display:block}.spectrum-Menu-itemGrid_7ea47c{display:-ms-grid;-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);-ms-grid-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-areas:". . . . . . ."".icon text checkmark end keyboard."".icon description checkmark end keyboard."". . . . . . .";display:grid}.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c{-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{grid-area:end;place-self:flex-start end}[dir=ltr] .spectrum-Menu-icon_7ea47c{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-Menu-icon_7ea47c{padding-left:var(--spectrum-global-dimension-size-100)}.spectrum-Menu-icon_7ea47c{padding-top:var(--spectrum-global-dimension-size-10);grid-area:icon}.spectrum-Menu-description_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);font-size:var(--spectrum-global-dimension-size-150);grid-area:description}[dir=ltr] .spectrum-Menu-keyboard_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu-keyboard_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu-keyboard_7ea47c{grid-area:keyboard;align-self:flex-start;font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Menu_7ea47c{--spectrum-heading-subtitle3-text-color:var(--spectrum-global-color-gray-900);background-color:var(--spectrum-selectlist-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-Menu-item_7ea47c{background-color:var(--spectrum-selectlist-option-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}[dir=ltr] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-left-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}[dir=rtl] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-right-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-hover,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-hover,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:var(--spectrum-selectlist-option-icon-color-selected,var(--spectrum-alias-icon-color-selected))}.spectrum-Menu-item_7ea47c .is-active_7ea47c,.spectrum-Menu-item_7ea47c:active{background-color:var(--spectrum-selectlist-option-background-color-down,var(--spectrum-alias-background-color-hover-overlay))}.spectrum-Menu-item_7ea47c.is-disabled_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color-disabled,var(--spectrum-alias-text-color-disabled));cursor:default;background-image:none}.spectrum-Menu-sectionHeading_7ea47c{color:var(--spectrum-heading-subtitle3-text-color,var(--spectrum-global-color-gray-700))}.spectrum-Menu-divider_7ea47c{background-color:var(--spectrum-global-color-gray-300)}.spectrum-Menu-description_7ea47c{color:var(--spectrum-global-color-gray-700)}@media (forced-colors:active){.spectrum-Menu-divider_7ea47c{background-color:CanvasText;forced-color-adjust:none}.spectrum-Menu-item_7ea47c{forced-color-adjust:none;--spectrum-heading-subtitle3-text-color:ButtonText;--spectrum-selectlist-background-color:ButtonFace;--spectrum-selectlist-divider-color:ButtonText;--spectrum-selectlist-option-background-color:ButtonFace;--spectrum-selectlist-option-background-color-disabled:ButtonFace;--spectrum-selectlist-option-background-color-down:ButtonFace;--spectrum-selectlist-option-background-color-hover:Highlight;--spectrum-selectlist-option-background-color-key-focus:Highlight;--spectrum-selectlist-option-focus-indicator-color:Highlight;--spectrum-selectlist-option-icon-color-selected:Highlight;--spectrum-selectlist-option-text-color:ButtonText;--spectrum-selectlist-option-text-color-disabled:GrayText;--spectrum-selectlist-option-text-color-hover:HighlightText;--spectrum-selectlist-option-text-color-key-focus:HighlightText;--spectrum-alias-border-color-focus:Highlight}.spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:HighlightText}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color));background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay))}}.spectrum-Dropdown_6d8ec0{-webkit-user-select:none;user-select:none;max-width:100%;width:var(--spectrum-global-dimension-size-2400);min-width:var(--spectrum-dropdown-min-width,var(--spectrum-global-dimension-size-600));display:inline-block;position:relative}.spectrum-Dropdown_6d8ec0 select{appearance:none}.spectrum-Dropdown_6d8ec0 select::-ms-expand{display:none}.spectrum-Dropdown_6d8ec0 select::-ms-value{background-color:#0000}[dir=ltr] .spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{right:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{left:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150))}.spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{margin-top:calc(var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75))/-2);position:absolute;top:50%}.spectrum-Dropdown-trigger_6d8ec0{width:100%;contain:size;justify-content:space-between;align-items:center;display:flex;position:relative}[dir=ltr] .spectrum-Dropdown-label_6d8ec0{text-align:left}[dir=rtl] .spectrum-Dropdown-label_6d8ec0{text-align:right}.spectrum-Dropdown-label_6d8ec0{white-space:nowrap;height:calc(var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2);line-height:calc(var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2);font-size:var(--spectrum-dropdown-text-size,var(--spectrum-alias-font-size-default));text-overflow:ellipsis;flex:auto;overflow:hidden}.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{font-weight:var(--spectrum-dropdown-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular));font-style:var(--spectrum-dropdown-placeholder-text-font-style,var(--spectrum-global-font-style-italic));transition:color var(--spectrum-global-animation-duration-100,.13s)ease-in-out}[dir=ltr] .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-label_6d8ec0{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-label_6d8ec0{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=ltr] .spectrum-Dropdown-label_6d8ec0~.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-label_6d8ec0~.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}.spectrum-Dropdown-chevron_6d8ec0{vertical-align:top;transition:color var(--spectrum-global-animation-duration-100,.13s)ease-out;margin-top:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75)))/2);margin-bottom:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75)))/2);opacity:1;flex-shrink:0;display:inline-block;position:relative}.spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0{margin-top:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-dropdown-icon-size,var(--spectrum-alias-workflow-icon-size)))/2);margin-bottom:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-dropdown-icon-size,var(--spectrum-alias-workflow-icon-size)))/2)}[dir=ltr] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-invalidIcon_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-invalidIcon_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-gap,var(--spectrum-global-dimension-size-100))}.spectrum-Dropdown--quiet_6d8ec0{width:auto;min-width:var(--spectrum-dropdown-quiet-min-width,var(--spectrum-global-dimension-size-600))}.spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0{contain:none}[dir=ltr] .spectrum-Dropdown-popover--quiet_6d8ec0{margin-left:calc(var(--spectrum-dropdown-quiet-offset)*-1)}[dir=rtl] .spectrum-Dropdown-popover--quiet_6d8ec0{margin-right:calc(var(--spectrum-dropdown-quiet-offset)*-1)}.spectrum-Dropdown-popover--quiet_6d8ec0{width:var(--spectrum-global-dimension-size-2400);--spectrum-dropdown-quiet-offset:calc(var(--spectrum-dropdown-quiet-popover-offset-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin)))}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0{width:auto;flex-direction:column;display:inline-flex}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0{width:auto;min-width:var(--spectrum-dropdown-quiet-min-width,var(--spectrum-global-dimension-size-600))}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0{width:auto}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0.spectrum-Dropdown-fieldWrapper--positionSide_6d8ec0{flex-direction:row}.spectrum-Dropdown_6d8ec0{--spectrum-dropdown-placeholder-text-color:var(--spectrum-global-color-gray-800)}.spectrum-Dropdown_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0.is-selected_6d8ec0 .is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-down,var(--spectrum-global-color-gray-900))}.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0.spectrum-Dropdown-invalidIcon_6d8ec0{fill:var(--spectrum-dropdown-validation-icon-color-error,var(--spectrum-semantic-negative-color-icon))}.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Icon_6d8ec0,.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0{fill:var(--spectrum-dropdown-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0:active .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color,var(--spectrum-alias-placeholder-text-color))}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-hover,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-Dropdown-trigger_6d8ec0:active .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-mouse-focus,var(--spectrum-global-color-gray-900))}.spectrum-Dropdown-trigger_6d8ec0.focus-ring_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}@media (forced-colors:active){.spectrum-Dropdown_6d8ec0{--spectrum-dropdown-icon-color:ButtonText;--spectrum-dropdown-icon-color-disabled:GrayText;--spectrum-dropdown-icon-color-hover:ButtonText;--spectrum-dropdown-icon-color-key-focus:ButtonText;--spectrum-dropdown-placeholder-text-color:GrayText;--spectrum-dropdown-placeholder-text-color-disabled:GrayText;--spectrum-dropdown-placeholder-text-color-down:GrayText;--spectrum-dropdown-placeholder-text-color-hover:GrayText;--spectrum-dropdown-placeholder-text-color-key-focus:GrayText;--spectrum-dropdown-placeholder-text-color-mouse-focus:GrayText;--spectrum-dropdown-text-color-disabled:GrayText;--spectrum-dropdown-validation-icon-color-error:ButtonText}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0{color:ButtonText}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:GrayText}}[dir=ltr] .spectrum-FieldLabel_d2db1f{text-align:left}[dir=rtl] .spectrum-FieldLabel_d2db1f{text-align:right}.spectrum-FieldLabel_d2db1f{box-sizing:border-box;padding:var(--spectrum-fieldlabel-padding-top,var(--spectrum-global-dimension-size-50))0 var(--spectrum-fieldlabel-padding-bottom,var(--spectrum-global-dimension-size-65));font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));vertical-align:top;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;font-smoothing:subpixel-antialiased;cursor:default;flex:none;display:flex}[dir=ltr] .spectrum-FieldLabel--positionSide_d2db1f{padding-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-FieldLabel--positionSide_d2db1f{padding-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-FieldLabel--positionSide_d2db1f{padding-top:var(--spectrum-fieldlabel-side-padding-top,var(--spectrum-global-dimension-size-100));display:inline-flex}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:0}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:0}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel-requiredIcon_d2db1f{margin-top:var(--spectrum-fieldlabel-asterisk-margin-y,var(--spectrum-global-dimension-size-50));margin-bottom:0}[dir=ltr] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:right}[dir=rtl] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:left}.spectrum-FieldLabel--alignEnd_d2db1f{justify-content:flex-end}.spectrum-Field_d2db1f{--spectrum-field-default-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}[dir=ltr] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-global-dimension-size-50)}[dir=rtl] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-global-dimension-size-50)}.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-25);grid-area:contextualHelp}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f){display:-ms-inline-grid;-ms-grid-columns:auto auto minmax(0,1fr);-ms-grid-rows:auto 1fr auto;width:var(--spectrum-field-default-width);grid-template:"label contextualHelp.""field field field"1fr"helpText helpText helpText"/auto auto minmax(0,1fr);align-content:start;display:inline-grid}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f{width:100%;grid-area:field}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f{-ms-grid-columns:1fr auto 0;grid-template-columns:1fr auto 0}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f{grid-area:label}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f){align-items:flex-start;display:inline-flex}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{min-width:0;width:var(--spectrum-field-default-width);height:100%;flex:1}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f{width:100%}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f{min-width:0;flex:1}[dir=ltr] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-65)}[dir=ltr] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-right:0}[dir=rtl] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-left:0}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:left}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:right}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){border-collapse:separate;border-spacing:0 var(--spectrum-global-dimension-size-300);margin:calc(var(--spectrum-global-dimension-size-250)*-1)0;display:table}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f{width:100%;display:table-row}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f,.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f{display:table-cell}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f{vertical-align:top}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:right}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:left}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f{display:inline-flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f{flex:1}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{width:100%}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f{width:auto;min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f){min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400));flex-direction:column;margin:0;display:flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f)>*{margin-top:var(--spectrum-global-dimension-size-100);width:100%}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f{-ms-flex-align:first baseline;align-items:baseline}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f{top:var(--spectrum-global-dimension-size-40);margin-top:var(--spectrum-global-dimension-size-65);position:relative}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f{padding-top:0}.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f{word-break:break-word;overflow:hidden}.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:calc(-1*var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel_d2db1f,.spectrum-Form-itemLabel_d2db1f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f{color:var(--spectrum-fieldlabel-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color,var(--spectrum-global-color-gray-600))}[dir=ltr] .spectrum-HelpText_f395de{text-align:left}[dir=rtl] .spectrum-HelpText_f395de{text-align:right}.spectrum-HelpText_f395de{font-size:var(--spectrum-global-dimension-font-size-75);display:flex}[dir=ltr] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{margin-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{margin-left:var(--spectrum-global-dimension-size-100)}.spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{padding-top:var(--spectrum-global-dimension-size-40);padding-bottom:var(--spectrum-global-dimension-size-40);flex-shrink:0}[dir=ltr] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{margin-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{margin-left:var(--spectrum-global-dimension-size-100)}.spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{padding-top:var(--spectrum-global-dimension-static-size-50,4px);padding-bottom:var(--spectrum-global-dimension-size-115);line-height:var(--spectrum-global-font-line-height-small,1.3);text-transform:none;letter-spacing:var(--spectrum-global-font-letter-spacing-none,0);flex:1}.spectrum-HelpText--neutral_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-alias-label-text-color,var(--spectrum-global-color-gray-700))}.spectrum-HelpText--neutral_f395de.is-disabled_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500))}.spectrum-HelpText--negative_f395de .spectrum-HelpText-validationIcon_f395de,.spectrum-HelpText--negative_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-semantic-negative-color-text-small,var(--spectrum-global-color-red-600))}[dir=ltr] .spectrum-FieldLabel_d2db1f{text-align:left}[dir=rtl] .spectrum-FieldLabel_d2db1f{text-align:right}.spectrum-FieldLabel_d2db1f{box-sizing:border-box;padding:var(--spectrum-fieldlabel-padding-top,var(--spectrum-global-dimension-size-50))0 var(--spectrum-fieldlabel-padding-bottom,var(--spectrum-global-dimension-size-65));font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));vertical-align:top;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;font-smoothing:subpixel-antialiased;cursor:default;flex:none;display:flex}[dir=ltr] .spectrum-FieldLabel--positionSide_d2db1f{padding-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-FieldLabel--positionSide_d2db1f{padding-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-FieldLabel--positionSide_d2db1f{padding-top:var(--spectrum-fieldlabel-side-padding-top,var(--spectrum-global-dimension-size-100));display:inline-flex}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:0}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:0}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel-requiredIcon_d2db1f{margin-top:var(--spectrum-fieldlabel-asterisk-margin-y,var(--spectrum-global-dimension-size-50));margin-bottom:0}[dir=ltr] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:right}[dir=rtl] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:left}.spectrum-FieldLabel--alignEnd_d2db1f{justify-content:flex-end}.spectrum-Field_d2db1f{--spectrum-field-default-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}[dir=ltr] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-global-dimension-size-50)}[dir=rtl] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-global-dimension-size-50)}.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-25);grid-area:contextualHelp}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f){display:-ms-inline-grid;-ms-grid-columns:auto auto minmax(0,1fr);-ms-grid-rows:auto 1fr auto;width:var(--spectrum-field-default-width);grid-template:"label contextualHelp.""field field field"1fr"helpText helpText helpText"/auto auto minmax(0,1fr);align-content:start;display:inline-grid}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f{width:100%;grid-area:field}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f{-ms-grid-columns:1fr auto 0;grid-template-columns:1fr auto 0}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f{grid-area:label}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f){align-items:flex-start;display:inline-flex}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{min-width:0;width:var(--spectrum-field-default-width);height:100%;flex:1}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f{width:100%}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f{min-width:0;flex:1}[dir=ltr] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-65)}[dir=ltr] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-right:0}[dir=rtl] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-left:0}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:left}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:right}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){border-collapse:separate;border-spacing:0 var(--spectrum-global-dimension-size-300);margin:calc(var(--spectrum-global-dimension-size-250)*-1)0;display:table}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f{width:100%;display:table-row}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f,.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f{display:table-cell}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f{vertical-align:top}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:right}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:left}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f{display:inline-flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f{flex:1}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{width:100%}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f{width:auto;min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f){min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400));flex-direction:column;margin:0;display:flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f)>*{margin-top:var(--spectrum-global-dimension-size-100);width:100%}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f{-ms-flex-align:first baseline;align-items:baseline}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f{top:var(--spectrum-global-dimension-size-40);margin-top:var(--spectrum-global-dimension-size-65);position:relative}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f{padding-top:0}.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f{word-break:break-word;overflow:hidden}.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:calc(-1*var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel_d2db1f,.spectrum-Form-itemLabel_d2db1f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f{color:var(--spectrum-fieldlabel-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color,var(--spectrum-global-color-gray-600))}[dir=ltr] .spectrum-Checkbox_4870fc{padding-right:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*2)}[dir=rtl] .spectrum-Checkbox_4870fc{padding-left:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*2)}.spectrum-Checkbox_4870fc{box-sizing:border-box;min-height:var(--spectrum-checkbox-height,var(--spectrum-global-dimension-size-400));max-width:100%;vertical-align:top;isolation:isolate;align-items:flex-start;display:inline-flex;position:relative}[dir=ltr] .spectrum-Checkbox-input_4870fc{left:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*-1)}[dir=rtl] .spectrum-Checkbox-input_4870fc{right:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*-1)}.spectrum-Checkbox-input_4870fc{box-sizing:border-box;width:calc(100% + var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100)));height:100%;opacity:.0001;z-index:1;cursor:default;margin:0;padding:0;font-family:inherit;font-size:100%;line-height:1.15;position:absolute;top:0;overflow:visible}.spectrum-Checkbox-input_4870fc:disabled{cursor:default}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:after{margin:calc(var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25))*-1)}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before{border-width:calc(var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175))/2)}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc{display:none}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-partialCheckmark_4870fc{opacity:1;display:block;transform:scale(1)}.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before{border-width:calc(var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175))/2)}.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc{opacity:1;transform:scale(1)}[dir=ltr] .spectrum-Checkbox-label_4870fc{text-align:left}[dir=rtl] .spectrum-Checkbox-label_4870fc{text-align:right}[dir=ltr] .spectrum-Checkbox-label_4870fc{margin-left:var(--spectrum-checkbox-text-gap,var(--spectrum-global-dimension-size-125))}[dir=rtl] .spectrum-Checkbox-label_4870fc{margin-right:var(--spectrum-checkbox-text-gap,var(--spectrum-global-dimension-size-125))}.spectrum-Checkbox-label_4870fc{margin-top:var(--spectrum-global-dimension-size-65);font-size:var(--spectrum-checkbox-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-checkbox-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:1.49}.spectrum-Checkbox-box_4870fc{box-sizing:border-box;width:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));height:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));margin:calc((var(--spectrum-checkbox-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175)))/2)0;flex-grow:0;flex-shrink:0;position:relative}.spectrum-Checkbox-box_4870fc:before{z-index:0;content:"";box-sizing:border-box;width:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));height:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));border-radius:var(--spectrum-checkbox-box-border-radius,var(--spectrum-alias-border-radius-small));border-width:var(--spectrum-checkbox-box-border-size,var(--spectrum-alias-border-size-thick));transition:border var(--spectrum-global-animation-duration-100,.13s)ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-in-out;border-style:solid;display:block;position:absolute}.spectrum-Checkbox-box_4870fc:after{border-radius:calc(var(--spectrum-checkbox-box-border-radius,var(--spectrum-alias-border-radius-small)) + var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25)));content:"";margin:var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25));transition:opacity var(--spectrum-global-animation-duration-100,.13s)ease-out,margin var(--spectrum-global-animation-duration-100,.13s)ease-out;display:block;position:absolute;inset:0;transform:translate(0)}[dir=ltr] .spectrum-Checkbox-checkmark_4870fc,[dir=ltr] .spectrum-Checkbox-partialCheckmark_4870fc{left:50%}[dir=rtl] .spectrum-Checkbox-checkmark_4870fc,[dir=rtl] .spectrum-Checkbox-partialCheckmark_4870fc{right:50%}[dir=ltr] .spectrum-Checkbox-checkmark_4870fc,[dir=ltr] .spectrum-Checkbox-partialCheckmark_4870fc{margin-left:calc(var(--spectrum-icon-checkmark-small-width)/-2)}[dir=rtl] .spectrum-Checkbox-checkmark_4870fc,[dir=rtl] .spectrum-Checkbox-partialCheckmark_4870fc{margin-right:calc(var(--spectrum-icon-checkmark-small-width)/-2)}.spectrum-Checkbox-checkmark_4870fc,.spectrum-Checkbox-partialCheckmark_4870fc{margin-top:calc(var(--spectrum-icon-checkmark-small-height)/-2);opacity:0;transition:opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out;position:absolute;top:50%;transform:scale(0)}.spectrum-Checkbox-partialCheckmark_4870fc{display:none}.spectrum-Checkbox_4870fc{color:var(--spectrum-checkbox-text-color,var(--spectrum-alias-text-color))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-checkmark_4870fc,.spectrum-Checkbox_4870fc .spectrum-Checkbox-partialCheckmark_4870fc{color:var(--spectrum-checkbox-checkmark-color,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color,var(--spectrum-global-color-gray-600));background-color:var(--spectrum-checkbox-emphasized-box-background-color,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color,var(--spectrum-alias-text-color))}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-900)}.spectrum-Checkbox_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1000)}.spectrum-Checkbox_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1100)}.spectrum-Checkbox_4870fc{border-color:var(--spectrum-checkbox-emphasized-box-border-color,var(--spectrum-global-color-gray-600))}.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-hover,var(--spectrum-global-color-gray-700))}.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-down,var(--spectrum-global-color-gray-800))}.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled:active+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled:active+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-disabled,var(--spectrum-global-color-gray-400));background-color:var(--spectrum-checkbox-emphasized-box-background-color-disabled,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled~.spectrum-Checkbox-label_4870fc,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Checkbox-input_4870fc+.spectrum-Checkbox-box_4870fc:after{box-shadow:0 0 0 var(--spectrum-checkbox-focus-ring-size-key-focus,var(--spectrum-alias-focus-ring-size))var(--spectrum-checkbox-focus-ring-color-key-focus,var(--spectrum-alias-focus-ring-color));opacity:0}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-key-focus)}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:after{opacity:1}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox-input_4870fc:checked.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1000)}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Checkbox--quiet_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-selected)}.spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-selected-hover)}.spectrum-Checkbox--quiet_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-quiet-box-border-color-selected-down,var(--spectrum-global-color-gray-900))}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-hover,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-hover,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-down,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-down,var(--spectrum-global-color-red-700))}@media (forced-colors:active){.spectrum-Checkbox_4870fc{forced-color-adjust:none;--spectrum-checkbox-box-border-color:ButtonText;--spectrum-checkbox-box-border-color-error:Highlight;--spectrum-checkbox-box-border-color-error-down:Highlight;--spectrum-checkbox-box-border-color-error-hover:Highlight;--spectrum-checkbox-box-border-color-key-focus:Highlight;--spectrum-checkbox-checkmark-color:HighlightText;--spectrum-checkbox-emphasized-box-background-color:ButtonFace;--spectrum-checkbox-emphasized-box-background-color-disabled:ButtonFace;--spectrum-checkbox-emphasized-box-border-color:ButtonText;--spectrum-checkbox-emphasized-box-border-color-disabled:GrayText;--spectrum-checkbox-emphasized-box-border-color-down:Highlight;--spectrum-checkbox-emphasized-box-border-color-hover:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-down:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-hover:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-key-focus:Highlight;--spectrum-checkbox-emphasized-text-color:FieldText;--spectrum-checkbox-emphasized-text-color-down:FieldText;--spectrum-checkbox-emphasized-text-color-hover:FieldText;--spectrum-checkbox-emphasized-text-color-key-focus:FieldText;--spectrum-checkbox-focus-ring-color-key-focus:ButtonText;--spectrum-checkbox-quiet-box-border-color-selected:Highlight;--spectrum-checkbox-quiet-box-border-color-selected-down:Highlight;--spectrum-checkbox-quiet-box-border-color-selected-hover:Highlight;--spectrum-checkbox-text-color:FieldText;--spectrum-checkbox-text-color-disabled:GrayText;--spectrum-checkbox-text-color-error:FieldText;--spectrum-checkbox-text-color-error-down:FieldText;--spectrum-checkbox-text-color-error-hover:FieldText}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-default)}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-disabled_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:GrayText}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}}.spectrum-FieldGroup_41d350.spectrum-FieldGroup_41d350{width:auto;--spectrum-field-default-width:auto}.spectrum-FieldGroup-group_41d350{flex-direction:column;display:flex}.spectrum-FieldGroup-group--horizontal_41d350{flex-flow:wrap}.spectrum-BarLoader_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px);width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400));vertical-align:top;isolation:isolate;flex-flow:wrap;justify-content:space-between;align-items:center;display:inline-flex;position:relative}.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f{max-width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400))}.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f{max-width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400));width:100%}.spectrum-BarLoader-track_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px);width:100%;height:var(--spectrum-barloader-large-height,var(--spectrum-global-dimension-size-75));border-radius:var(--spectrum-barloader-large-border-radius);z-index:1;overflow:hidden}.spectrum-BarLoader-fill_48541f{height:var(--spectrum-barloader-large-height,var(--spectrum-global-dimension-size-75));border:none;transition:width 1s}[dir=ltr] .spectrum-BarLoader-label_48541f,[dir=ltr] .spectrum-BarLoader-percentage_48541f{text-align:left}[dir=rtl] .spectrum-BarLoader-label_48541f,[dir=rtl] .spectrum-BarLoader-percentage_48541f{text-align:right}.spectrum-BarLoader-label_48541f,.spectrum-BarLoader-percentage_48541f{font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));margin-bottom:var(--spectrum-barloader-large-label-gap-y,var(--spectrum-global-dimension-size-115))}.spectrum-BarLoader-label_48541f{flex:1}[dir=ltr] .spectrum-BarLoader-percentage_48541f{margin-left:var(--spectrum-barloader-small-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader-percentage_48541f{margin-right:var(--spectrum-barloader-small-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader-percentage_48541f{align-self:flex-start}.spectrum-BarLoader--sideLabel_48541f{min-width:-moz-fit-content;min-width:-moz-fit-content;min-width:-moz-fit-content;min-width:-moz-fit-content;min-width:fit-content;flex-flow:row;justify-content:space-between;display:inline-flex}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f{width:inherit}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-right:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-left:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-bottom:0}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{text-align:right}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{text-align:left}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{margin-left:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{margin-right:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{order:3;margin-bottom:0}.spectrum-BarLoader--small_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px)}.spectrum-BarLoader--small_48541f .spectrum-BarLoader-fill_48541f{height:var(--spectrum-barloader-small-height,var(--spectrum-global-dimension-size-50))}.spectrum-BarLoader--small_48541f .spectrum-BarLoader-track_48541f{height:var(--spectrum-barloader-small-height,var(--spectrum-global-dimension-size-50));border-radius:var(--spectrum-barloader-small-border-radius)}.spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{width:var(--spectrum-barloader-large-indeterminate-fill-width,var(--spectrum-global-dimension-size-1700));animation-timing-function:var(--spectrum-barloader-large-indeterminate-animation-ease,var(--spectrum-global-animation-ease-in-out));will-change:transform;position:relative}[dir=ltr] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{animation:indeterminate-loop-ltr_48541f var(--spectrum-barloader-large-indeterminate-duration,var(--spectrum-global-animation-duration-2000))infinite}[dir=rtl] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{animation:indeterminate-loop-rtl_48541f var(--spectrum-barloader-large-indeterminate-duration,var(--spectrum-global-animation-duration-2000))infinite}@keyframes indeterminate-loop-ltr_48541f{0%{transform:translate(calc(var(--spectrum-barloader-large-indeterminate-fill-width,var(--spectrum-global-dimension-size-1700))*-1))}to{transform:translate(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400)))}}@keyframes indeterminate-loop-rtl_48541f{0%{transform:translate(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400)))}to{transform:translate(calc(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400))*-1))}}.spectrum-BarLoader_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-accent-color-900)}.spectrum-BarLoader_48541f .spectrum-BarLoader-track_48541f{background-color:var(--spectrum-barloader-large-track-color,var(--spectrum-alias-track-color-default))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-barloader-large-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-label_48541f,.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-percentage_48541f{color:var(--spectrum-barloader-large-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-track_48541f{background-color:var(--spectrum-barloader-large-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-BarLoader_48541f.is-positive_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-positive,var(--spectrum-semantic-positive-color-status))}.spectrum-BarLoader_48541f.is-warning_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-warning,var(--spectrum-semantic-notice-color-status))}.spectrum-BarLoader_48541f.is-critical_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-critical,var(--spectrum-semantic-negative-color-status))}.spectrum-BarLoader-label_48541f,.spectrum-BarLoader-percentage_48541f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color));color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color));color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}@media (forced-colors:active){.spectrum-BarLoader-track_48541f{forced-color-adjust:none;--spectrum-barloader-large-track-fill-color:ButtonText;--spectrum-barloader-large-track-color:ButtonFace;border:1px solid ButtonText}}.spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153{animation:1s linear infinite spectrum-fill-mask-2_7c1153}@keyframes spectrum-fill-mask-1_7c1153{0%{transform:rotate(90deg)}1.69%{transform:rotate(72.3deg)}3.39%{transform:rotate(55.5deg)}5.08%{transform:rotate(40.3deg)}6.78%{transform:rotate(25deg)}8.47%{transform:rotate(10.6deg)}10.17%{transform:rotate(0)}11.86%{transform:rotate(0)}13.56%{transform:rotate(0)}15.25%{transform:rotate(0)}16.95%{transform:rotate(0)}18.64%{transform:rotate(0)}20.34%{transform:rotate(0)}22.03%{transform:rotate(0)}23.73%{transform:rotate(0)}25.42%{transform:rotate(0)}27.12%{transform:rotate(0)}28.81%{transform:rotate(0)}30.51%{transform:rotate(0)}32.2%{transform:rotate(0)}33.9%{transform:rotate(0)}35.59%{transform:rotate(0)}37.29%{transform:rotate(0)}38.98%{transform:rotate(0)}40.68%{transform:rotate(0)}42.37%{transform:rotate(5.3deg)}44.07%{transform:rotate(13.4deg)}45.76%{transform:rotate(20.6deg)}47.46%{transform:rotate(29deg)}49.15%{transform:rotate(36.5deg)}50.85%{transform:rotate(42.6deg)}52.54%{transform:rotate(48.8deg)}54.24%{transform:rotate(54.2deg)}55.93%{transform:rotate(59.4deg)}57.63%{transform:rotate(63.2deg)}59.32%{transform:rotate(67.2deg)}61.02%{transform:rotate(70.8deg)}62.71%{transform:rotate(73.8deg)}64.41%{transform:rotate(76.2deg)}66.1%{transform:rotate(78.7deg)}67.8%{transform:rotate(80.6deg)}69.49%{transform:rotate(82.6deg)}71.19%{transform:rotate(83.7deg)}72.88%{transform:rotate(85deg)}74.58%{transform:rotate(86.3deg)}76.27%{transform:rotate(87deg)}77.97%{transform:rotate(87.7deg)}79.66%{transform:rotate(88.3deg)}81.36%{transform:rotate(88.6deg)}83.05%{transform:rotate(89.2deg)}84.75%{transform:rotate(89.2deg)}86.44%{transform:rotate(89.5deg)}88.14%{transform:rotate(89.9deg)}89.83%{transform:rotate(89.7deg)}91.53%{transform:rotate(90.1deg)}93.22%{transform:rotate(90.2deg)}94.92%{transform:rotate(90.1deg)}96.61%{transform:rotate(90deg)}98.31%{transform:rotate(89.8deg)}to{transform:rotate(90deg)}}@keyframes spectrum-fill-mask-2_7c1153{0%{transform:rotate(180deg)}1.69%{transform:rotate(180deg)}3.39%{transform:rotate(180deg)}5.08%{transform:rotate(180deg)}6.78%{transform:rotate(180deg)}8.47%{transform:rotate(180deg)}10.17%{transform:rotate(179.2deg)}11.86%{transform:rotate(164deg)}13.56%{transform:rotate(151.8deg)}15.25%{transform:rotate(140.8deg)}16.95%{transform:rotate(130.3deg)}18.64%{transform:rotate(120.4deg)}20.34%{transform:rotate(110.8deg)}22.03%{transform:rotate(101.6deg)}23.73%{transform:rotate(93.5deg)}25.42%{transform:rotate(85.4deg)}27.12%{transform:rotate(78.1deg)}28.81%{transform:rotate(71.2deg)}30.51%{transform:rotate(89.1deg)}32.2%{transform:rotate(105.5deg)}33.9%{transform:rotate(121.3deg)}35.59%{transform:rotate(135.5deg)}37.29%{transform:rotate(148.4deg)}38.98%{transform:rotate(161deg)}40.68%{transform:rotate(173.5deg)}42.37%{transform:rotate(180deg)}44.07%{transform:rotate(180deg)}45.76%{transform:rotate(180deg)}47.46%{transform:rotate(180deg)}49.15%{transform:rotate(180deg)}50.85%{transform:rotate(180deg)}52.54%{transform:rotate(180deg)}54.24%{transform:rotate(180deg)}55.93%{transform:rotate(180deg)}57.63%{transform:rotate(180deg)}59.32%{transform:rotate(180deg)}61.02%{transform:rotate(180deg)}62.71%{transform:rotate(180deg)}64.41%{transform:rotate(180deg)}66.1%{transform:rotate(180deg)}67.8%{transform:rotate(180deg)}69.49%{transform:rotate(180deg)}71.19%{transform:rotate(180deg)}72.88%{transform:rotate(180deg)}74.58%{transform:rotate(180deg)}76.27%{transform:rotate(180deg)}77.97%{transform:rotate(180deg)}79.66%{transform:rotate(180deg)}81.36%{transform:rotate(180deg)}83.05%{transform:rotate(180deg)}84.75%{transform:rotate(180deg)}86.44%{transform:rotate(180deg)}88.14%{transform:rotate(180deg)}89.83%{transform:rotate(180deg)}91.53%{transform:rotate(180deg)}93.22%{transform:rotate(180deg)}94.92%{transform:rotate(180deg)}96.61%{transform:rotate(180deg)}98.31%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes spectrum-fills-rotate_7c1153{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}.spectrum-CircleLoader_7c1153{width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));direction:ltr;display:inline-block;position:relative}.spectrum-CircleLoader-track_7c1153{box-sizing:border-box;width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));border-style:solid;border-width:var(--spectrum-loader-circle-medium-border-size);border-radius:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400))}.spectrum-CircleLoader-fills_7c1153{width:100%;height:100%;position:absolute;top:0;left:0}.spectrum-CircleLoader-fill_7c1153{box-sizing:border-box;width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));border-style:solid;border-width:var(--spectrum-loader-circle-medium-border-size);border-radius:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400))}.spectrum-CircleLoader-fillMask1_7c1153,.spectrum-CircleLoader-fillMask2_7c1153{width:50%;height:100%;transform-origin:100%;position:absolute;overflow:hidden;transform:rotate(180deg)}.spectrum-CircleLoader-fillSubMask1_7c1153,.spectrum-CircleLoader-fillSubMask2_7c1153{width:100%;height:100%;transform-origin:100%;overflow:hidden;transform:rotate(-180deg)}.spectrum-CircleLoader-fillMask2_7c1153{transform:rotate(0)}.spectrum-CircleLoader--small_7c1153{width:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200));height:var(--spectrum-loader-circle-small-height,var(--spectrum-global-dimension-static-size-200))}.spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-track_7c1153,.spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-fill_7c1153{width:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200));height:var(--spectrum-loader-circle-small-height,var(--spectrum-global-dimension-static-size-200));border-style:solid;border-width:var(--spectrum-loader-circle-small-border-size);border-radius:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200))}.spectrum-CircleLoader--large_7c1153{width:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800));height:var(--spectrum-loader-circle-large-height,var(--spectrum-global-dimension-size-800))}.spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-track_7c1153,.spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-fill_7c1153{width:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800));height:var(--spectrum-loader-circle-large-height,var(--spectrum-global-dimension-size-800));border-style:solid;border-width:var(--spectrum-loader-circle-large-border-size,var(--spectrum-global-dimension-size-50));border-radius:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800))}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fills_7c1153{will-change:transform;transform-origin:50%;animation:1s cubic-bezier(.25,.78,.48,.89) infinite spectrum-fills-rotate_7c1153;transform:translateZ(0)}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask1_7c1153{will-change:transform;animation:1s linear infinite spectrum-fill-mask-1_7c1153;transform:translateZ(0)}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask2_7c1153{will-change:transform;animation:1s linear infinite spectrum-fill-mask-2_7c1153;transform:translateZ(0)}.spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-track-color,var(--spectrum-alias-track-color-default))}.spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-accent-color-900)}.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-fill-color,var(--spectrum-global-color-static-white))}@media (forced-colors:active){.spectrum-CircleLoader-fill_7c1153{--spectrum-loader-circle-medium-track-fill-color:Highlight}}.react-spectrum-ListView_dd5487{box-sizing:border-box;border-color:var(--spectrum-alias-border-color-mid,var(--spectrum-global-color-gray-300));border-style:solid;border-width:var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));vertical-align:var(--spectrum-table-cell-vertical-alignment,top);border-collapse:separate;border-spacing:0;background-color:var(--spectrum-global-color-gray-50);-webkit-user-select:none;user-select:none;outline:0;padding:0;position:relative;overflow:auto;transform:translate(0)}.react-spectrum-ListView_dd5487 .react-spectrum-ListView-row_dd5487{outline:none}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{left:1px}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{right:1px}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{left:1px}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{left:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{right:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{left:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{content:"";z-index:3;pointer-events:none;display:block;position:absolute;top:0;bottom:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487{background-color:var(--spectrum-table-row-background-color-selected,var(--spectrum-alias-highlight-selected))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487,.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-selected-hover,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-selected-key-focus,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487:after{box-shadow:inset 1px 0 0 0 var(--spectrum-global-color-blue-500),inset -1px 0 0 0 var(--spectrum-global-color-blue-500),inset 0 -1px 0 0 var(--spectrum-global-color-blue-500),inset 0 1px 0 0 var(--spectrum-global-color-blue-500);top:-1px}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{top:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):not(.is-next-selected_dd5487):not(.react-spectrum-ListViewItem--isFlushBottom_dd5487):after{box-shadow:inset 0 -1px 0 0 var(--spectrum-table-cell-border-color,var(--spectrum-global-color-gray-300))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{white-space:normal;height:auto}.react-spectrum-ListView-row_dd5487{cursor:default}[dir=ltr] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{left:0}[dir=rtl] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{right:0}.react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{content:"";width:3px;z-index:4;background:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus));position:absolute;top:0;bottom:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487{background-color:var(--spectrum-alias-background-color-transparent,transparent);border-width:0;border-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}.react-spectrum-ListViewItem_dd5487{display:-ms-grid;box-sizing:border-box;font-size:var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100));font-weight:var(--spectrum-global-font-weight-regular,400);line-height:calc(var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100))*var(--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)) - 1px);padding:var(--spectrum-global-dimension-size-85)var(--spectrum-global-dimension-size-160);color:var(--spectrum-alias-text-color,var(--spectrum-global-color-gray-800));min-height:var(--spectrum-global-dimension-size-500);outline:0;display:grid;position:relative}.react-spectrum-ListViewItem_dd5487.is-hovered_dd5487,.react-spectrum-ListViewItem_dd5487.is-focused_dd5487,.react-spectrum-ListViewItem_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-hover,var(--spectrum-alias-highlight-hover))}.react-spectrum-ListViewItem_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-down,var(--spectrum-alias-highlight-active))}.react-spectrum-ListViewItem_dd5487.is-selected_dd5487,.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487,.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-hover,var(--spectrum-alias-highlight-hover))}.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-selected-key-focus,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487,.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-description_dd5487{color:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500))}.react-spectrum-ListViewItem_dd5487.has-checkbox_dd5487{padding-top:0;padding-bottom:0}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-grid_dd5487{display:-ms-grid;-ms-grid-columns:auto auto auto 1fr auto auto auto;-ms-grid-rows:1fr auto;grid-template:"draghandle checkbox thumbnail content actions actionmenu chevron"1fr"draghandle checkbox thumbnail description actions actionmenu chevron"/auto auto auto 1fr auto auto auto;align-items:center;display:grid}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{padding-left:var(--spectrum-global-dimension-size-40)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{padding-right:var(--spectrum-global-dimension-size-40)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{width:var(--spectrum-global-dimension-size-250);padding:var(--spectrum-global-dimension-size-25);grid-area:draghandle;justify-content:center;place-self:stretch stretch;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487{width:var(--spectrum-global-dimension-size-200);border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));justify-content:center;align-items:center;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487.focus-ring_dd5487{box-shadow:inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus));outline:none}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkboxWrapper_dd5487{-ms-grid-column-align:center;grid-area:checkbox;place-items:center;transition-duration:.16s;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487{min-height:0;height:100%}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487>span{margin:0}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{padding-left:var(--spectrum-global-dimension-size-100)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{-ms-grid-column-align:center;border-radius:var(--spectrum-global-dimension-size-25);width:var(--spectrum-global-dimension-size-400);height:var(--spectrum-global-dimension-size-400);grid-area:thumbnail;justify-content:center;place-items:center;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487>img{width:unset;height:100%}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{white-space:nowrap;text-overflow:ellipsis;height:calc(var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100))*var(--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)) - 1px);flex-grow:1;overflow:hidden}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487{color:var(--spectrum-global-color-gray-800);font-size:var(--spectrum-global-dimension-font-size-100);grid-area:content}.react-spectrum-ListViewItem_dd5487:not(.react-spectrum-ListView--hasDescription_dd5487) .react-spectrum-ListViewItem-content_dd5487{grid-area:content/description}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{color:var(--spectrum-global-color-gray-700);font-size:var(--spectrum-global-dimension-font-size-75);grid-area:description}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actions_dd5487{flex-grow:0;flex-shrink:0;grid-area:actions}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487{grid-area:actionmenu}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{padding-left:var(--spectrum-global-dimension-size-75)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{padding-right:var(--spectrum-global-dimension-size-75)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{transition:color var(--spectrum-global-animation-duration-100,.13s);grid-area:chevron;display:none}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487.is-disabled_dd5487{color:var(--spectrum-alias-icon-color-disabled,var(--spectrum-global-color-gray-400))}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487{width:var(--spectrum-global-dimension-size-2400);border:1px solid var(--spectrum-dropzone-border-color-selected-hover,var(--spectrum-global-color-blue-400));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));background-color:var(--spectrum-global-color-gray-50)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--compact_dd5487{padding-top:var(--spectrum-global-dimension-size-50);padding-bottom:var(--spectrum-global-dimension-size-50)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--spacious_dd5487{padding-top:var(--spectrum-global-dimension-size-100);padding-bottom:var(--spectrum-global-dimension-size-100)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-grid_dd5487{-ms-grid-columns:auto auto 1fr auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:"thumbnail content.badge""thumbnail description.badge"}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-badge_dd5487{color:#fff;background:var(--spectrum-global-color-blue-400);border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));grid-area:badge;padding:0 8px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487{position:relative}[dir=ltr] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{left:4px}[dir=rtl] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{right:4px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{content:"";z-index:-1;width:100%;height:100%;border:1px solid var(--spectrum-dropzone-border-color-selected-hover,var(--spectrum-global-color-blue-400));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));background-color:var(--spectrum-global-color-gray-50);display:block;position:absolute;top:4px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actions_dd5487,.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487{display:none}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-right-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{visibility:hidden;display:inline-block}.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator--hasChildItems_dd5487{visibility:visible}.react-spectrum-ListView--compact_dd5487 .react-spectrum-ListViewItem_dd5487{padding-top:var(--spectrum-global-dimension-size-50);padding-bottom:var(--spectrum-global-dimension-size-50);min-height:var(--spectrum-global-dimension-size-400)}.react-spectrum-ListView--spacious_dd5487 .react-spectrum-ListViewItem_dd5487{padding-top:var(--spectrum-global-dimension-size-100);padding-bottom:var(--spectrum-global-dimension-size-100);min-height:var(--spectrum-global-dimension-size-600)}[dir=ltr] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487{padding-left:0}[dir=rtl] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487{padding-right:0}[dir=ltr] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input{left:0}[dir=rtl] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input{right:0}.react-spectrum-ListViewItem--dropTarget_dd5487{background-color:var(--spectrum-alias-highlight-selected);box-shadow:inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487{border-color:var(--spectrum-global-color-blue-500);background-color:var(--spectrum-alias-highlight-selected);box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487.react-spectrum-ListView--quiet_dd5487{box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView-centeredWrapper_dd5487{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.react-spectrum-ListView-centeredWrapper_dd5487.react-spectrum-ListView-centeredWrapper--loadingMore_dd5487{padding-top:var(--spectrum-global-dimension-size-50)}[dir=ltr] .react-spectrum-ListViewInsertionIndicator_dd5487{left:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))}[dir=rtl] .react-spectrum-ListViewInsertionIndicator_dd5487{right:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))}.react-spectrum-ListViewInsertionIndicator_dd5487{width:calc(100% - 2*var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150)));outline:none;position:absolute}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487{background:var(--spectrum-dropindicator-border-color,var(--spectrum-global-color-blue-400));border-bottom:2px solid var(--spectrum-dropindicator-border-color,var(--spectrum-global-color-blue-400))}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before{left:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1)}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after{right:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1)}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before,.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after{content:"";top:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1/2 + var(--spectrum-dropindicator-border-size,var(--spectrum-alias-border-size-thick))/2);width:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150));height:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150));border:var(--spectrum-dropindicator-border-size,var(--spectrum-alias-border-size-thick))solid;box-sizing:border-box;border-color:var(--spectrum-dropindicator-circle-border-color,var(--spectrum-global-color-blue-400));background-color:var(--spectrum-global-color-gray-50);z-index:5;border-radius:50%;position:absolute}.react-spectrum-ListViewItem-checkbox--enter_dd5487{opacity:.01;max-width:0}.react-spectrum-ListViewItem-checkbox--enterActive_dd5487,.react-spectrum-ListViewItem-checkbox--exit_dd5487{opacity:1;max-width:80px}.react-spectrum-ListViewItem-checkbox--exitActive_dd5487{opacity:.01;max-width:0}.react-spectrum-ListView_dd5487.focus-ring_dd5487{border-color:var(--spectrum-global-color-blue-500);box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Image-img_fdc794{height:100%;width:100%;max-width:100%;display:block}.spectrum--darkest_256eeb{--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-gray-50:#000;--spectrum-gray-75:#0e0e0e;--spectrum-gray-100:#1d1d1d;--spectrum-gray-200:#303030;--spectrum-gray-300:#4b4b4b;--spectrum-gray-400:#6a6a6a;--spectrum-gray-500:#8d8d8d;--spectrum-gray-600:#b0b0b0;--spectrum-gray-700:#d0d0d0;--spectrum-gray-800:#ebebeb;--spectrum-gray-900:#fff;--spectrum-red-100:#570000;--spectrum-red-200:#6e0000;--spectrum-red-300:#8a0000;--spectrum-red-400:#a70000;--spectrum-red-500:#c40706;--spectrum-red-600:#dd2118;--spectrum-red-700:#ee4331;--spectrum-red-800:#f9634c;--spectrum-red-900:#ff816b;--spectrum-red-1000:#ff9e8c;--spectrum-red-1100:#ffb7a9;--spectrum-red-1200:#ffcdc3;--spectrum-red-1300:#ffdfd9;--spectrum-red-1400:#ffedea;--spectrum-orange-100:#481801;--spectrum-orange-200:#5c2000;--spectrum-orange-300:#732b00;--spectrum-orange-400:#8a3700;--spectrum-orange-500:#a24400;--spectrum-orange-600:#ba5200;--spectrum-orange-700:#d26200;--spectrum-orange-800:#e87400;--spectrum-orange-900:#f98917;--spectrum-orange-1000:#ffa23b;--spectrum-orange-1100:#ffbc66;--spectrum-orange-1200:#fdd291;--spectrum-orange-1300:#ffe2b5;--spectrum-orange-1400:#ffefd5;--spectrum-yellow-100:#352400;--spectrum-yellow-200:#442f00;--spectrum-yellow-300:#563e00;--spectrum-yellow-400:#674d00;--spectrum-yellow-500:#7a5c00;--spectrum-yellow-600:#8d6c00;--spectrum-yellow-700:#a17e00;--spectrum-yellow-800:#b49000;--spectrum-yellow-900:#c7a200;--spectrum-yellow-1000:#d8b500;--spectrum-yellow-1100:#e9c700;--spectrum-yellow-1200:#f7d804;--spectrum-yellow-1300:#f9e961;--spectrum-yellow-1400:#fcf3aa;--spectrum-chartreuse-100:#202b00;--spectrum-chartreuse-200:#2a3800;--spectrum-chartreuse-300:#364800;--spectrum-chartreuse-400:#425800;--spectrum-chartreuse-500:#4f6900;--spectrum-chartreuse-600:#5d7b00;--spectrum-chartreuse-700:#6b8e00;--spectrum-chartreuse-800:#7aa100;--spectrum-chartreuse-900:#8ab403;--spectrum-chartreuse-1000:#9ac60b;--spectrum-chartreuse-1100:#aad816;--spectrum-chartreuse-1200:#bbe829;--spectrum-chartreuse-1300:#cdf648;--spectrum-chartreuse-1400:#e1fd84;--spectrum-celery-100:#002f07;--spectrum-celery-200:#003d09;--spectrum-celery-300:#004d0c;--spectrum-celery-400:#005f0f;--spectrum-celery-500:#00710f;--spectrum-celery-600:#00840f;--spectrum-celery-700:#009714;--spectrum-celery-800:#0dab25;--spectrum-celery-900:#2dbf3a;--spectrum-celery-1000:#50d052;--spectrum-celery-1100:#73e06b;--spectrum-celery-1200:#93ed83;--spectrum-celery-1300:#b4f7a2;--spectrum-celery-1400:#d5fcca;--spectrum-green-100:#0a2c1c;--spectrum-green-200:#073b24;--spectrum-green-300:#004c2e;--spectrum-green-400:#005d39;--spectrum-green-500:#006f45;--spectrum-green-600:#008252;--spectrum-green-700:#009562;--spectrum-green-800:#1ca872;--spectrum-green-900:#34bb84;--spectrum-green-1000:#4bcd95;--spectrum-green-1100:#67dea8;--spectrum-green-1200:#89ecbc;--spectrum-green-1300:#b1f4d1;--spectrum-green-1400:#d6f9e4;--spectrum-seafoam-100:#122b2a;--spectrum-seafoam-200:#133937;--spectrum-seafoam-300:#104946;--spectrum-seafoam-400:#035b58;--spectrum-seafoam-500:#006c68;--spectrum-seafoam-600:#007f79;--spectrum-seafoam-700:#00928c;--spectrum-seafoam-800:#00a59f;--spectrum-seafoam-900:#1ab9b2;--spectrum-seafoam-1000:#42cac3;--spectrum-seafoam-1100:#66dad3;--spectrum-seafoam-1200:#8be8e1;--spectrum-seafoam-1300:#b3f2ed;--spectrum-seafoam-1400:#d7f8f4;--spectrum-cyan-100:#002944;--spectrum-cyan-200:#003658;--spectrum-cyan-300:#00456c;--spectrum-cyan-400:#005680;--spectrum-cyan-500:#006793;--spectrum-cyan-600:#0079a7;--spectrum-cyan-700:#008cba;--spectrum-cyan-800:#04a0cd;--spectrum-cyan-900:#17b4dd;--spectrum-cyan-1000:#39c7ea;--spectrum-cyan-1100:#60d8f3;--spectrum-cyan-1200:#86e6fa;--spectrum-cyan-1300:#aaf2ff;--spectrum-cyan-1400:#cef9ff;--spectrum-blue-100:#002651;--spectrum-blue-200:#00326a;--spectrum-blue-300:#004087;--spectrum-blue-400:#004ea6;--spectrum-blue-500:#005cc8;--spectrum-blue-600:#066ce7;--spectrum-blue-700:#1d80f5;--spectrum-blue-800:#4096f3;--spectrum-blue-900:#5eaaf7;--spectrum-blue-1000:#7cbdfa;--spectrum-blue-1100:#98cefd;--spectrum-blue-1200:#b3defe;--spectrum-blue-1300:#ceeaff;--spectrum-blue-1400:#e3f3ff;--spectrum-indigo-100:#1a1d61;--spectrum-indigo-200:#23277d;--spectrum-indigo-300:#2e329e;--spectrum-indigo-400:#3a3fbd;--spectrum-indigo-500:#494ed8;--spectrum-indigo-600:#5a60eb;--spectrum-indigo-700:#6e73f6;--spectrum-indigo-800:#8488fd;--spectrum-indigo-900:#999dff;--spectrum-indigo-1000:#aeb1ff;--spectrum-indigo-1100:#c2c4ff;--spectrum-indigo-1200:#d4d5ff;--spectrum-indigo-1300:#e3e4ff;--spectrum-indigo-1400:#f0f0ff;--spectrum-purple-100:#321068;--spectrum-purple-200:#430d8c;--spectrum-purple-300:#5610ad;--spectrum-purple-400:#6a1dc8;--spectrum-purple-500:#7e31de;--spectrum-purple-600:#9146ec;--spectrum-purple-700:#a25ef6;--spectrum-purple-800:#b277fa;--spectrum-purple-900:#c08ffc;--spectrum-purple-1000:#cea6fd;--spectrum-purple-1100:#dbbcfe;--spectrum-purple-1200:#e6cfff;--spectrum-purple-1300:#f0e0ff;--spectrum-purple-1400:#f8edff;--spectrum-fuchsia-100:#460e44;--spectrum-fuchsia-200:#5d095c;--spectrum-fuchsia-300:#780078;--spectrum-fuchsia-400:#920093;--spectrum-fuchsia-500:#a913aa;--spectrum-fuchsia-600:#bf2bbf;--spectrum-fuchsia-700:#d341d5;--spectrum-fuchsia-800:#e45be5;--spectrum-fuchsia-900:#ef78ee;--spectrum-fuchsia-1000:#f695f3;--spectrum-fuchsia-1100:#fbaff6;--spectrum-fuchsia-1200:#fec7f8;--spectrum-fuchsia-1300:#ffdcfa;--spectrum-fuchsia-1400:#ffebfc;--spectrum-magenta-100:#530329;--spectrum-magenta-200:#6a0034;--spectrum-magenta-300:#850041;--spectrum-magenta-400:#a1004e;--spectrum-magenta-500:#ba165d;--spectrum-magenta-600:#d12b72;--spectrum-magenta-700:#e34589;--spectrum-magenta-800:#f1619c;--spectrum-magenta-900:#fc7cad;--spectrum-magenta-1000:#ff98bf;--spectrum-magenta-1100:#ffb3cf;--spectrum-magenta-1200:#ffcadd;--spectrum-magenta-1300:#ffdde9;--spectrum-magenta-1400:#ffecf3;--spectrum-legacy-color-celery-400:var(--spectrum-celery-800);--spectrum-legacy-color-celery-500:var(--spectrum-celery-900);--spectrum-legacy-color-celery-600:var(--spectrum-celery-1000);--spectrum-legacy-color-celery-700:var(--spectrum-celery-1100);--spectrum-legacy-color-chartreuse-400:var(--spectrum-chartreuse-900);--spectrum-legacy-color-chartreuse-500:var(--spectrum-chartreuse-1000);--spectrum-legacy-color-chartreuse-600:var(--spectrum-chartreuse-1100);--spectrum-legacy-color-chartreuse-700:var(--spectrum-chartreuse-1200);--spectrum-legacy-color-yellow-400:var(--spectrum-yellow-1000);--spectrum-legacy-color-yellow-500:var(--spectrum-yellow-1100);--spectrum-legacy-color-yellow-600:var(--spectrum-yellow-1200);--spectrum-legacy-color-yellow-700:var(--spectrum-yellow-1300);--spectrum-legacy-color-magenta-400:var(--spectrum-magenta-600);--spectrum-legacy-color-magenta-500:var(--spectrum-magenta-700);--spectrum-legacy-color-magenta-600:var(--spectrum-magenta-800);--spectrum-legacy-color-magenta-700:var(--spectrum-magenta-900);--spectrum-legacy-color-fuchsia-400:var(--spectrum-fuchsia-600);--spectrum-legacy-color-fuchsia-500:var(--spectrum-fuchsia-700);--spectrum-legacy-color-fuchsia-600:var(--spectrum-fuchsia-800);--spectrum-legacy-color-fuchsia-700:var(--spectrum-fuchsia-900);--spectrum-legacy-color-purple-400:var(--spectrum-purple-600);--spectrum-legacy-color-purple-500:var(--spectrum-purple-700);--spectrum-legacy-color-purple-600:var(--spectrum-purple-800);--spectrum-legacy-color-purple-700:var(--spectrum-purple-900);--spectrum-legacy-color-indigo-400:var(--spectrum-indigo-600);--spectrum-legacy-color-indigo-500:var(--spectrum-indigo-700);--spectrum-legacy-color-indigo-600:var(--spectrum-indigo-800);--spectrum-legacy-color-indigo-700:var(--spectrum-indigo-900);--spectrum-legacy-color-red-400:var(--spectrum-red-600);--spectrum-legacy-color-red-500:var(--spectrum-red-700);--spectrum-legacy-color-red-600:var(--spectrum-red-800);--spectrum-legacy-color-red-700:var(--spectrum-red-900);--spectrum-legacy-color-orange-400:var(--spectrum-orange-800);--spectrum-legacy-color-orange-500:var(--spectrum-orange-900);--spectrum-legacy-color-orange-600:var(--spectrum-orange-1000);--spectrum-legacy-color-orange-700:var(--spectrum-orange-1100);--spectrum-legacy-color-green-400:var(--spectrum-green-700);--spectrum-legacy-color-green-500:var(--spectrum-green-800);--spectrum-legacy-color-green-600:var(--spectrum-green-900);--spectrum-legacy-color-green-700:var(--spectrum-green-1000);--spectrum-legacy-color-blue-400:var(--spectrum-blue-700);--spectrum-legacy-color-blue-500:var(--spectrum-blue-800);--spectrum-legacy-color-blue-600:var(--spectrum-blue-900);--spectrum-legacy-color-blue-700:var(--spectrum-blue-1000);--spectrum-alias-background-color-modal-overlay:#0009;--spectrum-alias-dropshadow-color:#000c;--spectrum-alias-background-color-hover-overlay:#ffffff14;--spectrum-alias-highlight-hover:#ffffff14;--spectrum-alias-highlight-active:#efefef26;--spectrum-alias-highlight-selected:#4096f333;--spectrum-alias-highlight-selected-hover:#4096f34d;--spectrum-alias-highlight-invalid:#dd211826;--spectrum-alias-text-highlight-color:#4096f34d;--spectrum-alias-background-color-quickactions:#1d1d1de6;--spectrum-alias-radial-reaction-color-default:#ebebeb99;--spectrum-alias-pasteboard-background-color:var(--spectrum-global-color-gray-50);--spectrum-alias-appframe-border-color:var(--spectrum-global-color-gray-50);--spectrum-alias-appframe-separator-color:var(--spectrum-global-color-gray-50);--spectrum-colorarea-border-color:#efefef1a;--spectrum-colorarea-border-color-hover:#efefef1a;--spectrum-colorarea-border-color-down:#efefef1a;--spectrum-colorarea-border-color-key-focus:#efefef1a;--spectrum-colorslider-border-color:#efefef1a;--spectrum-colorslider-border-color-hover:#efefef1a;--spectrum-colorslider-border-color-down:#efefef1a;--spectrum-colorslider-border-color-key-focus:#efefef1a;--spectrum-colorslider-vertical-border-color:#efefef1a;--spectrum-colorslider-vertical-border-color-hover:#efefef1a;--spectrum-colorslider-vertical-border-color-down:#efefef1a;--spectrum-colorslider-vertical-border-color-key-focus:#efefef1a;--spectrum-colorwheel-border-color:#efefef1a;--spectrum-colorwheel-border-color-hover:#efefef1a;--spectrum-colorwheel-border-color-down:#efefef1a;--spectrum-colorwheel-border-color-key-focus:#efefef1a;--spectrum-miller-column-item-background-color-selected:#2680eb1a;--spectrum-miller-column-item-background-color-selected-hover:#2680eb33;--spectrum-tabs-compact-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-emphasized-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-well-background-color:#ebebeb05;--spectrum-well-border-color:#efefef0d;--spectrum-tray-background-color:var(--spectrum-global-color-gray-100);--react-spectrum-datepicker-placeholder-color:var(--spectrum-global-color-gray-600);--spectrum-accent-background-color-default:var(--spectrum-accent-color-600);--spectrum-accent-background-color-hover:var(--spectrum-accent-color-500);--spectrum-accent-background-color-down:var(--spectrum-accent-color-400);--spectrum-accent-background-color-key-focus:var(--spectrum-accent-color-500);--spectrum-neutral-background-color-default:var(--spectrum-gray-400);--spectrum-neutral-background-color-hover:var(--spectrum-gray-300);--spectrum-neutral-background-color-down:var(--spectrum-gray-200);--spectrum-neutral-background-color-key-focus:var(--spectrum-gray-300);--spectrum-neutral-subdued-background-color-default:var(--spectrum-gray-400);--spectrum-neutral-subdued-background-color-hover:var(--spectrum-gray-300);--spectrum-neutral-subdued-background-color-down:var(--spectrum-gray-200);--spectrum-neutral-subdued-background-color-key-focus:var(--spectrum-gray-300);--spectrum-negative-background-color-default:var(--spectrum-red-600);--spectrum-negative-background-color-hover:var(--spectrum-red-500);--spectrum-negative-background-color-down:var(--spectrum-red-400);--spectrum-negative-background-color-key-focus:var(--spectrum-red-500);--spectrum-positive-background-color-default:var(--spectrum-green-600);--spectrum-positive-background-color-hover:var(--spectrum-green-500);--spectrum-positive-background-color-down:var(--spectrum-green-400);--spectrum-positive-background-color-key-focus:var(--spectrum-green-500);--spectrum-informative-background-color-default:var(--spectrum-blue-600);--spectrum-informative-background-color-hover:var(--spectrum-blue-500);--spectrum-informative-background-color-down:var(--spectrum-blue-400);--spectrum-informative-background-color-key-focus:var(--spectrum-blue-500);--spectrum-gray-background-color-default:var(--spectrum-gray-700);--spectrum-red-background-color-default:var(--spectrum-red-700);--spectrum-orange-background-color-default:var(--spectrum-orange-800);--spectrum-yellow-background-color-default:var(--spectrum-yellow-1000);--spectrum-chartreuse-background-color-default:var(--spectrum-chartreuse-900);--spectrum-celery-background-color-default:var(--spectrum-celery-800);--spectrum-green-background-color-default:var(--spectrum-green-700);--spectrum-seafoam-background-color-default:var(--spectrum-seafoam-700);--spectrum-cyan-background-color-default:var(--spectrum-cyan-700);--spectrum-blue-background-color-default:var(--spectrum-blue-700);--spectrum-indigo-background-color-default:var(--spectrum-indigo-700);--spectrum-purple-background-color-default:var(--spectrum-purple-700);--spectrum-fuchsia-background-color-default:var(--spectrum-fuchsia-700);--spectrum-magenta-background-color-default:var(--spectrum-magenta-700);--spectrum-negative-visual-color:var(--spectrum-red-700);--spectrum-positive-visual-color:var(--spectrum-green-800);--spectrum-notice-visual-color:var(--spectrum-orange-900);--spectrum-informative-visual-color:var(--spectrum-blue-900);--spectrum-gray-visual-color:var(--spectrum-gray-600);--spectrum-red-visual-color:var(--spectrum-red-700);--spectrum-orange-visual-color:var(--spectrum-orange-900);--spectrum-yellow-visual-color:var(--spectrum-yellow-1100);--spectrum-chartreuse-visual-color:var(--spectrum-chartreuse-900);--spectrum-celery-visual-color:var(--spectrum-celery-800);--spectrum-green-visual-color:var(--spectrum-green-800);--spectrum-seafoam-visual-color:var(--spectrum-seafoam-800);--spectrum-cyan-visual-color:var(--spectrum-cyan-900);--spectrum-blue-visual-color:var(--spectrum-blue-900);--spectrum-indigo-visual-color:var(--spectrum-indigo-900);--spectrum-purple-visual-color:var(--spectrum-purple-900);--spectrum-fuchsia-visual-color:var(--spectrum-fuchsia-900);--spectrum-magenta-visual-color:var(--spectrum-magenta-900)}.spectrum--medium_4b172c{--spectrum-global-dimension-scale-factor:1;--spectrum-global-dimension-size-0:0px;--spectrum-global-dimension-size-10:1px;--spectrum-global-dimension-size-25:2px;--spectrum-global-dimension-size-40:3px;--spectrum-global-dimension-size-50:4px;--spectrum-global-dimension-size-65:5px;--spectrum-global-dimension-size-75:6px;--spectrum-global-dimension-size-85:7px;--spectrum-global-dimension-size-100:8px;--spectrum-global-dimension-size-115:9px;--spectrum-global-dimension-size-125:10px;--spectrum-global-dimension-size-130:11px;--spectrum-global-dimension-size-150:12px;--spectrum-global-dimension-size-160:13px;--spectrum-global-dimension-size-175:14px;--spectrum-global-dimension-size-200:16px;--spectrum-global-dimension-size-225:18px;--spectrum-global-dimension-size-250:20px;--spectrum-global-dimension-size-275:22px;--spectrum-global-dimension-size-300:24px;--spectrum-global-dimension-size-325:26px;--spectrum-global-dimension-size-350:28px;--spectrum-global-dimension-size-400:32px;--spectrum-global-dimension-size-450:36px;--spectrum-global-dimension-size-500:40px;--spectrum-global-dimension-size-550:44px;--spectrum-global-dimension-size-600:48px;--spectrum-global-dimension-size-675:54px;--spectrum-global-dimension-size-700:56px;--spectrum-global-dimension-size-800:64px;--spectrum-global-dimension-size-900:72px;--spectrum-global-dimension-size-1000:80px;--spectrum-global-dimension-size-1200:96px;--spectrum-global-dimension-size-1250:100px;--spectrum-global-dimension-size-1600:128px;--spectrum-global-dimension-size-1700:136px;--spectrum-global-dimension-size-2000:160px;--spectrum-global-dimension-size-2400:192px;--spectrum-global-dimension-size-3000:240px;--spectrum-global-dimension-size-3400:272px;--spectrum-global-dimension-size-3600:288px;--spectrum-global-dimension-size-4600:368px;--spectrum-global-dimension-size-5000:400px;--spectrum-global-dimension-size-6000:480px;--spectrum-global-dimension-font-size-25:10px;--spectrum-global-dimension-font-size-50:11px;--spectrum-global-dimension-font-size-75:12px;--spectrum-global-dimension-font-size-100:14px;--spectrum-global-dimension-font-size-150:15px;--spectrum-global-dimension-font-size-200:16px;--spectrum-global-dimension-font-size-300:18px;--spectrum-global-dimension-font-size-400:20px;--spectrum-global-dimension-font-size-500:22px;--spectrum-global-dimension-font-size-600:25px;--spectrum-global-dimension-font-size-700:28px;--spectrum-global-dimension-font-size-800:32px;--spectrum-global-dimension-font-size-900:36px;--spectrum-global-dimension-font-size-1000:40px;--spectrum-global-dimension-font-size-1100:45px;--spectrum-global-dimension-font-size-1200:50px;--spectrum-global-dimension-font-size-1300:60px;--spectrum-alias-avatar-size-100:var(--spectrum-global-dimension-size-250);--spectrum-alias-avatar-size-400:var(--spectrum-global-dimension-size-350);--spectrum-alias-avatar-size-600:var(--spectrum-global-dimension-size-450);--spectrum-actionbutton-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-barloader-large-border-radius:3px;--spectrum-barloader-large-indeterminate-border-radius:3px;--spectrum-barloader-large-over-background-border-radius:3px;--spectrum-barloader-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-barloader-small-indeterminate-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-barloader-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-breadcrumb-compact-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-compact-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-multiline-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-multiline-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-cta-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-cta-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-cta-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-cta-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-over-background-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-primary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-primary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-over-background-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-over-background-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-primary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-primary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-primary-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-secondary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-secondary-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-warning-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-warning-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-warning-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-secondary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-warning-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-warning-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-circleloader-medium-border-size:3px;--spectrum-circleloader-medium-over-background-border-size:3px;--spectrum-circleloader-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-circleloader-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-colorhandle-loupe-margin:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-colorloupe-colorhandle-gap:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-colorslider-touch-hit-y:var(--spectrum-global-dimension-size-150);--spectrum-colorslider-vertical-touch-hit-x:var(--spectrum-global-dimension-size-150);--spectrum-colorwheel-min-size:var(--spectrum-global-dimension-size-2400);--spectrum-colorwheel-touch-hit-outer:var(--spectrum-global-dimension-size-150);--spectrum-colorwheel-touch-hit-inner:var(--spectrum-global-dimension-size-150);--spectrum-cyclebutton-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-cyclebutton-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dialog-confirm-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-confirm-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-confirm-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-confirm-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-confirm-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-content-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-content-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-destructive-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-destructive-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-destructive-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-destructive-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-destructive-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-error-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-error-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-error-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-error-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-error-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-info-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-info-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-info-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-info-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-info-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dropdown-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-dropdown-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-fieldbutton-quiet-min-width:var(--spectrum-global-dimension-size-225);--spectrum-icon-arrow-down-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-arrow-left-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-checkmark-medium-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-checkmark-medium-height:var(--spectrum-global-dimension-size-150);--spectrum-icon-checkmark-small-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-checkmark-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-down-medium-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-left-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-chevron-left-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-right-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-chevron-right-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-cross-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-cross-large-height:var(--spectrum-global-dimension-size-150);--spectrum-icon-dash-small-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-dash-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-skip-left-width:9px;--spectrum-icon-skip-left-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-skip-right-width:9px;--spectrum-icon-skip-right-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-triplegripper-width:var(--spectrum-global-dimension-size-125);--spectrum-listitem-option-icon-size:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-listitem-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-listitem-option-height:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-listitem-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-listitem-thumbnail-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-listitem-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-thumbnail-small-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-selectlist-thumbnail-small-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-option-icon-size:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-selectlist-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-selectlist-option-height:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-selectlist-option-padding-height:7px;--spectrum-selectlist-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-loader-bar-large-border-radius:3px;--spectrum-loader-bar-large-over-background-border-radius:3px;--spectrum-loader-bar-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-bar-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-circle-medium-border-size:3px;--spectrum-loader-circle-medium-over-background-border-size:3px;--spectrum-loader-circle-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-circle-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-meter-large-border-radius:3px;--spectrum-meter-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-pagination-page-button-line-height:26px;--spectrum-overlay-positive-transform-distance:6px;--spectrum-overlay-negative-transform-distance:-6px;--spectrum-picker-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-quiet-min-width:var(--spectrum-global-dimension-size-225);--spectrum-picker-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-picker-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-progressbar-large-border-radius:3px;--spectrum-progressbar-large-indeterminate-border-radius:3px;--spectrum-progressbar-large-over-background-border-radius:3px;--spectrum-progressbar-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progressbar-small-indeterminate-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progressbar-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-medium-border-size:3px;--spectrum-progresscircle-medium-over-background-border-size:3px;--spectrum-progresscircle-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-small-indeterminate-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-medium-indeterminate-border-size:3px;--spectrum-radio-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-margin-bottom:0px;--spectrum-radio-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-margin-bottom:0px;--spectrum-radio-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-margin-bottom:0px;--spectrum-radio-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-icon-width:24px;--spectrum-rating-indicator-width:16px;--spectrum-rating-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-emphasized-icon-width:24px;--spectrum-rating-emphasized-indicator-width:16px;--spectrum-rating-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-quiet-icon-width:24px;--spectrum-rating-quiet-indicator-width:16px;--spectrum-rating-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-search-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-sidenav-item-touch-hit-bottom:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-sidenav-multilevel-item-touch-hit-bottom:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-slider-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-editable-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-editable-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-editable-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-fill-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-fill-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-fill-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-switch-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-track-width:26px;--spectrum-switch-handle-border-radius:7px;--spectrum-switch-handle-transform-x-ltr:12px;--spectrum-switch-handle-transform-x-rtl:-12px;--spectrum-switch-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-switch-emphasized-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-track-width:26px;--spectrum-switch-emphasized-handle-border-radius:7px;--spectrum-switch-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-switch-quiet-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-track-width:26px;--spectrum-switch-quiet-handle-border-radius:7px;--spectrum-switch-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tabs-compact-focus-ring-border-radius:5px;--spectrum-tabs-compact-margin-left:-8px;--spectrum-tabs-compact-margin-right:-8px;--spectrum-tabs-compact-vertical-focus-ring-border-radius:5px;--spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-focus-ring-border-radius:5px;--spectrum-tabs-margin-left:-8px;--spectrum-tabs-margin-right:-8px;--spectrum-tabs-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-emphasized-margin-left:-8px;--spectrum-tabs-emphasized-margin-right:-8px;--spectrum-tabs-quiet-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-focus-ring-border-radius:5px;--spectrum-tabs-quiet-margin-left:-8px;--spectrum-tabs-quiet-margin-right:-8px;--spectrum-tabs-quiet-compact-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-margin-left:-8px;--spectrum-tabs-quiet-compact-margin-right:-8px;--spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-emphasized-margin-left:-8px;--spectrum-tabs-quiet-compact-emphasized-margin-right:-8px;--spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-emphasized-margin-left:-8px;--spectrum-tabs-quiet-emphasized-margin-right:-8px;--spectrum-tabs-quiet-vertical-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-vertical-focus-ring-border-radius:5px;--spectrum-tabs-quiet-vertical-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-vertical-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-vertical-focus-ring-border-radius:5px;--spectrum-textarea-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textarea-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textfield-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textfield-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-tool-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-high-emphasis-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-high-emphasis-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tooltip-padding-bottom:5px;--spectrum-tooltip-content-max-width:var(--spectrum-global-dimension-size-2000);--spectrum-tooltip-info-padding-bottom:5px;--spectrum-tooltip-info-content-max-width:101px;--spectrum-tooltip-negative-padding-bottom:5px;--spectrum-tooltip-negative-content-max-width:101px;--spectrum-tooltip-positive-padding-bottom:5px;--spectrum-tooltip-positive-content-max-width:101px}.spectrum--light_a40724{--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-gray-50:#fff;--spectrum-gray-75:#fdfdfd;--spectrum-gray-100:#f8f8f8;--spectrum-gray-200:#e6e6e6;--spectrum-gray-300:#d5d5d5;--spectrum-gray-400:#b1b1b1;--spectrum-gray-500:#909090;--spectrum-gray-600:#6d6d6d;--spectrum-gray-700:#464646;--spectrum-gray-800:#222;--spectrum-gray-900:#000;--spectrum-red-100:#ffebe7;--spectrum-red-200:#ffddd6;--spectrum-red-300:#ffcdc3;--spectrum-red-400:#ffb7a9;--spectrum-red-500:#ff9b88;--spectrum-red-600:#ff7c65;--spectrum-red-700:#f75c46;--spectrum-red-800:#ea3829;--spectrum-red-900:#d31510;--spectrum-red-1000:#b40000;--spectrum-red-1100:#930000;--spectrum-red-1200:#740000;--spectrum-red-1300:#590000;--spectrum-red-1400:#430000;--spectrum-orange-100:#ffeccc;--spectrum-orange-200:#ffdfad;--spectrum-orange-300:#fdd291;--spectrum-orange-400:#ffbb63;--spectrum-orange-500:#ffa037;--spectrum-orange-600:#f68511;--spectrum-orange-700:#e46f00;--spectrum-orange-800:#cb5d00;--spectrum-orange-900:#b14c00;--spectrum-orange-1000:#953d00;--spectrum-orange-1100:#7a2f00;--spectrum-orange-1200:#612300;--spectrum-orange-1300:#491901;--spectrum-orange-1400:#351201;--spectrum-yellow-100:#fbf198;--spectrum-yellow-200:#f8e750;--spectrum-yellow-300:#f8d904;--spectrum-yellow-400:#e8c600;--spectrum-yellow-500:#d7b300;--spectrum-yellow-600:#c49f00;--spectrum-yellow-700:#b08c00;--spectrum-yellow-800:#9b7800;--spectrum-yellow-900:#856600;--spectrum-yellow-1000:#705300;--spectrum-yellow-1100:#5b4300;--spectrum-yellow-1200:#483300;--spectrum-yellow-1300:#362500;--spectrum-yellow-1400:#281a00;--spectrum-chartreuse-100:#dbfc6e;--spectrum-chartreuse-200:#cbf443;--spectrum-chartreuse-300:#bce92a;--spectrum-chartreuse-400:#aad816;--spectrum-chartreuse-500:#98c50a;--spectrum-chartreuse-600:#87b103;--spectrum-chartreuse-700:#769c00;--spectrum-chartreuse-800:#678800;--spectrum-chartreuse-900:#577400;--spectrum-chartreuse-1000:#486000;--spectrum-chartreuse-1100:#3a4d00;--spectrum-chartreuse-1200:#2c3b00;--spectrum-chartreuse-1300:#212c00;--spectrum-chartreuse-1400:#181f00;--spectrum-celery-100:#cdfcbf;--spectrum-celery-200:#aef69d;--spectrum-celery-300:#96ee85;--spectrum-celery-400:#72e06a;--spectrum-celery-500:#4ecf50;--spectrum-celery-600:#27bb36;--spectrum-celery-700:#07a721;--spectrum-celery-800:#009112;--spectrum-celery-900:#007c0f;--spectrum-celery-1000:#00670f;--spectrum-celery-1100:#00530d;--spectrum-celery-1200:#00400a;--spectrum-celery-1300:#003007;--spectrum-celery-1400:#002205;--spectrum-green-100:#cef8e0;--spectrum-green-200:#adf4ce;--spectrum-green-300:#89ecbc;--spectrum-green-400:#67dea8;--spectrum-green-500:#49cc93;--spectrum-green-600:#2fb880;--spectrum-green-700:#15a46e;--spectrum-green-800:#008f5d;--spectrum-green-900:#007a4d;--spectrum-green-1000:#00653e;--spectrum-green-1100:#005132;--spectrum-green-1200:#053f27;--spectrum-green-1300:#0a2e1d;--spectrum-green-1400:#0a2015;--spectrum-seafoam-100:#cef7f3;--spectrum-seafoam-200:#aaf1ea;--spectrum-seafoam-300:#8ce9e2;--spectrum-seafoam-400:#65dad2;--spectrum-seafoam-500:#3fc9c1;--spectrum-seafoam-600:#0fb5ae;--spectrum-seafoam-700:#00a19a;--spectrum-seafoam-800:#008c87;--spectrum-seafoam-900:#007772;--spectrum-seafoam-1000:#00635f;--spectrum-seafoam-1100:#0c4f4c;--spectrum-seafoam-1200:#123c3a;--spectrum-seafoam-1300:#122c2b;--spectrum-seafoam-1400:#0f1f1e;--spectrum-cyan-100:#c5f8ff;--spectrum-cyan-200:#a4f0ff;--spectrum-cyan-300:#88e7fa;--spectrum-cyan-400:#60d8f3;--spectrum-cyan-500:#33c5e8;--spectrum-cyan-600:#12b0da;--spectrum-cyan-700:#019cc8;--spectrum-cyan-800:#0086b4;--spectrum-cyan-900:#00719f;--spectrum-cyan-1000:#005d89;--spectrum-cyan-1100:#004a73;--spectrum-cyan-1200:#00395d;--spectrum-cyan-1300:#002a46;--spectrum-cyan-1400:#001e33;--spectrum-blue-100:#e0f2ff;--spectrum-blue-200:#cae8ff;--spectrum-blue-300:#b5deff;--spectrum-blue-400:#96cefd;--spectrum-blue-500:#78bbfa;--spectrum-blue-600:#59a7f6;--spectrum-blue-700:#3892f3;--spectrum-blue-800:#147af3;--spectrum-blue-900:#0265dc;--spectrum-blue-1000:#0054b6;--spectrum-blue-1100:#004491;--spectrum-blue-1200:#003571;--spectrum-blue-1300:#002754;--spectrum-blue-1400:#001c3c;--spectrum-indigo-100:#edeeff;--spectrum-indigo-200:#e0e2ff;--spectrum-indigo-300:#d3d5ff;--spectrum-indigo-400:#c1c4ff;--spectrum-indigo-500:#acafff;--spectrum-indigo-600:#9599ff;--spectrum-indigo-700:#7e84fc;--spectrum-indigo-800:#686df4;--spectrum-indigo-900:#5258e4;--spectrum-indigo-1000:#4046ca;--spectrum-indigo-1100:#3236a8;--spectrum-indigo-1200:#262986;--spectrum-indigo-1300:#1b1e64;--spectrum-indigo-1400:#141648;--spectrum-purple-100:#f6ebff;--spectrum-purple-200:#edf;--spectrum-purple-300:#e6d0ff;--spectrum-purple-400:#dbbbfe;--spectrum-purple-500:#cca4fd;--spectrum-purple-600:#bd8bfc;--spectrum-purple-700:#ae72f9;--spectrum-purple-800:#9d57f4;--spectrum-purple-900:#893de7;--spectrum-purple-1000:#7326d3;--spectrum-purple-1100:#5d13b7;--spectrum-purple-1200:#470c94;--spectrum-purple-1300:#33106a;--spectrum-purple-1400:#230f49;--spectrum-fuchsia-100:#ffe9fc;--spectrum-fuchsia-200:#ffdafa;--spectrum-fuchsia-300:#fec7f8;--spectrum-fuchsia-400:#fbaef6;--spectrum-fuchsia-500:#f592f3;--spectrum-fuchsia-600:#ed74ed;--spectrum-fuchsia-700:#e055e2;--spectrum-fuchsia-800:#cd3ace;--spectrum-fuchsia-900:#b622b7;--spectrum-fuchsia-1000:#9d039e;--spectrum-fuchsia-1100:#800081;--spectrum-fuchsia-1200:#640664;--spectrum-fuchsia-1300:#470e46;--spectrum-fuchsia-1400:#320d31;--spectrum-magenta-100:#ffeaf1;--spectrum-magenta-200:#ffdce8;--spectrum-magenta-300:#ffcadd;--spectrum-magenta-400:#ffb2ce;--spectrum-magenta-500:#ff95bd;--spectrum-magenta-600:#fa77aa;--spectrum-magenta-700:#ef5a98;--spectrum-magenta-800:#de3d82;--spectrum-magenta-900:#c82269;--spectrum-magenta-1000:#ad0955;--spectrum-magenta-1100:#8e0045;--spectrum-magenta-1200:#700037;--spectrum-magenta-1300:#54032a;--spectrum-magenta-1400:#3c061d;--spectrum-alias-background-color-modal-overlay:#0006;--spectrum-alias-dropshadow-color:#00000026;--spectrum-alias-background-color-hover-overlay:#0000000a;--spectrum-alias-highlight-hover:#0000000f;--spectrum-alias-highlight-active:#2c2c2c1a;--spectrum-alias-highlight-selected:#0265dc1a;--spectrum-alias-highlight-selected-hover:#0265dc33;--spectrum-alias-highlight-invalid:#d3151026;--spectrum-alias-text-highlight-color:#0265dc33;--spectrum-alias-background-color-quickactions:#f8f8f8e6;--spectrum-alias-radial-reaction-color-default:#2229;--spectrum-alias-pasteboard-background-color:var(--spectrum-global-color-gray-300);--spectrum-alias-appframe-border-color:var(--spectrum-global-color-gray-300);--spectrum-alias-appframe-separator-color:var(--spectrum-global-color-gray-300);--spectrum-colorarea-border-color:#2c2c2c1a;--spectrum-colorarea-border-color-hover:#2c2c2c1a;--spectrum-colorarea-border-color-down:#2c2c2c1a;--spectrum-colorarea-border-color-key-focus:#2c2c2c1a;--spectrum-colorslider-border-color:#2c2c2c1a;--spectrum-colorslider-border-color-hover:#2c2c2c1a;--spectrum-colorslider-border-color-down:#2c2c2c1a;--spectrum-colorslider-border-color-key-focus:#2c2c2c1a;--spectrum-colorslider-vertical-border-color:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-hover:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-down:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-key-focus:#2c2c2c1a;--spectrum-colorwheel-border-color:#2c2c2c1a;--spectrum-colorwheel-border-color-hover:#2c2c2c1a;--spectrum-colorwheel-border-color-down:#2c2c2c1a;--spectrum-colorwheel-border-color-key-focus:#2c2c2c1a;--spectrum-miller-column-item-background-color-selected:#1473e61a;--spectrum-miller-column-item-background-color-selected-hover:#1473e633;--spectrum-tabs-compact-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-emphasized-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-well-background-color:#22222205;--spectrum-well-border-color:#0000000d;--spectrum-tray-background-color:var(--spectrum-global-color-gray-50);--react-spectrum-datepicker-placeholder-color:#767676;--spectrum-accent-background-color-default:var(--spectrum-accent-color-900);--spectrum-accent-background-color-hover:var(--spectrum-accent-color-1000);--spectrum-accent-background-color-down:var(--spectrum-accent-color-1100);--spectrum-accent-background-color-key-focus:var(--spectrum-accent-color-1000);--spectrum-neutral-background-color-default:var(--spectrum-gray-800);--spectrum-neutral-background-color-hover:var(--spectrum-gray-900);--spectrum-neutral-background-color-down:var(--spectrum-gray-900);--spectrum-neutral-background-color-key-focus:var(--spectrum-gray-900);--spectrum-neutral-subdued-background-color-default:var(--spectrum-gray-600);--spectrum-neutral-subdued-background-color-hover:var(--spectrum-gray-700);--spectrum-neutral-subdued-background-color-down:var(--spectrum-gray-800);--spectrum-neutral-subdued-background-color-key-focus:var(--spectrum-gray-700);--spectrum-negative-background-color-default:var(--spectrum-red-900);--spectrum-negative-background-color-hover:var(--spectrum-red-1000);--spectrum-negative-background-color-down:var(--spectrum-red-1100);--spectrum-negative-background-color-key-focus:var(--spectrum-red-1000);--spectrum-positive-background-color-default:var(--spectrum-green-900);--spectrum-positive-background-color-hover:var(--spectrum-green-1000);--spectrum-positive-background-color-down:var(--spectrum-green-1100);--spectrum-positive-background-color-key-focus:var(--spectrum-green-1000);--spectrum-informative-background-color-default:var(--spectrum-blue-900);--spectrum-informative-background-color-hover:var(--spectrum-blue-1000);--spectrum-informative-background-color-down:var(--spectrum-blue-1100);--spectrum-informative-background-color-key-focus:var(--spectrum-blue-1000);--spectrum-gray-background-color-default:var(--spectrum-gray-700);--spectrum-red-background-color-default:var(--spectrum-red-600);--spectrum-orange-background-color-default:var(--spectrum-orange-600);--spectrum-yellow-background-color-default:var(--spectrum-yellow-400);--spectrum-chartreuse-background-color-default:var(--spectrum-chartreuse-500);--spectrum-celery-background-color-default:var(--spectrum-celery-600);--spectrum-green-background-color-default:var(--spectrum-green-900);--spectrum-seafoam-background-color-default:var(--spectrum-seafoam-900);--spectrum-cyan-background-color-default:var(--spectrum-cyan-900);--spectrum-blue-background-color-default:var(--spectrum-blue-900);--spectrum-indigo-background-color-default:var(--spectrum-indigo-900);--spectrum-purple-background-color-default:var(--spectrum-purple-900);--spectrum-fuchsia-background-color-default:var(--spectrum-fuchsia-900);--spectrum-magenta-background-color-default:var(--spectrum-magenta-900);--spectrum-negative-visual-color:var(--spectrum-red-800);--spectrum-positive-visual-color:var(--spectrum-green-700);--spectrum-notice-visual-color:var(--spectrum-orange-700);--spectrum-informative-visual-color:var(--spectrum-blue-800);--spectrum-gray-visual-color:var(--spectrum-gray-500);--spectrum-red-visual-color:var(--spectrum-red-800);--spectrum-orange-visual-color:var(--spectrum-orange-700);--spectrum-yellow-visual-color:var(--spectrum-yellow-600);--spectrum-chartreuse-visual-color:var(--spectrum-chartreuse-600);--spectrum-celery-visual-color:var(--spectrum-celery-700);--spectrum-green-visual-color:var(--spectrum-green-700);--spectrum-seafoam-visual-color:var(--spectrum-seafoam-700);--spectrum-cyan-visual-color:var(--spectrum-cyan-600);--spectrum-blue-visual-color:var(--spectrum-blue-800);--spectrum-indigo-visual-color:var(--spectrum-indigo-800);--spectrum-purple-visual-color:var(--spectrum-purple-800);--spectrum-fuchsia-visual-color:var(--spectrum-fuchsia-800);--spectrum-magenta-visual-color:var(--spectrum-magenta-800)}.spectrum--large_c40598{--spectrum-global-dimension-scale-factor:1.25;--spectrum-global-dimension-size-0:0px;--spectrum-global-dimension-size-10:1px;--spectrum-global-dimension-size-25:2px;--spectrum-global-dimension-size-40:4px;--spectrum-global-dimension-size-50:5px;--spectrum-global-dimension-size-65:6px;--spectrum-global-dimension-size-75:8px;--spectrum-global-dimension-size-85:9px;--spectrum-global-dimension-size-100:10px;--spectrum-global-dimension-size-115:11px;--spectrum-global-dimension-size-125:13px;--spectrum-global-dimension-size-130:14px;--spectrum-global-dimension-size-150:15px;--spectrum-global-dimension-size-160:16px;--spectrum-global-dimension-size-175:18px;--spectrum-global-dimension-size-200:20px;--spectrum-global-dimension-size-225:22px;--spectrum-global-dimension-size-250:25px;--spectrum-global-dimension-size-275:28px;--spectrum-global-dimension-size-300:30px;--spectrum-global-dimension-size-325:32px;--spectrum-global-dimension-size-350:35px;--spectrum-global-dimension-size-400:40px;--spectrum-global-dimension-size-450:45px;--spectrum-global-dimension-size-500:50px;--spectrum-global-dimension-size-550:56px;--spectrum-global-dimension-size-600:60px;--spectrum-global-dimension-size-675:68px;--spectrum-global-dimension-size-700:70px;--spectrum-global-dimension-size-800:80px;--spectrum-global-dimension-size-900:90px;--spectrum-global-dimension-size-1000:100px;--spectrum-global-dimension-size-1200:120px;--spectrum-global-dimension-size-1250:125px;--spectrum-global-dimension-size-1600:160px;--spectrum-global-dimension-size-1700:170px;--spectrum-global-dimension-size-2000:200px;--spectrum-global-dimension-size-2400:240px;--spectrum-global-dimension-size-3000:300px;--spectrum-global-dimension-size-3400:340px;--spectrum-global-dimension-size-3600:360px;--spectrum-global-dimension-size-4600:460px;--spectrum-global-dimension-size-5000:500px;--spectrum-global-dimension-size-6000:600px;--spectrum-global-dimension-font-size-25:12px;--spectrum-global-dimension-font-size-50:13px;--spectrum-global-dimension-font-size-75:15px;--spectrum-global-dimension-font-size-100:17px;--spectrum-global-dimension-font-size-150:18px;--spectrum-global-dimension-font-size-200:19px;--spectrum-global-dimension-font-size-300:22px;--spectrum-global-dimension-font-size-400:24px;--spectrum-global-dimension-font-size-500:27px;--spectrum-global-dimension-font-size-600:31px;--spectrum-global-dimension-font-size-700:34px;--spectrum-global-dimension-font-size-800:39px;--spectrum-global-dimension-font-size-900:44px;--spectrum-global-dimension-font-size-1000:49px;--spectrum-global-dimension-font-size-1100:55px;--spectrum-global-dimension-font-size-1200:62px;--spectrum-global-dimension-font-size-1300:70px;--spectrum-alias-avatar-size-100:26px;--spectrum-alias-avatar-size-400:36px;--spectrum-alias-avatar-size-600:46px;--spectrum-actionbutton-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-barloader-large-border-radius:4px;--spectrum-barloader-large-indeterminate-border-radius:4px;--spectrum-barloader-large-over-background-border-radius:4px;--spectrum-barloader-small-border-radius:3px;--spectrum-barloader-small-indeterminate-border-radius:3px;--spectrum-barloader-small-over-background-border-radius:3px;--spectrum-breadcrumb-compact-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-compact-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-multiline-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-multiline-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-cta-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-cta-min-width:90px;--spectrum-button-cta-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-cta-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-over-background-min-width:90px;--spectrum-button-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-primary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-primary-min-width:90px;--spectrum-button-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-over-background-min-width:90px;--spectrum-button-quiet-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-over-background-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-primary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-primary-min-width:90px;--spectrum-button-quiet-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-primary-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-secondary-min-width:90px;--spectrum-button-quiet-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-secondary-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-warning-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-warning-min-width:90px;--spectrum-button-quiet-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-warning-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-secondary-min-width:90px;--spectrum-button-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-warning-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-warning-min-width:90px;--spectrum-button-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-small-border-size:3px;--spectrum-circleloader-small-over-background-border-size:3px;--spectrum-colorhandle-loupe-margin:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-colorloupe-colorhandle-gap:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-colorslider-touch-hit-y:var(--spectrum-global-dimension-size-85);--spectrum-colorslider-vertical-touch-hit-x:var(--spectrum-global-dimension-size-85);--spectrum-colorwheel-min-size:var(--spectrum-global-dimension-static-size-2600,208px);--spectrum-colorwheel-touch-hit-outer:var(--spectrum-global-dimension-size-85);--spectrum-colorwheel-touch-hit-inner:var(--spectrum-global-dimension-size-85);--spectrum-cyclebutton-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-cyclebutton-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dialog-confirm-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-confirm-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-confirm-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-confirm-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-confirm-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-content-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-content-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-destructive-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-destructive-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-destructive-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-destructive-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-destructive-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-error-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-error-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-error-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-error-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-error-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-info-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-info-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-info-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-info-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-info-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dropdown-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-fieldbutton-quiet-min-width:var(--spectrum-global-dimension-size-200);--spectrum-icon-arrow-down-small-height:12px;--spectrum-icon-arrow-left-medium-height:12px;--spectrum-icon-checkmark-medium-width:16px;--spectrum-icon-checkmark-medium-height:16px;--spectrum-icon-checkmark-small-width:12px;--spectrum-icon-checkmark-small-height:12px;--spectrum-icon-chevron-down-medium-width:12px;--spectrum-icon-chevron-left-large-width:16px;--spectrum-icon-chevron-left-medium-height:12px;--spectrum-icon-chevron-right-large-width:16px;--spectrum-icon-chevron-right-medium-height:12px;--spectrum-icon-cross-large-width:16px;--spectrum-icon-cross-large-height:16px;--spectrum-icon-dash-small-width:12px;--spectrum-icon-dash-small-height:12px;--spectrum-icon-skip-left-width:10px;--spectrum-icon-skip-left-height:12px;--spectrum-icon-skip-right-width:10px;--spectrum-icon-skip-right-height:12px;--spectrum-icon-triplegripper-width:12px;--spectrum-listitem-option-icon-size:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-listitem-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-listitem-option-height:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-listitem-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-listitem-thumbnail-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-listitem-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-thumbnail-small-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-selectlist-thumbnail-small-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-size:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-selectlist-option-height:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-selectlist-option-padding-height:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-selectlist-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-loader-bar-large-border-radius:4px;--spectrum-loader-bar-large-over-background-border-radius:4px;--spectrum-loader-bar-small-border-radius:3px;--spectrum-loader-bar-small-over-background-border-radius:3px;--spectrum-loader-circle-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-loader-circle-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-loader-circle-small-border-size:3px;--spectrum-loader-circle-small-over-background-border-size:3px;--spectrum-meter-large-border-radius:4px;--spectrum-meter-small-border-radius:3px;--spectrum-pagination-page-button-line-height:32px;--spectrum-overlay-positive-transform-distance:8px;--spectrum-overlay-negative-transform-distance:-8px;--spectrum-picker-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-quiet-min-width:var(--spectrum-global-dimension-size-200);--spectrum-picker-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progressbar-large-border-radius:4px;--spectrum-progressbar-large-indeterminate-border-radius:4px;--spectrum-progressbar-large-over-background-border-radius:4px;--spectrum-progressbar-small-border-radius:3px;--spectrum-progressbar-small-indeterminate-border-radius:3px;--spectrum-progressbar-small-over-background-border-radius:3px;--spectrum-progresscircle-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progresscircle-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progresscircle-small-border-size:3px;--spectrum-progresscircle-small-indeterminate-border-size:3px;--spectrum-progresscircle-small-over-background-border-size:3px;--spectrum-progresscircle-medium-indeterminate-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-icon-width:30px;--spectrum-rating-indicator-width:20px;--spectrum-rating-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-emphasized-icon-width:30px;--spectrum-rating-emphasized-indicator-width:20px;--spectrum-rating-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-quiet-icon-width:30px;--spectrum-rating-quiet-indicator-width:20px;--spectrum-rating-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-search-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-sidenav-item-touch-hit-bottom:3px;--spectrum-sidenav-multilevel-item-touch-hit-bottom:3px;--spectrum-slider-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-editable-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-editable-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-editable-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-fill-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-fill-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-fill-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-switch-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-handle-border-radius:9px;--spectrum-switch-handle-transform-x-ltr:18px;--spectrum-switch-handle-transform-x-rtl:-18px;--spectrum-switch-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-switch-emphasized-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-emphasized-handle-border-radius:9px;--spectrum-switch-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-switch-quiet-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-quiet-handle-border-radius:9px;--spectrum-switch-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tabs-compact-focus-ring-border-radius:6px;--spectrum-tabs-compact-margin-left:-11px;--spectrum-tabs-compact-margin-right:-11px;--spectrum-tabs-compact-vertical-focus-ring-border-radius:6px;--spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-focus-ring-border-radius:6px;--spectrum-tabs-margin-left:-11px;--spectrum-tabs-margin-right:-11px;--spectrum-tabs-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-emphasized-margin-left:-11px;--spectrum-tabs-emphasized-margin-right:-11px;--spectrum-tabs-quiet-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-focus-ring-border-radius:6px;--spectrum-tabs-quiet-margin-left:-11px;--spectrum-tabs-quiet-margin-right:-11px;--spectrum-tabs-quiet-compact-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-margin-left:-11px;--spectrum-tabs-quiet-compact-margin-right:-11px;--spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-emphasized-margin-left:-11px;--spectrum-tabs-quiet-compact-emphasized-margin-right:-11px;--spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-emphasized-margin-left:-11px;--spectrum-tabs-quiet-emphasized-margin-right:-11px;--spectrum-tabs-quiet-vertical-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-vertical-focus-ring-border-radius:6px;--spectrum-tabs-quiet-vertical-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-vertical-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-vertical-focus-ring-border-radius:6px;--spectrum-textarea-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textarea-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textfield-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textfield-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-tool-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-high-emphasis-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-high-emphasis-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tooltip-padding-bottom:6px;--spectrum-tooltip-content-max-width:var(--spectrum-global-dimension-size-2000);--spectrum-tooltip-info-padding-bottom:6px;--spectrum-tooltip-info-content-max-width:126px;--spectrum-tooltip-negative-padding-bottom:6px;--spectrum-tooltip-negative-content-max-width:126px;--spectrum-tooltip-positive-padding-bottom:6px;--spectrum-tooltip-positive-content-max-width:126px}.spectrum_9e130c{--spectrum-global-animation-duration-0:0s;--spectrum-global-animation-duration-100:.13s;--spectrum-global-animation-duration-200:.16s;--spectrum-global-animation-duration-300:.19s;--spectrum-global-animation-duration-400:.22s;--spectrum-global-animation-duration-500:.25s;--spectrum-global-animation-duration-600:.3s;--spectrum-global-animation-duration-700:.35s;--spectrum-global-animation-duration-800:.4s;--spectrum-global-animation-duration-900:.45s;--spectrum-global-animation-duration-1000:.5s;--spectrum-global-animation-duration-2000:1s;--spectrum-global-animation-duration-4000:2s;--spectrum-global-animation-ease-in-out:cubic-bezier(.45,0,.4,1);--spectrum-global-animation-ease-in:cubic-bezier(.5,0,1,1);--spectrum-global-animation-ease-out:cubic-bezier(0,0,.4,1);--spectrum-global-animation-linear:cubic-bezier(0,0,1,1);--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-global-color-static-black:#000;--spectrum-global-color-static-white:#fff;--spectrum-global-color-static-blue:#0057bf;--spectrum-global-color-static-gray-50:#fff;--spectrum-global-color-static-gray-75:#fff;--spectrum-global-color-static-gray-100:#fff;--spectrum-global-color-static-gray-200:#ebebeb;--spectrum-global-color-static-gray-300:#d9d9d9;--spectrum-global-color-static-gray-400:#b3b3b3;--spectrum-global-color-static-gray-500:#929292;--spectrum-global-color-static-gray-600:#6e6e6e;--spectrum-global-color-static-gray-700:#474747;--spectrum-global-color-static-gray-800:#222;--spectrum-global-color-static-gray-900:#000;--spectrum-global-color-static-blue-200:#82c1fb;--spectrum-global-color-static-blue-300:#62adf7;--spectrum-global-color-static-blue-400:#4297f4;--spectrum-global-color-static-blue-500:#1b7ff5;--spectrum-global-color-static-blue-600:#0469e3;--spectrum-global-color-static-blue-700:#0057be;--spectrum-global-color-static-blue-800:#004899;--spectrum-global-color-static-red-400:#ed4030;--spectrum-global-color-static-red-500:#d91c15;--spectrum-global-color-static-red-600:#bb0202;--spectrum-global-color-static-red-700:#9a0000;--spectrum-global-color-static-orange-400:#fa8b1a;--spectrum-global-color-static-orange-500:#e97500;--spectrum-global-color-static-orange-600:#d16100;--spectrum-global-color-static-orange-700:#b65000;--spectrum-global-color-static-green-400:#1da973;--spectrum-global-color-static-green-500:#009461;--spectrum-global-color-static-green-600:#007e50;--spectrum-global-color-static-green-700:#006941;--spectrum-global-color-static-celery-200:#7ee572;--spectrum-global-color-static-celery-300:#57d456;--spectrum-global-color-static-celery-400:#30c13d;--spectrum-global-color-static-celery-500:#0fac26;--spectrum-global-color-static-celery-600:#009614;--spectrum-global-color-static-celery-700:#00800f;--spectrum-global-color-static-chartreuse-300:#b0de1b;--spectrum-global-color-static-chartreuse-400:#9dcb0d;--spectrum-global-color-static-chartreuse-500:#8bb604;--spectrum-global-color-static-chartreuse-600:#7aa200;--spectrum-global-color-static-chartreuse-700:#6a8d00;--spectrum-global-color-static-yellow-200:#faed7b;--spectrum-global-color-static-yellow-300:#fae017;--spectrum-global-color-static-yellow-400:#eecd00;--spectrum-global-color-static-yellow-500:#ddb900;--spectrum-global-color-static-yellow-600:#c9a400;--spectrum-global-color-static-yellow-700:#b59000;--spectrum-global-color-static-magenta-200:#fd7faf;--spectrum-global-color-static-magenta-300:#f2629d;--spectrum-global-color-static-magenta-400:#e24487;--spectrum-global-color-static-magenta-500:#cd286f;--spectrum-global-color-static-magenta-600:#b30f59;--spectrum-global-color-static-magenta-700:#950048;--spectrum-global-color-static-fuchsia-400:#e45de6;--spectrum-global-color-static-fuchsia-500:#d33fd4;--spectrum-global-color-static-fuchsia-600:#bc27bb;--spectrum-global-color-static-fuchsia-700:#a30aa3;--spectrum-global-color-static-purple-400:#b279fa;--spectrum-global-color-static-purple-500:#a15df6;--spectrum-global-color-static-purple-600:#8e43ea;--spectrum-global-color-static-purple-700:#782bd8;--spectrum-global-color-static-purple-800:#6217be;--spectrum-global-color-static-indigo-200:#b2b5ff;--spectrum-global-color-static-indigo-300:#9b9fff;--spectrum-global-color-static-indigo-400:#8489fd;--spectrum-global-color-static-indigo-500:#6d73f6;--spectrum-global-color-static-indigo-600:#575de8;--spectrum-global-color-static-indigo-700:#444ad0;--spectrum-global-color-static-seafoam-200:#4bcec7;--spectrum-global-color-static-seafoam-300:#20bbb4;--spectrum-global-color-static-seafoam-400:#00a6a0;--spectrum-global-color-static-seafoam-500:#00918b;--spectrum-global-color-static-seafoam-600:#007c76;--spectrum-global-color-static-seafoam-700:#006763;--spectrum-global-color-opacity-100:1;--spectrum-global-color-opacity-90:.9;--spectrum-global-color-opacity-80:.8;--spectrum-global-color-opacity-60:.6;--spectrum-global-color-opacity-50:.5;--spectrum-global-color-opacity-42:.42;--spectrum-global-color-opacity-40:.4;--spectrum-global-color-opacity-30:.3;--spectrum-global-color-opacity-25:.25;--spectrum-global-color-opacity-20:.2;--spectrum-global-color-opacity-15:.15;--spectrum-global-color-opacity-10:.1;--spectrum-global-color-opacity-8:.08;--spectrum-global-color-opacity-7:.07;--spectrum-global-color-opacity-6:.06;--spectrum-global-color-opacity-5:.05;--spectrum-global-color-opacity-4:.04;--spectrum-global-color-celery-400:var(--spectrum-celery-600);--spectrum-global-color-celery-500:var(--spectrum-celery-700);--spectrum-global-color-celery-600:var(--spectrum-celery-800);--spectrum-global-color-celery-700:var(--spectrum-celery-900);--spectrum-global-color-chartreuse-400:var(--spectrum-chartreuse-500);--spectrum-global-color-chartreuse-500:var(--spectrum-chartreuse-600);--spectrum-global-color-chartreuse-600:var(--spectrum-chartreuse-700);--spectrum-global-color-chartreuse-700:var(--spectrum-chartreuse-800);--spectrum-global-color-yellow-400:var(--spectrum-yellow-400);--spectrum-global-color-yellow-500:var(--spectrum-yellow-500);--spectrum-global-color-yellow-600:var(--spectrum-yellow-600);--spectrum-global-color-yellow-700:var(--spectrum-yellow-700);--spectrum-global-color-magenta-400:var(--spectrum-magenta-800);--spectrum-global-color-magenta-500:var(--spectrum-magenta-900);--spectrum-global-color-magenta-600:var(--spectrum-magenta-1000);--spectrum-global-color-magenta-700:var(--spectrum-magenta-1100);--spectrum-global-color-fuchsia-400:var(--spectrum-fuchsia-800);--spectrum-global-color-fuchsia-500:var(--spectrum-fuchsia-900);--spectrum-global-color-fuchsia-600:var(--spectrum-fuchsia-1000);--spectrum-global-color-fuchsia-700:var(--spectrum-fuchsia-1100);--spectrum-global-color-purple-400:var(--spectrum-purple-800);--spectrum-global-color-purple-500:var(--spectrum-purple-900);--spectrum-global-color-purple-600:var(--spectrum-purple-1000);--spectrum-global-color-purple-700:var(--spectrum-purple-1100);--spectrum-global-color-indigo-400:var(--spectrum-indigo-800);--spectrum-global-color-indigo-500:var(--spectrum-indigo-900);--spectrum-global-color-indigo-600:var(--spectrum-indigo-1000);--spectrum-global-color-indigo-700:var(--spectrum-indigo-1100);--spectrum-global-color-seafoam-400:var(--spectrum-seafoam-700);--spectrum-global-color-seafoam-500:var(--spectrum-seafoam-800);--spectrum-global-color-seafoam-600:var(--spectrum-seafoam-900);--spectrum-global-color-seafoam-700:var(--spectrum-seafoam-1000);--spectrum-global-color-red-400:var(--spectrum-red-800);--spectrum-global-color-red-500:var(--spectrum-red-900);--spectrum-global-color-red-600:var(--spectrum-red-1000);--spectrum-global-color-red-700:var(--spectrum-red-1100);--spectrum-global-color-orange-400:var(--spectrum-orange-600);--spectrum-global-color-orange-500:var(--spectrum-orange-700);--spectrum-global-color-orange-600:var(--spectrum-orange-800);--spectrum-global-color-orange-700:var(--spectrum-orange-900);--spectrum-global-color-green-400:var(--spectrum-green-800);--spectrum-global-color-green-500:var(--spectrum-green-900);--spectrum-global-color-green-600:var(--spectrum-green-1000);--spectrum-global-color-green-700:var(--spectrum-green-1100);--spectrum-global-color-blue-400:var(--spectrum-blue-800);--spectrum-global-color-blue-500:var(--spectrum-blue-900);--spectrum-global-color-blue-600:var(--spectrum-blue-1000);--spectrum-global-color-blue-700:var(--spectrum-blue-1100);--spectrum-global-color-gray-50:var(--spectrum-gray-50);--spectrum-global-color-gray-75:var(--spectrum-gray-75);--spectrum-global-color-gray-100:var(--spectrum-gray-100);--spectrum-global-color-gray-200:var(--spectrum-gray-200);--spectrum-global-color-gray-300:var(--spectrum-gray-300);--spectrum-global-color-gray-400:var(--spectrum-gray-400);--spectrum-global-color-gray-500:var(--spectrum-gray-500);--spectrum-global-color-gray-600:var(--spectrum-gray-600);--spectrum-global-color-gray-700:var(--spectrum-gray-700);--spectrum-global-color-gray-800:var(--spectrum-gray-800);--spectrum-global-color-gray-900:var(--spectrum-gray-900);--spectrum-accent-color-100:var(--spectrum-blue-100);--spectrum-accent-color-200:var(--spectrum-blue-200);--spectrum-accent-color-300:var(--spectrum-blue-300);--spectrum-accent-color-400:var(--spectrum-blue-400);--spectrum-accent-color-500:var(--spectrum-blue-500);--spectrum-accent-color-600:var(--spectrum-blue-600);--spectrum-accent-color-700:var(--spectrum-blue-700);--spectrum-accent-color-800:var(--spectrum-blue-800);--spectrum-accent-color-900:var(--spectrum-blue-900);--spectrum-accent-color-1000:var(--spectrum-blue-1000);--spectrum-accent-color-1100:var(--spectrum-blue-1100);--spectrum-accent-color-1200:var(--spectrum-blue-1200);--spectrum-accent-color-1300:var(--spectrum-blue-1300);--spectrum-accent-color-1400:var(--spectrum-blue-1400);--spectrum-semantic-negative-color-background:var(--spectrum-negative-background-color-default);--spectrum-semantic-negative-color-default:var(--spectrum-red-900);--spectrum-semantic-negative-color-state-hover:var(--spectrum-red-1000);--spectrum-semantic-negative-color-dark:var(--spectrum-red-1000);--spectrum-semantic-negative-color-border:var(--spectrum-red-800);--spectrum-semantic-negative-color-icon:var(--spectrum-negative-visual-color);--spectrum-semantic-negative-color-status:var(--spectrum-negative-visual-color);--spectrum-semantic-negative-color-text-large:var(--spectrum-red-900);--spectrum-semantic-negative-color-text-small:var(--spectrum-red-900);--spectrum-semantic-negative-color-state-down:var(--spectrum-red-1100);--spectrum-semantic-negative-color-state-focus:var(--spectrum-red-1000);--spectrum-semantic-notice-color-background:var(--spectrum-global-color-static-orange-600,#da7b11);--spectrum-semantic-notice-color-default:var(--spectrum-orange-700);--spectrum-semantic-notice-color-dark:var(--spectrum-orange-800);--spectrum-semantic-notice-color-border:var(--spectrum-orange-600);--spectrum-semantic-notice-color-icon:var(--spectrum-notice-visual-color);--spectrum-semantic-notice-color-status:var(--spectrum-notice-visual-color);--spectrum-semantic-notice-color-text-large:var(--spectrum-orange-700);--spectrum-semantic-notice-color-text-small:var(--spectrum-orange-800);--spectrum-semantic-notice-color-state-down:var(--spectrum-orange-900);--spectrum-semantic-notice-color-state-focus:var(--spectrum-orange-600);--spectrum-semantic-positive-color-background:var(--spectrum-positive-background-color-default);--spectrum-semantic-positive-color-default:var(--spectrum-green-900);--spectrum-semantic-positive-color-dark:var(--spectrum-green-1000);--spectrum-semantic-positive-color-border:var(--spectrum-green-800);--spectrum-semantic-positive-color-icon:var(--spectrum-positive-visual-color);--spectrum-semantic-positive-color-status:var(--spectrum-positive-visual-color);--spectrum-semantic-positive-color-text-large:var(--spectrum-green-900);--spectrum-semantic-positive-color-text-small:var(--spectrum-green-1000);--spectrum-semantic-positive-color-state-down:var(--spectrum-green-1100);--spectrum-semantic-positive-color-state-focus:var(--spectrum-green-800);--spectrum-semantic-informative-color-background:var(--spectrum-informative-background-color-default);--spectrum-semantic-informative-color-default:var(--spectrum-blue-900);--spectrum-semantic-informative-color-dark:var(--spectrum-blue-1000);--spectrum-semantic-informative-color-border:var(--spectrum-blue-800);--spectrum-semantic-informative-color-icon:var(--spectrum-informative-visual-color);--spectrum-semantic-informative-color-status:var(--spectrum-informative-visual-color);--spectrum-semantic-informative-color-text-large:var(--spectrum-blue-900);--spectrum-semantic-informative-color-text-small:var(--spectrum-blue-1000);--spectrum-semantic-informative-color-state-down:var(--spectrum-blue-1100);--spectrum-semantic-informative-color-state-focus:var(--spectrum-blue-800);--spectrum-semantic-cta-color-background-default:var(--spectrum-accent-background-color-default);--spectrum-semantic-cta-color-background-hover:var(--spectrum-accent-background-color-hover);--spectrum-semantic-cta-color-background-down:var(--spectrum-accent-background-color-down);--spectrum-semantic-cta-color-background-key-focus:var(--spectrum-accent-background-color-key-focus);--spectrum-semantic-background-color-key-focus:var(--spectrum-global-color-static-blue-600,#1473e6);--spectrum-semantic-neutral-color-background:var(--spectrum-neutral-subdued-background-color-default);--spectrum-semantic-presence-color-1:var(--spectrum-global-color-static-red-500,#e34850);--spectrum-semantic-presence-color-2:var(--spectrum-global-color-static-orange-400,#f29423);--spectrum-semantic-presence-color-3:var(--spectrum-global-color-static-yellow-400,#edcc00);--spectrum-semantic-presence-color-4:#4bcca2;--spectrum-semantic-presence-color-5:#00c7ff;--spectrum-semantic-presence-color-6:#008cb8;--spectrum-semantic-presence-color-7:#7e4bf3;--spectrum-semantic-presence-color-8:var(--spectrum-global-color-static-fuchsia-600,#b130bd);--spectrum-global-dimension-static-size-0:0px;--spectrum-global-dimension-static-size-10:1px;--spectrum-global-dimension-static-size-25:2px;--spectrum-global-dimension-static-size-50:4px;--spectrum-global-dimension-static-size-40:3px;--spectrum-global-dimension-static-size-65:5px;--spectrum-global-dimension-static-size-100:8px;--spectrum-global-dimension-static-size-115:9px;--spectrum-global-dimension-static-size-125:10px;--spectrum-global-dimension-static-size-130:11px;--spectrum-global-dimension-static-size-150:12px;--spectrum-global-dimension-static-size-160:13px;--spectrum-global-dimension-static-size-175:14px;--spectrum-global-dimension-static-size-200:16px;--spectrum-global-dimension-static-size-225:18px;--spectrum-global-dimension-static-size-250:20px;--spectrum-global-dimension-static-size-300:24px;--spectrum-global-dimension-static-size-400:32px;--spectrum-global-dimension-static-size-450:36px;--spectrum-global-dimension-static-size-500:40px;--spectrum-global-dimension-static-size-550:44px;--spectrum-global-dimension-static-size-600:48px;--spectrum-global-dimension-static-size-700:56px;--spectrum-global-dimension-static-size-800:64px;--spectrum-global-dimension-static-size-900:72px;--spectrum-global-dimension-static-size-1000:80px;--spectrum-global-dimension-static-size-1200:96px;--spectrum-global-dimension-static-size-1700:136px;--spectrum-global-dimension-static-size-2400:192px;--spectrum-global-dimension-static-size-2600:208px;--spectrum-global-dimension-static-size-3400:272px;--spectrum-global-dimension-static-size-3600:288px;--spectrum-global-dimension-static-size-4600:368px;--spectrum-global-dimension-static-size-5000:400px;--spectrum-global-dimension-static-size-6000:480px;--spectrum-global-dimension-static-font-size-50:11px;--spectrum-global-dimension-static-font-size-75:12px;--spectrum-global-dimension-static-font-size-100:14px;--spectrum-global-dimension-static-font-size-150:15px;--spectrum-global-dimension-static-font-size-200:16px;--spectrum-global-dimension-static-font-size-300:18px;--spectrum-global-dimension-static-font-size-400:20px;--spectrum-global-dimension-static-font-size-500:22px;--spectrum-global-dimension-static-font-size-600:25px;--spectrum-global-dimension-static-font-size-700:28px;--spectrum-global-dimension-static-font-size-800:32px;--spectrum-global-dimension-static-font-size-900:36px;--spectrum-global-dimension-static-font-size-1000:40px;--spectrum-global-dimension-static-percent-50:50%;--spectrum-global-dimension-static-percent-100:100%;--spectrum-global-dimension-static-breakpoint-xsmall:304px;--spectrum-global-dimension-static-breakpoint-small:768px;--spectrum-global-dimension-static-breakpoint-medium:1280px;--spectrum-global-dimension-static-breakpoint-large:1768px;--spectrum-global-dimension-static-breakpoint-xlarge:2160px;--spectrum-global-dimension-static-grid-columns:12;--spectrum-global-dimension-static-grid-fluid-width:100%;--spectrum-global-dimension-static-grid-fixed-max-width:1280px;--spectrum-global-font-family-base:adobe-clean,"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Trebuchet MS","Lucida Grande",sans-serif;--spectrum-global-font-family-serif:adobe-clean-serif,"Source Serif Pro",Georgia,serif;--spectrum-global-font-family-code:"Source Code Pro",Monaco,monospace;--spectrum-global-font-weight-thin:100;--spectrum-global-font-weight-ultra-light:200;--spectrum-global-font-weight-light:300;--spectrum-global-font-weight-regular:400;--spectrum-global-font-weight-medium:500;--spectrum-global-font-weight-semi-bold:600;--spectrum-global-font-weight-bold:700;--spectrum-global-font-weight-extra-bold:800;--spectrum-global-font-weight-black:900;--spectrum-global-font-style-regular:normal;--spectrum-global-font-style-italic:italic;--spectrum-global-font-letter-spacing-none:0;--spectrum-global-font-letter-spacing-small:.0125em;--spectrum-global-font-letter-spacing-han:.05em;--spectrum-global-font-letter-spacing-medium:.06em;--spectrum-global-font-line-height-large:1.7;--spectrum-global-font-line-height-medium:1.5;--spectrum-global-font-line-height-small:1.3;--spectrum-global-font-multiplier-25:.25em;--spectrum-global-font-multiplier-75:.75em;--spectrum-alias-border-size-thin:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-border-size-thick:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-border-size-thicker:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-alias-border-size-thickest:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-input-border-size:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-border-offset-thin:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-border-offset-thick:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-alias-border-offset-thicker:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-border-offset-thickest:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-baseline:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-grid-gutter-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-gutter-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-gutter-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-gutter-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-gutter-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-grid-margin-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-margin-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-margin-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-margin-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-margin-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-grid-layout-region-margin-bottom-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-layout-region-margin-bottom-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-layout-region-margin-bottom-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-layout-region-margin-bottom-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-layout-region-margin-bottom-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-radial-reaction-size-default:var(--spectrum-global-dimension-static-size-550,44px);--spectrum-alias-font-family-ar:var(--spectrum-global-font-font-family-ar);--spectrum-alias-font-family-he:var(--spectrum-global-font-font-family-he);--spectrum-alias-font-family-zh:var(--spectrum-global-font-font-family-zh);--spectrum-alias-font-family-zhhans:var(--spectrum-global-font-font-family-zhhans);--spectrum-alias-font-family-ko:var(--spectrum-global-font-font-family-ko);--spectrum-alias-font-family-ja:var(--spectrum-global-font-font-family-ja);--spectrum-alias-font-family-condensed:var(--spectrum-global-font-font-family-condensed);--spectrum-alias-line-height-body:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-line-height-title:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-body-han-text-line-height:var(--spectrum-global-font-line-height-large,1.7);--spectrum-alias-body-text-font-family:var(--spectrum-global-font-family-base,adobe-clean,"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Trebuchet MS","Lucida Grande",sans-serif);--spectrum-alias-body-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-body-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-body-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-button-text-line-height:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-heading-han-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-heading-text-line-height:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-heading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-heading-text-font-weight-regular-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-light,300);--spectrum-alias-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-heading-text-font-weight-strong-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-subheading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-detail-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-detail-text-font-weight-light:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-detail-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-serif-text-font-family:var(--spectrum-global-font-family-serif,adobe-clean-serif,"Source Serif Pro",Georgia,serif);--spectrum-alias-article-text-font-family:var(--spectrum-global-font-family-serif,adobe-clean-serif,"Source Serif Pro",Georgia,serif);--spectrum-alias-article-body-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-body-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-heading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-subheading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-detail-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-detail-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-code-text-font-family:var(--spectrum-global-font-family-code,"Source Code Pro",Monaco,monospace);--spectrum-alias-han-heading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-regular-emphasis:var(--spectrum-global-font-weight-extra-bold,800);--spectrum-alias-han-heading-text-font-weight-regular-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-light,300);--spectrum-alias-han-heading-text-font-weight-quiet-emphasis:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-light:var(--spectrum-global-font-weight-light,300);--spectrum-alias-han-heading-text-font-weight-light-emphasis:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-heading-text-font-weight-light-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-strong-emphasis:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-strong-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy-emphasis:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-body-text-font-weight-regular:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-body-text-font-weight-emphasis:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-body-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-subheading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-subheading-text-font-weight-emphasis:var(--spectrum-global-font-weight-extra-bold,800);--spectrum-alias-han-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-detail-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-detail-text-font-weight-emphasis:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-detail-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-code-text-font-weight-regular:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-code-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-code-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-heading-margin-bottom:var(--spectrum-global-font-multiplier-25,.25em);--spectrum-alias-body-margin-bottom:var(--spectrum-global-font-multiplier-75,.75em);--spectrum-alias-focus-ring-gap:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-input-focusring-gap:var(--spectrum-global-dimension-static-size-0,0px);--spectrum-alias-focus-ring-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-input-focusring-size:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-loupe-entry-animation-duration:var(--spectrum-global-animation-duration-300,.19s);--spectrum-alias-loupe-exit-animation-duration:var(--spectrum-global-animation-duration-300,.19s)}.spectrum--medium_9e130c,.spectrum--large_9e130c{--spectrum-alias-dropshadow-blur:var(--spectrum-global-dimension-size-50);--spectrum-alias-dropshadow-offset-y:var(--spectrum-global-dimension-size-10);--spectrum-alias-font-size-default:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-line-height-small:var(--spectrum-global-dimension-size-200);--spectrum-alias-line-height-medium:var(--spectrum-global-dimension-size-250);--spectrum-alias-line-height-large:var(--spectrum-global-dimension-size-300);--spectrum-alias-line-height-xlarge:var(--spectrum-global-dimension-size-400);--spectrum-alias-line-height-xxlarge:var(--spectrum-global-dimension-size-600);--spectrum-alias-layout-label-gap-size:var(--spectrum-global-dimension-size-100);--spectrum-alias-pill-button-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-pill-button-text-baseline:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-alias-border-radius-xsmall:var(--spectrum-global-dimension-size-10);--spectrum-alias-border-radius-small:var(--spectrum-global-dimension-size-25);--spectrum-alias-border-radius-regular:var(--spectrum-global-dimension-size-50);--spectrum-alias-border-radius-medium:var(--spectrum-global-dimension-size-100);--spectrum-alias-border-radius-large:var(--spectrum-global-dimension-size-200);--spectrum-alias-single-line-height:var(--spectrum-global-dimension-size-400);--spectrum-alias-single-line-width:var(--spectrum-global-dimension-size-2400);--spectrum-alias-workflow-icon-size:var(--spectrum-global-dimension-size-225);--spectrum-alias-heading-display1-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-xxxl-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-display1-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-xxxl-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-display1-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-han-xxxl-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-display1-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-xxxl-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-display2-text-size:var(--spectrum-global-dimension-font-size-1100);--spectrum-alias-heading-xxl-text-size:var(--spectrum-global-dimension-font-size-1100);--spectrum-alias-heading-display2-margin-top:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-xxl-margin-top:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-display2-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-xxl-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-display2-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-han-xxl-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-xl-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading1-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-xl-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-han-text-size:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-han-xl-text-size:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-han-margin-top:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading-han-xl-margin-top:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading2-text-size:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading-l-text-size:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading2-margin-top:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading-l-margin-top:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading2-han-text-size:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading-han-l-text-size:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading2-han-margin-top:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading-han-l-margin-top:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading3-text-size:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading-m-text-size:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading3-margin-top:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading-m-margin-top:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading3-han-text-size:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading-han-m-text-size:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading3-han-margin-top:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading-han-m-margin-top:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading4-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading-s-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading4-margin-top:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading-s-margin-top:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading5-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading-xs-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading5-margin-top:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading-xs-margin-top:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading6-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading-xxs-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading6-margin-top:var(--spectrum-global-dimension-font-size-75);--spectrum-alias-heading-xxs-margin-top:var(--spectrum-global-dimension-font-size-75);--spectrum-alias-avatar-size-50:var(--spectrum-global-dimension-size-200);--spectrum-alias-avatar-size-75:var(--spectrum-global-dimension-size-225);--spectrum-alias-avatar-size-200:var(--spectrum-global-dimension-size-275);--spectrum-alias-avatar-size-300:var(--spectrum-global-dimension-size-325);--spectrum-alias-avatar-size-500:var(--spectrum-global-dimension-size-400);--spectrum-alias-avatar-size-700:var(--spectrum-global-dimension-size-500)}.spectrum--darkest_9e130c,.spectrum--dark_9e130c,.spectrum--light_9e130c,.spectrum--lightest_9e130c{--spectrum-alias-background-color-default:var(--spectrum-gray-100);--spectrum-alias-background-color-disabled:var(--spectrum-gray-200);--spectrum-alias-background-color-transparent:transparent;--spectrum-alias-background-color-label-gray:#707070;--spectrum-alias-background-color-quickactions-overlay:#0003;--spectrum-alias-placeholder-text-color:var(--spectrum-gray-800);--spectrum-alias-placeholder-text-color-hover:var(--spectrum-gray-900);--spectrum-alias-placeholder-text-color-down:var(--spectrum-gray-900);--spectrum-alias-placeholder-text-color-selected:var(--spectrum-gray-800);--spectrum-alias-label-text-color:var(--spectrum-gray-700);--spectrum-alias-text-color:var(--spectrum-gray-800);--spectrum-alias-text-color-hover:var(--spectrum-gray-900);--spectrum-alias-text-color-down:var(--spectrum-gray-900);--spectrum-alias-text-color-key-focus:var(--spectrum-blue-1000);--spectrum-alias-text-color-mouse-focus:var(--spectrum-blue-1000);--spectrum-alias-text-color-disabled:var(--spectrum-gray-400);--spectrum-alias-text-color-invalid:var(--spectrum-red-900);--spectrum-alias-text-color-selected:var(--spectrum-blue-1000);--spectrum-alias-text-color-selected-neutral:var(--spectrum-gray-900);--spectrum-alias-title-text-color:var(--spectrum-gray-900);--spectrum-alias-heading-text-color:var(--spectrum-gray-900);--spectrum-alias-border-color:var(--spectrum-gray-500);--spectrum-alias-border-color-hover:var(--spectrum-gray-600);--spectrum-alias-border-color-down:var(--spectrum-gray-600);--spectrum-alias-border-color-focus:var(--spectrum-blue-800);--spectrum-alias-input-border-color-key-focus:var(--spectrum-alias-border-color-focus,var(--spectrum-global-color-blue-400));--spectrum-alias-border-color-mouse-focus:var(--spectrum-blue-900);--spectrum-alias-border-color-disabled:var(--spectrum-gray-200);--spectrum-alias-border-color-extralight:var(--spectrum-gray-100);--spectrum-alias-border-color-light:var(--spectrum-gray-200);--spectrum-alias-border-color-mid:var(--spectrum-gray-300);--spectrum-alias-border-color-dark:var(--spectrum-gray-400);--spectrum-alias-border-color-transparent:transparent;--spectrum-alias-border-color-translucent-dark:#0000000d;--spectrum-alias-border-color-translucent-darker:#0000001a;--spectrum-alias-focus-color:var(--spectrum-blue-800);--spectrum-alias-focus-ring-color:var(--spectrum-alias-focus-color,var(--spectrum-global-color-blue-400));--spectrum-alias-track-color-default:var(--spectrum-gray-300);--spectrum-alias-track-color-disabled:var(--spectrum-gray-300);--spectrum-alias-track-color-over-background:#fff3;--spectrum-alias-icon-color:var(--spectrum-gray-700);--spectrum-alias-icon-color-over-background:var(--spectrum-global-color-static-white,#fff);--spectrum-alias-icon-color-hover:var(--spectrum-gray-900);--spectrum-alias-icon-color-down:var(--spectrum-gray-900);--spectrum-alias-icon-color-focus:var(--spectrum-gray-900);--spectrum-alias-icon-color-disabled:var(--spectrum-gray-400);--spectrum-alias-icon-color-selected-neutral:var(--spectrum-gray-900);--spectrum-alias-icon-color-selected:var(--spectrum-blue-900);--spectrum-alias-icon-color-selected-hover:var(--spectrum-blue-1000);--spectrum-alias-icon-color-selected-down:var(--spectrum-blue-1100);--spectrum-alias-icon-color-selected-focus:var(--spectrum-blue-1000);--spectrum-alias-icon-color-error:var(--spectrum-red-800);--spectrum-alias-toolbar-background-color:var(--spectrum-gray-100);--spectrum-alias-colorhandle-outer-border-color:#0000006b;--spectrum-alias-categorical-color-1:var(--spectrum-global-color-static-seafoam-200,#26c0c7);--spectrum-alias-categorical-color-2:var(--spectrum-global-color-static-indigo-700,#5151d3);--spectrum-alias-categorical-color-3:var(--spectrum-global-color-static-orange-500,#e68619);--spectrum-alias-categorical-color-4:var(--spectrum-global-color-static-magenta-500,#d83790);--spectrum-alias-categorical-color-5:var(--spectrum-global-color-static-indigo-200,#9090fa);--spectrum-alias-categorical-color-6:var(--spectrum-global-color-static-celery-200,#58e06f);--spectrum-alias-categorical-color-7:var(--spectrum-global-color-static-blue-500,#2680eb);--spectrum-alias-categorical-color-8:var(--spectrum-global-color-static-purple-800,#6f38b1);--spectrum-alias-categorical-color-9:var(--spectrum-global-color-static-yellow-500,#dfbf00);--spectrum-alias-categorical-color-10:var(--spectrum-global-color-static-orange-700,#cb6f10);--spectrum-alias-categorical-color-11:var(--spectrum-global-color-static-green-600,#268e6c);--spectrum-alias-categorical-color-12:var(--spectrum-global-color-static-chartreuse-300,#9bec54);--spectrum-alias-categorical-color-13:var(--spectrum-global-color-static-blue-200,#5aa9fa);--spectrum-alias-categorical-color-14:var(--spectrum-global-color-static-fuchsia-500,#c038cc);--spectrum-alias-categorical-color-15:var(--spectrum-global-color-static-magenta-200,#f56bb7);--spectrum-alias-categorical-color-16:var(--spectrum-global-color-static-yellow-200,#ffe22e);--spectrum-alias-toggle-color-default:var(--spectrum-gray-600);--spectrum-alias-toggle-color-hover:var(--spectrum-gray-700);--spectrum-alias-toggle-color-key-focus:var(--spectrum-gray-700);--spectrum-alias-toggle-color-selected:var(--spectrum-gray-700);--spectrum-alias-toggle-color-selected-hover:var(--spectrum-gray-800);--spectrum-alias-toggle-color-selected-key-focus:var(--spectrum-gray-800);--spectrum-alias-toggle-color-selected-down:var(--spectrum-gray-900);--spectrum-actionbutton-background-color-disabled:transparent;--spectrum-actionbutton-border-color-disabled:var(--spectrum-gray-300);--spectrum-actionbutton-quiet-background-color-hover:var(--spectrum-gray-200);--spectrum-actionbutton-quiet-background-color-key-focus:var(--spectrum-gray-200);--spectrum-actionbutton-quiet-background-color-down:var(--spectrum-gray-300);--spectrum-actionbutton-static-black-border-color:#0006;--spectrum-actionbutton-static-black-border-color-hover:#0000008c;--spectrum-actionbutton-static-black-border-color-key-focus:#0000008c;--spectrum-actionbutton-static-black-border-color-down:#000000b3;--spectrum-actionbutton-static-black-border-color-disabled:#00000040;--spectrum-actionbutton-static-black-border-color-selected-disabled:#0000001a;--spectrum-actionbutton-static-black-background-color:transparent;--spectrum-actionbutton-static-black-background-color-disabled:transparent;--spectrum-actionbutton-static-white-border-color:#fff6;--spectrum-actionbutton-static-white-border-color-hover:#ffffff8c;--spectrum-actionbutton-static-white-border-color-key-focus:#ffffff8c;--spectrum-actionbutton-static-white-border-color-down:#ffffffb3;--spectrum-actionbutton-static-white-border-color-disabled:#ffffff40;--spectrum-actionbutton-static-white-border-color-selected-disabled:#ffffff1a;--spectrum-actionbutton-static-white-background-color:transparent;--spectrum-actionbutton-static-white-background-color-disabled:transparent;--spectrum-combobox-fieldbutton-inset:0;--spectrum-combobox-fieldbutton-border-left-width:var(--spectrum-alias-input-border-size);--spectrum-combobox-fieldbutton-focus-ring-border-radius:var(--spectrum-combobox-fieldbutton-border-top-left-radius,0);--spectrum-combobox-fieldbutton-start-border-radius:0;--spectrum-combobox-fieldbutton-end-border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));--spectrum-actiongroup-compact-button-gap:calc(-1*var(--spectrum-actionbutton-border-size,var(--spectrum-alias-border-size-thin)));--spectrum-tooltip-background-color:var(--spectrum-neutral-subdued-background-color-default)}.flex-container_e15493,.flex_e15493{display:flex}.flex-gap_e15493{--gap:0px;--column-gap:var(--gap);--row-gap:var(--gap);margin:calc(var(--row-gap)/-2)calc(var(--column-gap)/-2);width:calc(100% + var(--column-gap) + 1px);height:calc(100% + var(--row-gap))}.flex-container_e15493 .flex-gap_e15493>*{margin:calc(var(--row-gap)/2)calc(var(--column-gap)/2)}.spectrum-Popover_38efea.react-spectrum-Popover_38efea{visibility:visible}.spectrum-Popover_38efea .spectrum-Dialog-content_38efea{max-height:initial}.spectrum-Modal-wrapper_38efea.react-spectrum-Modal-wrapper_38efea,.spectrum-Modal_38efea.react-spectrum-Modal_38efea,.spectrum-Tray_38efea.react-spectrum-Tray_38efea{visibility:visible}.spectrum-Tray_23bf66{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Tray_23bf66.is-open_23bf66{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}[dir=ltr] .spectrum-Tray-wrapper_23bf66{left:0}[dir=rtl] .spectrum-Tray-wrapper_23bf66{right:0}.spectrum-Tray-wrapper_23bf66{width:100%;height:100vh;pointer-events:none;z-index:2;justify-content:center;display:flex;position:fixed;top:0}.spectrum-Tray_23bf66{--spectrum-tray-margin-top:64px;--spectrum-tray-max-width:450px;width:var(--spectrum-tray-width,100%);max-width:var(--spectrum-tray-max-width,375px);min-height:var(--spectrum-tray-min-height,var(--spectrum-global-dimension-static-size-800));max-height:calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));padding-bottom:max(calc(100vh - var(--spectrum-visual-viewport-height)),env(safe-area-inset-bottom));border-radius:var(--spectrum-tray-full-width-border-radius,var(--spectrum-alias-border-radius-regular))var(--spectrum-tray-full-width-border-radius,var(--spectrum-alias-border-radius-regular))var(--spectrum-tray-border-radius,0px)var(--spectrum-tray-border-radius,0px);transition:opacity var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s,transform var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s;outline:none;flex-direction:column;display:flex;position:absolute;bottom:0;transform:translateY(100%)}.spectrum-Tray_23bf66.is-open_23bf66{transition:transform var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200)),opacity var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200));transform:translateY(0)}.spectrum-Tray--fixedHeight_23bf66{height:calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));top:var(--spectrum-tray-margin-top)}@media (max-width:450px){.spectrum-Tray_23bf66{border-radius:var(--spectrum-tray-border-radius,0px)}}.spectrum-Tray_23bf66{background-color:var(--spectrum-tray-background-color)}.spectrum-Modal_f81956{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Modal_f81956.is-open_f81956{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Modal-wrapper_f81956{box-sizing:border-box;width:100vw;height:var(--spectrum-visual-viewport-height);visibility:hidden;pointer-events:none;z-index:2;transition:visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.spectrum-Modal-wrapper_f81956.is-open_f81956{visibility:visible}.spectrum-Modal_f81956{transform:translateY(var(--spectrum-dialog-entry-animation-distance,var(--spectrum-global-dimension-size-250)));z-index:2;max-height:calc(var(--spectrum-visual-viewport-height)*.9);max-width:90vw;min-width:var(--spectrum-dialog-min-width,var(--spectrum-global-dimension-static-size-3600));border-radius:var(--spectrum-dialog-border-radius,var(--spectrum-global-dimension-size-50));pointer-events:auto;transition:opacity var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s,visibility 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))),transform 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100)));outline:none}.spectrum-Modal_f81956.is-open_f81956{transition:transform var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200)),opacity var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200));transform:translateY(0)}@media only screen and (max-device-width:400px),only screen and (max-device-height:350px){.spectrum-Modal--responsive_f81956{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:0}.spectrum-Modal-wrapper_f81956 .spectrum-Modal--responsive_f81956{margin-top:0}}.spectrum-Modal--fullscreen_f81956{max-width:none;max-height:none;width:calc(100% - 80px);height:calc(100% - 80px);position:fixed;inset:40px}.spectrum-Modal--fullscreenTakeover_f81956{max-width:none;max-height:none;box-sizing:border-box;border:none;border-radius:0;position:fixed;inset:0}.spectrum-Modal--fullscreenTakeover_f81956,.spectrum-Modal--fullscreenTakeover_f81956.is-open_f81956{transform:none}.spectrum-Modal_f81956{background:var(--spectrum-dialog-background-color,var(--spectrum-alias-background-color-default))}.spectrum-Underlay_eb7615{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Underlay_eb7615.is-open_eb7615{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Underlay_eb7615{z-index:1;transition:opacity var(--spectrum-dialog-background-exit-animation-duration,var(--spectrum-global-animation-duration-300))cubic-bezier(.5,0,1,1)var(--spectrum-dialog-background-exit-animation-delay,var(--spectrum-global-animation-duration-200)),visibility 0s linear calc(var(--spectrum-dialog-background-exit-animation-delay,var(--spectrum-global-animation-duration-200)) + var(--spectrum-dialog-background-exit-animation-duration,var(--spectrum-global-animation-duration-300)));position:fixed;inset:0;overflow:hidden}.spectrum-Underlay_eb7615.spectrum-Underlay--transparent_eb7615{background:0 0;transition:none}.spectrum-Underlay_eb7615.is-open_eb7615{transition:opacity var(--spectrum-dialog-background-entry-animation-duration,var(--spectrum-global-animation-duration-600))cubic-bezier(0,0,.4,1)0s}.spectrum-Underlay_eb7615{background:var(--spectrum-dialog-underlay-background-color,var(--spectrum-alias-background-color-modal-overlay))}.spectrum-Popover_6115b8{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Popover_6115b8.is-open_6115b8{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Popover--bottom_6115b8.is-open_6115b8{transform:translateY(var(--spectrum-overlay-positive-transform-distance))}.spectrum-Popover--top_6115b8.is-open_6115b8{transform:translateY(var(--spectrum-overlay-negative-transform-distance))}.spectrum-Popover--right_6115b8.is-open_6115b8{transform:translateX(var(--spectrum-overlay-positive-transform-distance))}.spectrum-Popover--left_6115b8.is-open_6115b8{transform:translateX(var(--spectrum-overlay-negative-transform-distance))}.spectrum-Popover_6115b8{box-sizing:border-box;min-width:var(--spectrum-global-dimension-size-400);min-height:var(--spectrum-global-dimension-size-400);border-style:solid;border-width:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin));border-radius:var(--spectrum-popover-border-radius,var(--spectrum-alias-border-radius-regular));outline:none;flex-direction:column;display:inline-flex;position:absolute}.spectrum-Popover-tip_6115b8{--spectrum-popover-tip-size:var(--spectrum-popover-tip-width,var(--spectrum-global-dimension-size-250));--spectrum-popover-tip-borderWidth:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin));position:absolute;-webkit-transform:translate(0)}.spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8{stroke-linecap:square;stroke-linejoin:miter;stroke-width:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin))}.spectrum-Popover--dialog_6115b8{min-width:270px;padding:30px 29px}.spectrum-Popover--left_6115b8.spectrum-Popover--withTip_6115b8{margin-right:13px}.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8{left:100%}.spectrum-Popover--right_6115b8.spectrum-Popover--withTip_6115b8{margin-left:13px}.spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8{right:100%;transform:scaleX(-1)}.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8,.spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8{margin-top:calc(var(--spectrum-global-dimension-size-150)*-1);top:50%}.spectrum-Popover--bottom_6115b8.spectrum-Popover--withTip_6115b8{margin-top:13px}.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8{bottom:100%;transform:scaleY(-1)}.spectrum-Popover--top_6115b8.spectrum-Popover--withTip_6115b8{margin-bottom:13px}.spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8{top:100%}.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8,.spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8{margin-left:calc(var(--spectrum-global-dimension-size-150)*-1);left:50%}.spectrum-Popover_6115b8{background-color:var(--spectrum-popover-background-color,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-popover-border-color,var(--spectrum-alias-border-color-dark));filter:drop-shadow(0 var(--spectrum-popover-shadow-offset-y,var(--spectrum-alias-dropshadow-offset-y))var(--spectrum-popover-shadow-blur,var(--spectrum-alias-dropshadow-blur))var(--spectrum-popover-shadow-color,var(--spectrum-alias-dropshadow-color)));-webkit-filter:drop-shadow(0 var(--spectrum-popover-shadow-offset-y,var(--spectrum-alias-dropshadow-offset-y))var(--spectrum-popover-shadow-blur,var(--spectrum-alias-dropshadow-blur))var(--spectrum-popover-shadow-color,var(--spectrum-alias-dropshadow-color)));will-change:filter;clip-path:inset(-30px)}.spectrum-Popover_6115b8 .spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8{fill:var(--spectrum-popover-background-color,var(--spectrum-global-color-gray-50));stroke:var(--spectrum-popover-border-color,var(--spectrum-alias-border-color-dark))}.spectrum-Menu-popover_7ea47c{max-width:320px}[dir=ltr] .spectrum-Menu_7ea47c{text-align:left}[dir=rtl] .spectrum-Menu_7ea47c{text-align:right}.spectrum-Menu_7ea47c{box-sizing:border-box;padding:var(--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50))0;-webkit-user-select:none;user-select:none;margin:0;list-style-type:none;display:block;overflow-y:auto}.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c{margin-top:var(--spectrum-global-dimension-size-75);margin-bottom:var(--spectrum-global-dimension-size-40)}.spectrum-Menu_7ea47c:focus{outline:none}.spectrum-Menu-checkmark_7ea47c{opacity:1;padding-top:calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));transform:scale(1)}[dir=ltr] .spectrum-Menu-item_7ea47c{border-left:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}[dir=rtl] .spectrum-Menu-item_7ea47c{border-right:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}.spectrum-Menu-item_7ea47c{cursor:default;box-sizing:border-box;font-size:var(--spectrum-selectlist-option-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-selectlist-option-text-font-weight,var(--spectrum-global-font-weight-regular));margin:0;font-style:normal;text-decoration:none;position:relative}.spectrum-Menu-item_7ea47c:focus{outline:none}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{display:block}[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Menu-itemLabel_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);word-break:break-word;grid-area:text}.spectrum-Menu-itemLabel--wrapping_7ea47c{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spectrum-Menu-checkmark_7ea47c{grid-area:checkmark;place-self:flex-start end;display:none}.spectrum-Menu-divider_7ea47c{box-sizing:content-box;height:var(--spectrum-selectlist-divider-size,var(--spectrum-alias-border-size-thick));margin:calc(var(--spectrum-selectlist-divider-padding,3px)/2)var(--spectrum-global-dimension-size-150);border:none;padding:0;overflow:visible}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-450)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-450)}.spectrum-Menu-sectionHeading_7ea47c{margin:var(--spectrum-global-dimension-size-75)0 0 0;font-size:var(--spectrum-global-dimension-font-size-100);font-weight:var(--spectrum-global-font-weight-bold,700);line-height:var(--spectrum-alias-line-height-medium,var(--spectrum-global-dimension-size-250));padding-top:0;padding-bottom:0;display:block}.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c{margin:0;display:block}.spectrum-Menu-itemGrid_7ea47c{display:-ms-grid;-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);-ms-grid-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-areas:". . . . . . ."".icon text checkmark end keyboard."".icon description checkmark end keyboard."". . . . . . .";display:grid}.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c{-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{grid-area:end;place-self:flex-start end}[dir=ltr] .spectrum-Menu-icon_7ea47c{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-Menu-icon_7ea47c{padding-left:var(--spectrum-global-dimension-size-100)}.spectrum-Menu-icon_7ea47c{padding-top:var(--spectrum-global-dimension-size-10);grid-area:icon}.spectrum-Menu-description_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);font-size:var(--spectrum-global-dimension-size-150);grid-area:description}[dir=ltr] .spectrum-Menu-keyboard_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu-keyboard_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu-keyboard_7ea47c{grid-area:keyboard;align-self:flex-start;font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Menu_7ea47c{--spectrum-heading-subtitle3-text-color:var(--spectrum-global-color-gray-900);background-color:var(--spectrum-selectlist-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-Menu-item_7ea47c{background-color:var(--spectrum-selectlist-option-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}[dir=ltr] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-left-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}[dir=rtl] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-right-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-hover,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-hover,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:var(--spectrum-selectlist-option-icon-color-selected,var(--spectrum-alias-icon-color-selected))}.spectrum-Menu-item_7ea47c .is-active_7ea47c,.spectrum-Menu-item_7ea47c:active{background-color:var(--spectrum-selectlist-option-background-color-down,var(--spectrum-alias-background-color-hover-overlay))}.spectrum-Menu-item_7ea47c.is-disabled_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color-disabled,var(--spectrum-alias-text-color-disabled));cursor:default;background-image:none}.spectrum-Menu-sectionHeading_7ea47c{color:var(--spectrum-heading-subtitle3-text-color,var(--spectrum-global-color-gray-700))}.spectrum-Menu-divider_7ea47c{background-color:var(--spectrum-global-color-gray-300)}.spectrum-Menu-description_7ea47c{color:var(--spectrum-global-color-gray-700)}@media (forced-colors:active){.spectrum-Menu-divider_7ea47c{background-color:CanvasText;forced-color-adjust:none}.spectrum-Menu-item_7ea47c{forced-color-adjust:none;--spectrum-heading-subtitle3-text-color:ButtonText;--spectrum-selectlist-background-color:ButtonFace;--spectrum-selectlist-divider-color:ButtonText;--spectrum-selectlist-option-background-color:ButtonFace;--spectrum-selectlist-option-background-color-disabled:ButtonFace;--spectrum-selectlist-option-background-color-down:ButtonFace;--spectrum-selectlist-option-background-color-hover:Highlight;--spectrum-selectlist-option-background-color-key-focus:Highlight;--spectrum-selectlist-option-focus-indicator-color:Highlight;--spectrum-selectlist-option-icon-color-selected:Highlight;--spectrum-selectlist-option-text-color:ButtonText;--spectrum-selectlist-option-text-color-disabled:GrayText;--spectrum-selectlist-option-text-color-hover:HighlightText;--spectrum-selectlist-option-text-color-key-focus:HighlightText;--spectrum-alias-border-color-focus:Highlight}.spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:HighlightText}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color));background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay))}}.spectrum-Breadcrumbs_3fe6e8{flex-wrap:nowrap;flex:1 0;justify-content:flex-start;margin:0;padding:0;list-style-type:none;display:flex}.spectrum-Breadcrumbs-itemSeparator_3fe6e8{top:var(--spectrum-global-dimension-size-10);width:var(--spectrum-breadcrumb-ui-icon-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-breadcrumb-ui-icon-height,var(--spectrum-global-dimension-size-100));opacity:1;position:relative;transform:scale(1)}.spectrum-Breadcrumbs-itemSeparator_3fe6e8.is-reversed_3fe6e8{transform:scale(-1)}.spectrum-Breadcrumbs-item_3fe6e8{box-sizing:border-box;height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));white-space:nowrap;font-size:var(--spectrum-breadcrumb-item-text-size,var(--spectrum-global-dimension-font-size-200));font-weight:var(--spectrum-breadcrumb-item-text-font-weight,var(--spectrum-alias-body-text-font-weight));line-height:var(--spectrum-breadcrumb-item-text-line-height,var(--spectrum-alias-body-text-line-height));justify-content:flex-start;align-items:center;display:inline-flex;position:relative}.spectrum-Breadcrumbs-item_3fe6e8:last-of-type{font-weight:var(--spectrum-breadcrumb-title-text-font-weight,var(--spectrum-alias-body-text-font-weight-strong))}.spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemSeparator_3fe6e8{display:none}[dir=ltr] .spectrum-Breadcrumbs-item_3fe6e8>.spectrum-ActionButton_3fe6e8{margin-right:var(--spectrum-breadcrumb-button-gap,var(--spectrum-global-dimension-static-size-10))}[dir=rtl] .spectrum-Breadcrumbs-item_3fe6e8>.spectrum-ActionButton_3fe6e8{margin-left:var(--spectrum-breadcrumb-button-gap,var(--spectrum-global-dimension-static-size-10))}.spectrum-Breadcrumbs-item_3fe6e8:last-child{overflow:hidden}.spectrum-Breadcrumbs-item_3fe6e8:last-child .spectrum-Breadcrumbs-itemLink_3fe6e8{text-overflow:ellipsis;overflow:hidden}[dir=ltr] .spectrum-Breadcrumbs-itemLink_3fe6e8{margin-right:var(--spectrum-breadcrumb-item-margin-right,var(--spectrum-global-dimension-static-size-10))}[dir=rtl] .spectrum-Breadcrumbs-itemLink_3fe6e8{margin-left:var(--spectrum-breadcrumb-item-margin-right,var(--spectrum-global-dimension-static-size-10))}.spectrum-Breadcrumbs-itemLink_3fe6e8{cursor:default;line-height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));vertical-align:middle;padding:0 var(--spectrum-breadcrumb-item-padding-x,var(--spectrum-global-dimension-size-100));height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));border-radius:var(--spectrum-breadcrumb-item-border-radius,var(--spectrum-alias-border-radius-regular));font-size:inherit;outline:none;margin-top:0;margin-bottom:0;text-decoration:none;position:relative}.spectrum-Breadcrumbs-itemLink_3fe6e8[href],.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex="0"]{cursor:pointer}.spectrum-Breadcrumbs-itemLink_3fe6e8[href].is-hovered_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[href].focus-ring_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex="0"].is-hovered_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex="0"].focus-ring_3fe6e8{text-decoration:underline}[dir=ltr] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,[dir=ltr] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{left:0}[dir=rtl] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,[dir=rtl] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{right:0}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,.spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{box-sizing:border-box;width:100%;height:100%;border-width:var(--spectrum-breadcrumb-item-border-size-key-focus,var(--spectrum-alias-border-size-thick));border-radius:var(--spectrum-breadcrumb-item-border-radius,var(--spectrum-alias-border-radius-regular));content:"";pointer-events:none;border-style:solid;display:block;position:absolute;top:0}.spectrum-Breadcrumbs--small_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8{font-size:var(--spectrum-breadcrumb-multiline-item-text-size,var(--spectrum-global-dimension-font-size-75))}.spectrum-Breadcrumbs--medium_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8{font-size:var(--spectrum-breadcrumb-compact-item-text-size,var(--spectrum-global-dimension-font-size-100))}.spectrum-Breadcrumbs--multiline_3fe6e8{flex-wrap:wrap}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type{height:auto;margin-top:var(--spectrum-breadcrumb-multiline-title-margin-top,var(--spectrum-global-dimension-static-size-0));font-size:var(--spectrum-breadcrumb-multiline-title-text-size,var(--spectrum-global-dimension-font-size-300));font-weight:var(--spectrum-breadcrumb-multiline-title-text-font-weight,var(--spectrum-alias-body-text-font-weight-strong));line-height:var(--spectrum-breadcrumb-multiline-title-text-line-height,var(--spectrum-alias-heading-text-line-height));flex:0 100%}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8{height:auto;text-decoration:none}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Heading--pageTitle_3fe6e8{font-size:inherit;font-weight:inherit;margin:0}.spectrum-Breadcrumbs-item_3fe6e8{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8{color:var(--spectrum-breadcrumb-item-text-color-drop,var(--spectrum-alias-text-color-hover));background-color:var(--spectrum-breadcrumb-item-background-color-drop,var(--spectrum-alias-highlight-selected))}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before{border-color:var(--spectrum-breadcrumb-item-border-color-drop,var(--spectrum-global-color-blue-500))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemSeparator_3fe6e8{color:var(--spectrum-breadcrumb-ui-icon-color,var(--spectrum-global-color-gray-500))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8{color:inherit}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8{color:var(--spectrum-breadcrumb-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8{color:var(--spectrum-breadcrumb-text-color-key-focus,var(--spectrum-alias-text-color-hover))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{border-color:var(--spectrum-breadcrumb-item-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down));border-bottom:0}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8{color:var(--spectrum-label-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8~.spectrum-Breadcrumb_3fe6e8:last-of-type{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down));border-bottom:0}@media (forced-colors:active){.spectrum-Breadcrumbs-item_3fe6e8{--spectrum-breadcrumb-item-border-color-drop:LinkText;--spectrum-breadcrumb-item-border-color-key-focus:CanvasText;--spectrum-breadcrumb-item-text-color-drop:LinkText;--spectrum-breadcrumb-text-color:LinkText;--spectrum-breadcrumb-text-color-down:CanvasText;--spectrum-breadcrumb-text-color-hover:LinkText;--spectrum-breadcrumb-text-color-key-focus:LinkText;--spectrum-breadcrumb-ui-icon-color:CanvasText;--spectrum-label-text-color-disabled:GrayText}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type,.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8:active{color:var(--spectrum-label-text-color-disabled,var(--spectrum-alias-text-color-disabled))}}.spectrum-Icon_368b34,.spectrum-UIIcon_368b34{color:inherit;fill:currentColor;pointer-events:none;display:inline-block}.spectrum-Icon_368b34:not(:root),.spectrum-UIIcon_368b34:not(:root){overflow:hidden}@media (forced-colors:active){.spectrum-Icon_368b34,.spectrum-UIIcon_368b34{forced-color-adjust:auto}}.spectrum-Icon--sizeXXS_368b34,.spectrum-Icon--sizeXXS_368b34 img,.spectrum-Icon--sizeXXS_368b34 svg{height:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))/2);width:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))/2)}.spectrum-Icon--sizeXS_368b34,.spectrum-Icon--sizeXS_368b34 img,.spectrum-Icon--sizeXS_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)/2);width:calc(var(--spectrum-global-dimension-size-300)/2)}.spectrum-Icon--sizeS_368b34,.spectrum-Icon--sizeS_368b34 img,.spectrum-Icon--sizeS_368b34 svg{height:var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225));width:var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))}.spectrum-Icon--sizeM_368b34,.spectrum-Icon--sizeM_368b34 img,.spectrum-Icon--sizeM_368b34 svg{height:var(--spectrum-global-dimension-size-300);width:var(--spectrum-global-dimension-size-300)}.spectrum-Icon--sizeL_368b34,.spectrum-Icon--sizeL_368b34 img,.spectrum-Icon--sizeL_368b34 svg{height:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))*2);width:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))*2)}.spectrum-Icon--sizeXL_368b34,.spectrum-Icon--sizeXL_368b34 img,.spectrum-Icon--sizeXL_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)*2);width:calc(var(--spectrum-global-dimension-size-300)*2)}.spectrum-Icon--sizeXXL_368b34,.spectrum-Icon--sizeXXL_368b34 img,.spectrum-Icon--sizeXXL_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)*3);width:calc(var(--spectrum-global-dimension-size-300)*3)}.spectrum--medium_368b34 .spectrum-UIIcon--large_368b34{display:none}.spectrum--medium_368b34 .spectrum-UIIcon--medium_368b34{display:inline}.spectrum--large_368b34 .spectrum-UIIcon--medium_368b34{display:none}.spectrum--large_368b34 .spectrum-UIIcon--large_368b34{display:inline}.spectrum--large_368b34{--ui-icon-large-display:block;--ui-icon-medium-display:none}.spectrum--medium_368b34{--ui-icon-medium-display:block;--ui-icon-large-display:none}.spectrum-UIIcon--large_368b34{display:var(--ui-icon-large-display)}.spectrum-UIIcon--medium_368b34{display:var(--ui-icon-medium-display)}.spectrum-UIIcon-AlertMedium_368b34{width:var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-alert-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-AlertSmall_368b34{width:var(--spectrum-icon-alert-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-alert-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-ArrowDownSmall_368b34{width:var(--spectrum-icon-arrow-down-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-arrow-down-small-height)}.spectrum-UIIcon-ArrowLeftMedium_368b34{width:var(--spectrum-icon-arrow-left-medium-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-arrow-left-medium-height)}.spectrum-UIIcon-Asterisk_368b34{width:var(--spectrum-fieldlabel-asterisk-size,var(--spectrum-global-dimension-size-100));height:var(--spectrum-fieldlabel-asterisk-size,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-CheckmarkMedium_368b34{width:var(--spectrum-icon-checkmark-medium-width);height:var(--spectrum-icon-checkmark-medium-height)}.spectrum-UIIcon-CheckmarkSmall_368b34{width:var(--spectrum-icon-checkmark-small-width);height:var(--spectrum-icon-checkmark-small-height)}.spectrum-UIIcon-ChevronDownMedium_368b34{width:var(--spectrum-icon-chevron-down-medium-width);height:var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-ChevronDownSmall_368b34{width:var(--spectrum-icon-chevron-down-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-chevron-down-small-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-ChevronLeftLarge_368b34{width:var(--spectrum-icon-chevron-left-large-width);height:var(--spectrum-icon-chevron-left-large-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-ChevronLeftMedium_368b34{width:var(--spectrum-icon-chevron-left-medium-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-left-medium-height)}.spectrum-UIIcon-ChevronRightLarge_368b34{width:var(--spectrum-icon-chevron-right-large-width);height:var(--spectrum-icon-chevron-right-large-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-ChevronRightMedium_368b34{width:var(--spectrum-icon-chevron-right-medium-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-right-medium-height)}.spectrum-UIIcon-ChevronRightSmall_368b34{width:var(--spectrum-icon-chevron-right-small-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-right-small-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-ChevronUpSmall_368b34{width:var(--spectrum-icon-chevron-up-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-chevron-up-small-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-CornerTriangle_368b34{width:var(--spectrum-icon-cornertriangle-width,var(--spectrum-global-dimension-size-65));height:var(--spectrum-icon-cornertriangle-height,var(--spectrum-global-dimension-size-65))}.spectrum-UIIcon-CrossLarge_368b34{width:var(--spectrum-icon-cross-large-width);height:var(--spectrum-icon-cross-large-height)}.spectrum-UIIcon-CrossMedium_368b34{width:var(--spectrum-icon-cross-medium-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-cross-medium-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-CrossSmall_368b34{width:var(--spectrum-icon-cross-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-cross-small-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-DashSmall_368b34{width:var(--spectrum-icon-dash-small-width);height:var(--spectrum-icon-dash-small-height)}.spectrum-UIIcon-DoubleGripper_368b34{width:var(--spectrum-icon-doublegripper-width,var(--spectrum-global-dimension-size-200));height:var(--spectrum-icon-doublegripper-height,var(--spectrum-global-dimension-size-50))}.spectrum-UIIcon-FolderBreadcrumb_368b34{width:var(--spectrum-icon-folderbreadcrumb-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-folderbreadcrumb-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-HelpMedium_368b34{width:var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-info-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-HelpSmall_368b34{width:var(--spectrum-icon-info-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-info-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-InfoMedium_368b34{width:var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-info-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-InfoSmall_368b34{width:var(--spectrum-icon-info-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-info-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-ListGripper_368b34{width:var(--spectrum-global-dimension-size-65);height:var(--spectrum-global-dimension-size-150)}.spectrum-UIIcon-Magnifier_368b34{width:var(--spectrum-icon-magnifier-width,var(--spectrum-global-dimension-size-200));height:var(--spectrum-icon-magnifier-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-SkipLeft_368b34{width:var(--spectrum-icon-skip-left-width);height:var(--spectrum-icon-skip-left-height)}.spectrum-UIIcon-SkipRight_368b34{width:var(--spectrum-icon-skip-right-width);height:var(--spectrum-icon-skip-right-height)}.spectrum-UIIcon-Star_368b34{width:var(--spectrum-icon-star-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-star-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-StarOutline_368b34{width:var(--spectrum-icon-star-outline-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-star-outline-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-SuccessMedium_368b34{width:var(--spectrum-icon-success-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-success-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-SuccessSmall_368b34{width:var(--spectrum-icon-success-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-success-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-TripleGripper_368b34{width:var(--spectrum-icon-triplegripper-width);height:var(--spectrum-icon-triplegripper-height,var(--spectrum-global-dimension-size-85))}.spectrum_b37d53{background-color:var(--spectrum-alias-background-color-default,var(--spectrum-global-color-gray-100));-webkit-tap-highlight-color:#0000}.spectrum_2a241c{font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ar){font-family:adobe-arabic,myriad-arabic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(he){font-family:adobe-hebrew,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(zh-Hans),.spectrum_2a241c:lang(zh){font-family:adobe-clean-han-simplified-c,SimSun,Heiti SC Light,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ko){font-family:adobe-clean-han-korean,Malgun Gothic,Apple Gothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ja){font-family:adobe-clean-han-japanese,Yu Gothic,メイリオ,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro W3,Osaka,MSPゴシック,MS PGothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c{font-size:var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100));color:var(--spectrum-global-color-gray-800)}.spectrum_2a241c,.spectrum_2a241c.spectrum-Body_2a241c,.spectrum-Body_2a241c{font-size:var(--spectrum-body-4-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-body-4-text-font-weight,var(--spectrum-alias-body-text-font-weight));line-height:var(--spectrum-body-4-text-line-height,var(--spectrum-alias-body-text-line-height));font-style:var(--spectrum-body-4-text-font-style,var(--spectrum-global-font-style-regular))}.spectrum-Body--italic_2a241c{font-style:var(--spectrum-body-4-emphasis-text-font-style,var(--spectrum-global-font-style-italic))}.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ar),.spectrum-ActionButton_e2d99e:lang(ar),.spectrum-LogicButton_e2d99e:lang(ar),.spectrum-FieldButton_e2d99e:lang(ar),.spectrum-ClearButton_e2d99e:lang(ar){font-family:adobe-arabic,myriad-arabic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(he),.spectrum-ActionButton_e2d99e:lang(he),.spectrum-LogicButton_e2d99e:lang(he),.spectrum-FieldButton_e2d99e:lang(he),.spectrum-ClearButton_e2d99e:lang(he){font-family:adobe-hebrew,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(zh-Hans),.spectrum-ActionButton_e2d99e:lang(zh-Hans),.spectrum-LogicButton_e2d99e:lang(zh-Hans),.spectrum-FieldButton_e2d99e:lang(zh-Hans),.spectrum-ClearButton_e2d99e:lang(zh-Hans),.spectrum-Button_e2d99e:lang(zh),.spectrum-ActionButton_e2d99e:lang(zh),.spectrum-LogicButton_e2d99e:lang(zh),.spectrum-FieldButton_e2d99e:lang(zh),.spectrum-ClearButton_e2d99e:lang(zh){font-family:adobe-clean-han-simplified-c,SimSun,Heiti SC Light,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ko),.spectrum-ActionButton_e2d99e:lang(ko),.spectrum-LogicButton_e2d99e:lang(ko),.spectrum-FieldButton_e2d99e:lang(ko),.spectrum-ClearButton_e2d99e:lang(ko){font-family:adobe-clean-han-korean,Malgun Gothic,Apple Gothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ja),.spectrum-ActionButton_e2d99e:lang(ja),.spectrum-LogicButton_e2d99e:lang(ja),.spectrum-FieldButton_e2d99e:lang(ja),.spectrum-ClearButton_e2d99e:lang(ja){font-family:adobe-clean-han-japanese,Yu Gothic,メイリオ,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro W3,Osaka,MSPゴシック,MS PGothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{--spectrum-focus-ring-border-radius:var(--spectrum-textfield-border-radius,var(--spectrum-alias-border-radius-regular));--spectrum-focus-ring-gap:var(--spectrum-alias-input-focusring-gap);--spectrum-focus-ring-size:var(--spectrum-alias-input-focusring-size);--spectrum-focus-ring-border-size:0px;--spectrum-focus-ring-color:var(--spectrum-high-contrast-focus-ring-color,var(--spectrum-alias-focus-ring-color,var(--spectrum-alias-focus-color)))}.spectrum-Button_e2d99e:after,.spectrum-ActionButton_e2d99e:after,.spectrum-LogicButton_e2d99e:after,.spectrum-FieldButton_e2d99e:after,.spectrum-ClearButton_e2d99e:after{border-radius:calc(var(--spectrum-focus-ring-border-radius) + var(--spectrum-focus-ring-gap));content:"";margin:calc(-1*var(--spectrum-focus-ring-border-size));pointer-events:none;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-out,margin var(--spectrum-global-animation-duration-100,.13s)ease-out;display:block;position:absolute;inset:0}.spectrum-Button_e2d99e.focus-ring_e2d99e:after,.spectrum-ActionButton_e2d99e.focus-ring_e2d99e:after,.spectrum-LogicButton_e2d99e.focus-ring_e2d99e:after,.spectrum-FieldButton_e2d99e.focus-ring_e2d99e:after,.spectrum-ClearButton_e2d99e.focus-ring_e2d99e:after{margin:calc(var(--spectrum-focus-ring-gap)*-1 - var(--spectrum-focus-ring-border-size));box-shadow:0 0 0 var(--spectrum-focus-ring-size)var(--spectrum-focus-ring-color)}.spectrum-FieldButton--quiet_e2d99e:after{border-radius:0}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e:after{margin:0 0 calc(var(--spectrum-focus-ring-gap)*-1 - var(--spectrum-focus-ring-border-size))0;box-shadow:0 var(--spectrum-focus-ring-size)0 var(--spectrum-focus-ring-color)}.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{box-sizing:border-box;border-radius:var(--spectrum-button-border-radius);border-style:solid;border-width:var(--spectrum-button-border-width);--spectrum-focus-ring-border-radius:var(--spectrum-button-border-radius);--spectrum-focus-ring-border-size:var(--spectrum-button-border-width);--spectrum-focus-ring-gap:var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25));--spectrum-focus-ring-size:var(--spectrum-button-primary-focus-ring-size-key-focus,var(--spectrum-alias-focus-ring-size));text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;transition:background var(--spectrum-global-animation-duration-100,.13s)ease-out,border-color var(--spectrum-global-animation-duration-100,.13s)ease-out,color var(--spectrum-global-animation-duration-100,.13s)ease-out,box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-out;-webkit-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none;cursor:default;isolation:isolate;justify-content:center;align-items:center;margin:0;line-height:1.3;text-decoration:none;display:inline-flex;position:relative;overflow:visible}button.spectrum-Button_e2d99e,button.spectrum-ActionButton_e2d99e,button.spectrum-LogicButton_e2d99e,button.spectrum-FieldButton_e2d99e,button.spectrum-ClearButton_e2d99e{-webkit-appearance:button}.spectrum-Button_e2d99e:focus,.spectrum-ActionButton_e2d99e:focus,.spectrum-LogicButton_e2d99e:focus,.spectrum-FieldButton_e2d99e:focus,.spectrum-ClearButton_e2d99e:focus{outline:none}.spectrum-Button_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton_e2d99e.focus-ring_e2d99e,.spectrum-LogicButton_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.focus-ring_e2d99e,.spectrum-ClearButton_e2d99e.focus-ring_e2d99e{z-index:3}.spectrum-Button_e2d99e::-moz-focus-inner,.spectrum-ActionButton_e2d99e::-moz-focus-inner,.spectrum-LogicButton_e2d99e::-moz-focus-inner,.spectrum-FieldButton_e2d99e::-moz-focus-inner,.spectrum-ClearButton_e2d99e::-moz-focus-inner{border:0;margin-top:-2px;margin-bottom:-2px;padding:0}.spectrum-Button_e2d99e:disabled,.spectrum-ActionButton_e2d99e:disabled,.spectrum-LogicButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e:disabled,.spectrum-ClearButton_e2d99e:disabled{cursor:default}.spectrum-Button_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-LogicButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e{max-height:100%;transition:background var(--spectrum-global-animation-duration-100,.13s)ease-out,fill var(--spectrum-global-animation-duration-100,.13s)ease-out;box-sizing:initial;flex-shrink:0;order:0}.spectrum-Button_e2d99e{--spectrum-button-border-radius:var(--spectrum-button-primary-border-radius,var(--spectrum-alias-border-radius-large));--spectrum-button-border-width:var(--spectrum-button-primary-border-size,var(--spectrum-alias-border-size-thick));min-height:var(--spectrum-button-primary-height,var(--spectrum-alias-single-line-height));height:0%;min-width:var(--spectrum-button-primary-min-width);padding:var(--spectrum-global-dimension-size-50)calc(var(--spectrum-button-primary-padding-x,var(--spectrum-global-dimension-size-200)) - var(--spectrum-button-primary-border-size,var(--spectrum-alias-border-size-thick)));padding-bottom:calc(var(--spectrum-global-dimension-size-50) + 1px);padding-top:calc(var(--spectrum-global-dimension-size-50) - 1px);font-size:var(--spectrum-button-primary-text-size,var(--spectrum-alias-pill-button-text-size));font-weight:var(--spectrum-button-primary-text-font-weight,var(--spectrum-global-font-weight-bold));border-style:solid}.spectrum-Button_e2d99e.is-hovered_e2d99e,.spectrum-Button_e2d99e:active{box-shadow:none}[dir=ltr] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e+.spectrum-Button-label_e2d99e{margin-left:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e+.spectrum-Button-label_e2d99e,[dir=ltr] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e+.spectrum-Icon_e2d99e{margin-right:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e+.spectrum-Icon_e2d99e{margin-left:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}.spectrum-Button_e2d99e.spectrum-Button--iconOnly_e2d99e{min-width:unset;padding:var(--spectrum-global-dimension-size-65)}a.spectrum-Button_e2d99e,a.spectrum-ActionButton_e2d99e{-webkit-appearance:none;-webkit-user-select:none;user-select:none;cursor:pointer}.spectrum-ActionButton_e2d99e{height:var(--spectrum-actionbutton-height,var(--spectrum-alias-single-line-height));min-width:var(--spectrum-actionbutton-min-width,var(--spectrum-global-dimension-size-400));--spectrum-button-border-radius:var(--spectrum-actionbutton-border-radius,var(--spectrum-alias-border-radius-regular));--spectrum-button-border-width:var(--spectrum-actionbutton-border-size,var(--spectrum-alias-border-size-thin));font-size:var(--spectrum-actionbutton-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-actionbutton-text-font-weight,var(--spectrum-alias-body-text-font-weight));padding:0;position:relative}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e{padding-right:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e{padding-left:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e+.spectrum-ActionButton-label_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e+.spectrum-ActionButton-label_e2d99e,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden])+.spectrum-Icon_e2d99e{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden])+.spectrum-Icon_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-ActionButton-label_e2d99e:last-child{padding-left:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child,[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-ActionButton-label_e2d99e:last-child{padding-right:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-Icon_e2d99e:last-child{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child,[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-Icon_e2d99e:last-child{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton-hold_e2d99e{right:var(--spectrum-actionbutton-hold-icon-padding-right,var(--spectrum-global-dimension-size-40))}[dir=rtl] .spectrum-ActionButton-hold_e2d99e{left:var(--spectrum-actionbutton-hold-icon-padding-right,var(--spectrum-global-dimension-size-40))}.spectrum-ActionButton-hold_e2d99e{bottom:var(--spectrum-actionbutton-hold-icon-padding-bottom,var(--spectrum-global-dimension-size-40));position:absolute}[dir=rtl] .spectrum-ActionButton-hold_e2d99e{transform:rotate(90deg)}.spectrum-ActionButton-label_e2d99e,.spectrum-Button-label_e2d99e{-ms-grid-row-align:center;text-align:center;width:100%;order:1;place-self:center}.spectrum-ActionButton-label_e2d99e:empty,.spectrum-Button-label_e2d99e:empty{display:none}.spectrum-ActionButton-label_e2d99e{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.spectrum-ActionButton--quiet_e2d99e{border-width:var(--spectrum-actionbutton-quiet-border-size,var(--spectrum-alias-border-size-thin));border-radius:var(--spectrum-actionbutton-quiet-border-radius,var(--spectrum-alias-border-radius-regular));font-size:var(--spectrum-actionbutton-quiet-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-actionbutton-quiet-text-font-weight,var(--spectrum-alias-body-text-font-weight))}.spectrum-LogicButton_e2d99e{height:var(--spectrum-logicbutton-and-height,24px);padding:var(--spectrum-logicbutton-and-padding-x,var(--spectrum-global-dimension-size-100));--spectrum-button-border-width:var(--spectrum-logicbutton-and-border-size,var(--spectrum-alias-border-size-thick));--spectrum-button-border-radius:var(--spectrum-logicbutton-and-border-radius,var(--spectrum-alias-border-radius-regular));font-size:var(--spectrum-logicbutton-and-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-logicbutton-and-text-font-weight,var(--spectrum-global-font-weight-bold));line-height:0}.spectrum-FieldButton_e2d99e{height:var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400));padding:0 var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));font-family:inherit;font-weight:400;font-size:var(--spectrum-dropdown-text-size,var(--spectrum-alias-font-size-default));-webkit-font-smoothing:initial;cursor:default;--spectrum-focus-ring-gap:var(--spectrum-alias-input-focusring-gap);--spectrum-focus-ring-size:var(--spectrum-alias-input-focusring-size);padding-top:0;padding-bottom:0;padding-left:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));padding-right:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));--spectrum-button-border-width:var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin));--spectrum-button-border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));transition:background-color var(--spectrum-global-animation-duration-100,.13s),box-shadow var(--spectrum-global-animation-duration-100,.13s),border-color var(--spectrum-global-animation-duration-100,.13s);border-style:solid;outline:none;margin:0;line-height:normal;position:relative}.spectrum-FieldButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e{cursor:default;border-width:0}.spectrum-FieldButton_e2d99e.is-open_e2d99e{border-width:var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))}.spectrum-FieldButton--quiet_e2d99e{--spectrum-button-border-width:0;--spectrum-button-border-radius:var(--spectrum-fieldbutton-quiet-border-radius,0px);--spectrum-focus-ring-size:var(--spectrum-alias-focus-ring-size,var(--spectrum-global-dimension-static-size-25));margin:0;padding:0}.spectrum-FieldButton--quiet_e2d99e:disabled.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e.focus-ring_e2d99e{box-shadow:none}.spectrum-ClearButton_e2d99e{width:var(--spectrum-clearbutton-medium-width,var(--spectrum-alias-single-line-height));height:var(--spectrum-clearbutton-medium-height,var(--spectrum-alias-single-line-height));--spectrum-button-border-radius:100%;--spectrum-button-border-width:0px;border:none;margin:0;padding:0}.spectrum-ClearButton_e2d99e>.spectrum-Icon_e2d99e{margin:0 auto}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.spectrum-ClearButton_e2d99e>.spectrum-Icon_e2d99e{margin:0}}.spectrum-ClearButton--small_e2d99e{width:var(--spectrum-clearbutton-small-width,var(--spectrum-global-dimension-size-300));height:var(--spectrum-clearbutton-small-height,var(--spectrum-global-dimension-size-300))}.spectrum-ClearButton_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color,var(--spectrum-alias-icon-color))}.spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color,var(--spectrum-alias-icon-color))}.spectrum-ClearButton_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-hover,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ClearButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ClearButton_e2d99e.is-active_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-down,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-ClearButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-ClearButton_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-key-focus,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-ClearButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-ClearButton_e2d99e:disabled,.spectrum-ClearButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-ClearButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ClearButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-Button_e2d99e[data-style=fill]{--spectrum-button-text-color:white;--spectrum-button-text-color-hover:var(--spectrum-button-text-color);--spectrum-button-text-color-down:var(--spectrum-button-text-color);--spectrum-button-text-color-key-focus:var(--spectrum-button-text-color);--spectrum-button-text-color-disabled:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500));--spectrum-button-color-disabled:var(--spectrum-alias-background-color-disabled);background-color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-color));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color));border-color:#0000}.spectrum-Button_e2d99e[data-style=fill].is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-hover));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-hover))}.spectrum-Button_e2d99e[data-style=fill].focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-key-focus));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-key-focus))}.spectrum-Button_e2d99e[data-style=fill].is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-down));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-down))}.spectrum-Button_e2d99e[data-style=fill]:disabled,.spectrum-Button_e2d99e[data-style=fill].is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-color-disabled));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-text-color-disabled))}.spectrum-Button_e2d99e[data-style=outline]{--spectrum-button-text-color:var(--spectrum-button-color);--spectrum-button-text-color-hover:var(--spectrum-button-color-hover);--spectrum-button-text-color-down:var(--spectrum-button-color-down);--spectrum-button-text-color-key-focus:var(--spectrum-button-color-key-focus);--spectrum-button-text-color-disabled:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500));--spectrum-button-color-disabled:var(--spectrum-alias-background-color-disabled);border-color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-color));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color));background-color:#0000}.spectrum-Button_e2d99e[data-style=outline].is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-hover));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-hover));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-hover))}.spectrum-Button_e2d99e[data-style=outline].focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-key-focus));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-key-focus));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-key-focus))}.spectrum-Button_e2d99e[data-style=outline].is-active_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-down));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-down));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-down))}.spectrum-Button_e2d99e[data-style=outline]:disabled,.spectrum-Button_e2d99e[data-style=outline].is-disabled_e2d99e{border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-color-disabled));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-text-color-disabled));background-color:#0000}.spectrum-Button_e2d99e[data-static-color=white]{--spectrum-focus-ring-color:white}.spectrum-Button_e2d99e[data-static-color=white][data-variant=accent][data-style=fill],.spectrum-Button_e2d99e[data-static-color=white][data-variant=negative][data-style=fill],.spectrum-Button_e2d99e[data-static-color=white][data-variant=primary][data-style=fill]{--spectrum-button-color:#ffffffe6;--spectrum-button-color-hover:white;--spectrum-button-color-down:white;--spectrum-button-color-key-focus:white;--spectrum-button-color-disabled:#ffffff1a;--spectrum-button-text-color:black;--spectrum-button-text-color-disabled:#ffffff8c}.spectrum-Button_e2d99e[data-static-color=white][data-variant=accent][data-style=outline],.spectrum-Button_e2d99e[data-static-color=white][data-variant=negative][data-style=outline],.spectrum-Button_e2d99e[data-static-color=white][data-variant=primary][data-style=outline]{--spectrum-button-color:#ffffffe6;--spectrum-button-color-hover:white;--spectrum-button-color-down:white;--spectrum-button-color-key-focus:white;--spectrum-button-color-disabled:#ffffff40;--spectrum-button-text-color:white;--spectrum-button-text-color-hover:white;--spectrum-button-text-color-down:white;--spectrum-button-text-color-key-focus:white;--spectrum-button-text-color-disabled:#ffffff8c;--spectrum-button-background-color-hover:#ffffff1a;--spectrum-button-background-color-down:#ffffff26;--spectrum-button-background-color-key-focus:#ffffff1a}.spectrum-Button_e2d99e[data-static-color=white][data-variant=secondary][data-style=fill]{--spectrum-button-color:#ffffff12;--spectrum-button-color-hover:#ffffff1a;--spectrum-button-color-down:#ffffff26;--spectrum-button-color-key-focus:#ffffff1a;--spectrum-button-color-disabled:#ffffff1a;--spectrum-button-text-color:white;--spectrum-button-text-color-disabled:#ffffff8c}.spectrum-Button_e2d99e[data-static-color=white][data-variant=secondary][data-style=outline]{--spectrum-button-color:#ffffff40;--spectrum-button-color-hover:#fff6;--spectrum-button-color-down:#ffffff8c;--spectrum-button-color-key-focus:#fff6;--spectrum-button-color-disabled:#ffffff40;--spectrum-button-text-color:white;--spectrum-button-text-color-hover:white;--spectrum-button-text-color-down:white;--spectrum-button-text-color-key-focus:white;--spectrum-button-text-color-disabled:#ffffff8c;--spectrum-button-background-color-hover:#ffffff1a;--spectrum-button-background-color-down:#ffffff26;--spectrum-button-background-color-key-focus:#ffffff1a}.spectrum-Button_e2d99e[data-static-color=black]{--spectrum-focus-ring-color:black}.spectrum-Button_e2d99e[data-static-color=black][data-variant=accent][data-style=fill],.spectrum-Button_e2d99e[data-static-color=black][data-variant=negative][data-style=fill],.spectrum-Button_e2d99e[data-static-color=black][data-variant=primary][data-style=fill]{--spectrum-button-color:#000000e6;--spectrum-button-color-hover:black;--spectrum-button-color-down:black;--spectrum-button-color-key-focus:black;--spectrum-button-color-disabled:#0000001a;--spectrum-button-text-color:white;--spectrum-button-text-color-disabled:#0000008c}.spectrum-Button_e2d99e[data-static-color=black][data-variant=accent][data-style=outline],.spectrum-Button_e2d99e[data-static-color=black][data-variant=negative][data-style=outline],.spectrum-Button_e2d99e[data-static-color=black][data-variant=primary][data-style=outline]{--spectrum-button-color:#000000e6;--spectrum-button-color-hover:black;--spectrum-button-color-down:black;--spectrum-button-color-key-focus:black;--spectrum-button-color-disabled:#00000040;--spectrum-button-text-color:black;--spectrum-button-text-color-hover:black;--spectrum-button-text-color-down:black;--spectrum-button-text-color-key-focus:black;--spectrum-button-text-color-disabled:#0000008c;--spectrum-button-background-color-hover:#0000001a;--spectrum-button-background-color-down:#00000026;--spectrum-button-background-color-key-focus:#0000001a}.spectrum-Button_e2d99e[data-static-color=black][data-variant=secondary][data-style=fill]{--spectrum-button-color:#00000012;--spectrum-button-color-hover:#0000001a;--spectrum-button-color-down:#00000026;--spectrum-button-color-key-focus:#0000001a;--spectrum-button-color-disabled:#0000001a;--spectrum-button-text-color:black;--spectrum-button-text-color-disabled:#0000008c}.spectrum-Button_e2d99e[data-static-color=black][data-variant=secondary][data-style=outline]{--spectrum-button-color:#00000040;--spectrum-button-color-hover:#0006;--spectrum-button-color-down:#0000008c;--spectrum-button-color-key-focus:#0006;--spectrum-button-color-disabled:#00000040;--spectrum-button-text-color:black;--spectrum-button-text-color-hover:black;--spectrum-button-text-color-down:black;--spectrum-button-text-color-key-focus:black;--spectrum-button-text-color-disabled:#0000008c;--spectrum-button-background-color-hover:#0000001a;--spectrum-button-background-color-down:#00000026;--spectrum-button-background-color-key-focus:#0000001a}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=accent][data-style=fill]{--spectrum-button-color:var(--spectrum-accent-background-color-default);--spectrum-button-color-hover:var(--spectrum-accent-background-color-hover);--spectrum-button-color-down:var(--spectrum-accent-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-accent-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=accent][data-style=outline]{--spectrum-button-color:var(--spectrum-accent-color-900);--spectrum-button-color-hover:var(--spectrum-accent-color-1000);--spectrum-button-color-down:var(--spectrum-accent-color-1100);--spectrum-button-color-key-focus:var(--spectrum-accent-color-1000);--spectrum-button-background-color-hover:var(--spectrum-accent-color-200);--spectrum-button-background-color-down:var(--spectrum-accent-color-300);--spectrum-button-background-color-key-focus:var(--spectrum-accent-color-200)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=negative][data-style=fill]{--spectrum-button-color:var(--spectrum-negative-background-color-default);--spectrum-button-color-hover:var(--spectrum-negative-background-color-hover);--spectrum-button-color-down:var(--spectrum-negative-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-negative-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=negative][data-style=outline]{--spectrum-button-color:var(--spectrum-red-900);--spectrum-button-color-hover:var(--spectrum-red-1000);--spectrum-button-color-down:var(--spectrum-red-1100);--spectrum-button-color-key-focus:var(--spectrum-red-1000);--spectrum-button-background-color-hover:var(--spectrum-red-200);--spectrum-button-background-color-down:var(--spectrum-red-300);--spectrum-button-background-color-key-focus:var(--spectrum-red-200)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=primary][data-style=fill]{--spectrum-button-color:var(--spectrum-neutral-background-color-default);--spectrum-button-color-hover:var(--spectrum-neutral-background-color-hover);--spectrum-button-color-down:var(--spectrum-neutral-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-neutral-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=primary][data-style=outline]{--spectrum-button-color:var(--spectrum-gray-800);--spectrum-button-color-hover:var(--spectrum-gray-900);--spectrum-button-color-down:var(--spectrum-gray-900);--spectrum-button-color-key-focus:var(--spectrum-gray-900);--spectrum-button-background-color-hover:var(--spectrum-gray-300);--spectrum-button-background-color-down:var(--spectrum-gray-400);--spectrum-button-background-color-key-focus:var(--spectrum-gray-300)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary]{--spectrum-button-text-color:var(--spectrum-gray-800);--spectrum-button-text-color-hover:var(--spectrum-gray-900);--spectrum-button-text-color-down:var(--spectrum-gray-900);--spectrum-button-text-color-key-focus:var(--spectrum-gray-900)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary][data-style=fill]{--spectrum-button-color:var(--spectrum-gray-200);--spectrum-button-color-hover:var(--spectrum-gray-300);--spectrum-button-color-down:var(--spectrum-gray-400);--spectrum-button-color-key-focus:var(--spectrum-gray-300)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary][data-style=outline]{--spectrum-button-color:var(--spectrum-gray-300);--spectrum-button-color-hover:var(--spectrum-gray-400);--spectrum-button-color-down:var(--spectrum-gray-500);--spectrum-button-color-key-focus:var(--spectrum-gray-400);--spectrum-button-background-color-hover:var(--spectrum-gray-300);--spectrum-button-background-color-down:var(--spectrum-gray-400);--spectrum-button-background-color-key-focus:var(--spectrum-gray-300)}@media (forced-colors:active){.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e{forced-color-adjust:none;--spectrum-high-contrast-transparent:transparent;--spectrum-high-contrast-button-face:ButtonFace;--spectrum-high-contrast-button-text:ButtonText;--spectrum-high-contrast-highlight:Highlight;--spectrum-high-contrast-highlight-text:HighlightText;--spectrum-high-contrast-gray-text:GrayText;--spectrum-high-contrast-focus-ring-color:var(--spectrum-high-contrast-button-text)}}.spectrum-ActionButton_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color,var(--spectrum-global-color-gray-75)));border-color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-border-color,var(--spectrum-alias-border-color)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color,var(--spectrum-alias-text-color)))}.spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color,var(--spectrum-alias-icon-color)))}.spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color,var(--spectrum-alias-icon-color)))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-hover,var(--spectrum-global-color-gray-50)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-hover,var(--spectrum-alias-border-color-hover)));color:var(--spectrum-actionbutton-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color-hover,var(--spectrum-alias-icon-color-hover)))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-hold-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-key-focus,var(--spectrum-global-color-gray-50)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-hover,var(--spectrum-alias-border-color-hover)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color-key-focus,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color-key-focus,var(--spectrum-alias-icon-color-focus)))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color-key-focus,var(--spectrum-alias-icon-color-hover)))}.spectrum-ActionButton_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-down,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-down,var(--spectrum-alias-border-color-down)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color-down,var(--spectrum-alias-text-color-down)))}.spectrum-ActionButton_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color-down,var(--spectrum-alias-icon-color-down)))}.spectrum-ActionButton_e2d99e:disabled,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-border-color-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-icon-color-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-hold-icon-color-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-hover));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-key-focus));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-key-focus));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-down));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-down));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-selected-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-border-color-selected-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-text-color-selected-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-icon-color-selected-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-default));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-default));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-key-focus));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-key-focus,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-key-focus,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-hover));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-hover,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-hover,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-down));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-down));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-down,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-down,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-emphasized-background-color-selected-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-border-color-selected-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-text-color-selected-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton--quiet_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-border-color,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color,var(--spectrum-alias-text-color)))}.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-hover,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-hover,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-hover,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton--quiet_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-hover,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-key-focus,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-down,var(--spectrum-global-color-gray-300)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-down,var(--spectrum-global-color-gray-300)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-down,var(--spectrum-alias-text-color-down)))}.spectrum-ActionButton--quiet_e2d99e:disabled,.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-disabled,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-quiet-border-color-disabled,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-quiet-text-color-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton--staticWhite_e2d99e{mix-blend-mode:screen;--spectrum-actionbutton-static-background-color:var(--spectrum-actionbutton-static-white-background-color);--spectrum-actionbutton-static-background-color-hover:#ffffff1a;--spectrum-actionbutton-static-background-color-focus:#ffffff1a;--spectrum-actionbutton-static-background-color-active:#ffffff26;--spectrum-actionbutton-static-background-color-disabled:var(--spectrum-actionbutton-static-white-background-color-disabled);--spectrum-actionbutton-static-background-color-selected:#ffffffe6;--spectrum-actionbutton-static-background-color-selected-hover:white;--spectrum-actionbutton-static-background-color-selected-focus:white;--spectrum-actionbutton-static-background-color-selected-active:white;--spectrum-actionbutton-static-background-color-selected-disabled:#ffffff1a;--spectrum-actionbutton-static-border-color:var(--spectrum-actionbutton-static-white-border-color);--spectrum-actionbutton-static-border-color-hover:var(--spectrum-actionbutton-static-white-border-color-hover);--spectrum-actionbutton-static-border-color-active:var(--spectrum-actionbutton-static-white-border-color-down);--spectrum-actionbutton-static-border-color-focus:var(--spectrum-actionbutton-static-white-border-color-key-focus);--spectrum-actionbutton-static-border-disabled:var(--spectrum-actionbutton-static-white-border-color-disabled);--spectrum-actionbutton-static-border-color-selected-disabled:var(--spectrum-actionbutton-static-white-border-color-selected-disabled);--spectrum-actionbutton-static-color:white;--spectrum-actionbutton-static-color-selected:black;--spectrum-actionbutton-static-color-disabled:#ffffff8c}.spectrum-ActionButton--staticWhite_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-border-color:transparent;--spectrum-actionbutton-static-border-color-hover:transparent;--spectrum-actionbutton-static-border-color-active:transparent}.spectrum-ActionButton--staticBlack_e2d99e{mix-blend-mode:multiply;--spectrum-actionbutton-static-background-color:var(--spectrum-actionbutton-static-black-background-color);--spectrum-actionbutton-static-background-color-hover:#0000001a;--spectrum-actionbutton-static-background-color-focus:#0000001a;--spectrum-actionbutton-static-background-color-active:#00000026;--spectrum-actionbutton-static-background-color-selected:#000000e6;--spectrum-actionbutton-static-background-color-disabled:var(--spectrum-actionbutton-static-black-background-color-disabled);--spectrum-actionbutton-static-background-color-selected-hover:black;--spectrum-actionbutton-static-background-color-selected-focus:black;--spectrum-actionbutton-static-background-color-selected-active:black;--spectrum-actionbutton-static-background-color-selected-disabled:#0000001a;--spectrum-actionbutton-static-border-color:var(--spectrum-actionbutton-static-black-border-color);--spectrum-actionbutton-static-border-color-hover:var(--spectrum-actionbutton-static-black-border-color-hover);--spectrum-actionbutton-static-border-color-active:var(--spectrum-actionbutton-static-black-border-color-down);--spectrum-actionbutton-static-border-color-focus:var(--spectrum-actionbutton-static-black-border-color-key-focus);--spectrum-actionbutton-static-border-disabled:var(--spectrum-actionbutton-static-black-border-color-disabled);--spectrum-actionbutton-static-border-color-selected-disabled:var(--spectrum-actionbutton-static-black-border-color-selected-disabled);--spectrum-actionbutton-static-color:black;--spectrum-actionbutton-static-color-selected:white;--spectrum-actionbutton-static-color-disabled:#0000008c}.spectrum-ActionButton--staticBlack_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-border-color:transparent;--spectrum-actionbutton-static-border-color-hover:transparent;--spectrum-actionbutton-static-border-color-active:transparent}.spectrum-ActionButton--staticColor_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color);border-color:var(--spectrum-actionbutton-static-border-color);color:var(--spectrum-actionbutton-static-color);--spectrum-focus-ring-color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-hover);border-color:var(--spectrum-actionbutton-static-border-color-hover);color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-focus);border-color:var(--spectrum-actionbutton-static-border-color-focus);box-shadow:none;color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-active_e2d99e{border-color:var(--spectrum-actionbutton-static-border-color-focus)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-active);border-color:var(--spectrum-actionbutton-static-border-color-active);color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-disabled);border-color:var(--spectrum-actionbutton-static-border-disabled);color:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected);border-color:var(--spectrum-actionbutton-static-background-color-selected);color:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-focus);border-color:var(--spectrum-actionbutton-static-background-color-selected-focus);color:var(--spectrum-actionbutton-static-color-selected);box-shadow:none}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-hover);border-color:var(--spectrum-actionbutton-static-background-color-selected-hover);color:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-disabled);border-color:var(--spectrum-actionbutton-static-border-color-selected-disabled);color:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-background-color:transparent;--spectrum-actionbutton-static-background-color-disabled:transparent}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e.is-selected_e2d99e{border-color:#0000}.spectrum-LogicButton--and_e2d99e{background-color:var(--spectrum-global-color-static-blue-600,#1473e6);border-color:var(--spectrum-global-color-static-blue-600,#1473e6);color:var(--spectrum-logicbutton-and-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--and_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-global-color-static-blue-700,#0d66d0);border-color:var(--spectrum-global-color-static-blue-700,#0d66d0);color:var(--spectrum-logicbutton-and-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--and_e2d99e:disabled,.spectrum-LogicButton--and_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-logicbutton-and-background-color-disabled,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-logicbutton-and-border-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-logicbutton-and-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-LogicButton--or_e2d99e{background-color:var(--spectrum-global-color-static-magenta-500,#d83790);border-color:var(--spectrum-global-color-static-magenta-500,#d83790);color:var(--spectrum-logicbutton-or-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--or_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-global-color-static-magenta-600,#ca2982);border-color:var(--spectrum-global-color-static-magenta-600,#ca2982);color:var(--spectrum-logicbutton-or-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--or_e2d99e:disabled,.spectrum-LogicButton--or_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-button-secondary-background-color-disabled,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-button-secondary-border-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-logicbutton-and-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldButton_e2d99e{color:var(--spectrum-fieldbutton-text-color,var(--spectrum-alias-text-color));background-color:var(--spectrum-fieldbutton-background-color,var(--spectrum-global-color-gray-75));border-color:var(--spectrum-fieldbutton-border-color,var(--spectrum-alias-border-color))}.spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color,var(--spectrum-alias-icon-color))}.spectrum-FieldButton_e2d99e.is-hovered_e2d99e{color:var(--spectrum-fieldbutton-text-color-hover,var(--spectrum-alias-text-color-hover));background-color:var(--spectrum-fieldbutton-background-color-hover,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-fieldbutton-border-color-hover,var(--spectrum-alias-border-color-hover))}.spectrum-FieldButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-FieldButton_e2d99e.is-active_e2d99e,.spectrum-FieldButton_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-down,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-fieldbutton-border-color-down,var(--spectrum-alias-border-color-down))}.spectrum-FieldButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-key-focus,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-fieldbutton-border-color-key-focus,var(--spectrum-alias-border-color-focus));color:var(--spectrum-fieldbutton-text-color-key-focus,var(--spectrum-alias-text-color-hover))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e{fill:var(--spectrum-fieldbutton-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-hovered_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-active_e2d99e,.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-selected_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-down,var(--spectrum-global-color-red-600))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-focused_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-FieldButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-fieldbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-FieldButton--quiet_e2d99e{color:var(--spectrum-fieldbutton-text-color,var(--spectrum-alias-text-color));border-color:var(--spectrum-fieldbutton-quiet-border-color,var(--spectrum-alias-border-color-transparent));background-color:var(--spectrum-fieldbutton-quiet-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-hover,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-fieldbutton-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e{color:var(--spectrum-fieldbutton-quiet-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-down,var(--spectrum-alias-background-color-transparent));border-color:var(--spectrum-fieldbutton-quiet-border-color-down,var(--spectrum-alias-border-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.is-focused_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e:disabled,.spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-fieldbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled))}@media (forced-colors:active){.spectrum-ActionButton_e2d99e,.spectrum-ClearButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e{forced-color-adjust:none;--spectrum-clearbutton-medium-background-color:ButtonFace;--spectrum-clearbutton-medium-background-color-disabled:ButtonFace;--spectrum-clearbutton-medium-background-color-down:ButtonFace;--spectrum-clearbutton-medium-background-color-hover:ButtonFace;--spectrum-clearbutton-medium-background-color-key-focus:ButtonFace;--spectrum-clearbutton-medium-icon-color:ButtonText;--spectrum-clearbutton-medium-icon-color-disabled:GrayText;--spectrum-clearbutton-medium-icon-color-down:Highlight;--spectrum-clearbutton-medium-icon-color-hover:Highlight;--spectrum-clearbutton-medium-icon-color-key-focus:Highlight;--spectrum-fieldbutton-background-color:ButtonFace;--spectrum-fieldbutton-background-color-disabled:ButtonFace;--spectrum-fieldbutton-background-color-down:ButtonFace;--spectrum-fieldbutton-background-color-hover:ButtonFace;--spectrum-fieldbutton-background-color-key-focus:ButtonFace;--spectrum-fieldbutton-border-color:ButtonText;--spectrum-fieldbutton-border-color-down:Highlight;--spectrum-fieldbutton-border-color-error:ButtonText;--spectrum-fieldbutton-border-color-error-down:Highlight;--spectrum-fieldbutton-border-color-error-hover:Highlight;--spectrum-fieldbutton-border-color-error-key-focus:Highlight;--spectrum-fieldbutton-border-color-hover:Highlight;--spectrum-fieldbutton-border-color-key-focus:Highlight;--spectrum-fieldbutton-icon-color-disabled:GrayText;--spectrum-fieldbutton-placeholder-text-color-key-focus:ButtonText;--spectrum-fieldbutton-quiet-background-color:ButtonFace;--spectrum-fieldbutton-quiet-background-color-disabled:ButtonFace;--spectrum-fieldbutton-quiet-background-color-down:ButtonFace;--spectrum-fieldbutton-quiet-background-color-hover:ButtonFace;--spectrum-fieldbutton-quiet-background-color-key-focus:ButtonFace;--spectrum-fieldbutton-quiet-border-color:ButtonFace;--spectrum-fieldbutton-quiet-border-color-down:Highlight;--spectrum-fieldbutton-quiet-placeholder-text-color-key-focus:ButtonText;--spectrum-fieldbutton-text-color:ButtonText;--spectrum-fieldbutton-text-color-disabled:GrayText;--spectrum-fieldbutton-text-color-hover:ButtonText;--spectrum-fieldbutton-text-color-key-focus:ButtonText;--spectrum-logicbutton-and-background-color:ButtonFace;--spectrum-logicbutton-and-background-color-disabled:ButtonFace;--spectrum-logicbutton-and-background-color-hover:ButtonFace;--spectrum-logicbutton-and-border-color:ButtonText;--spectrum-logicbutton-and-border-color-disabled:GrayText;--spectrum-logicbutton-and-border-color-hover:Highlight;--spectrum-logicbutton-and-text-color:ButtonText;--spectrum-logicbutton-and-text-color-disabled:GrayText;--spectrum-logicbutton-or-background-color:ButtonFace;--spectrum-logicbutton-or-background-color-hover:ButtonFace;--spectrum-logicbutton-or-border-color:ButtonText;--spectrum-logicbutton-or-border-color-hover:Highlight;--spectrum-logicbutton-or-text-color:ButtonText;--spectrum-button-primary-focus-ring-color-key-focus:CanvasText;--spectrum-button-primary-focus-ring-size-key-focus:3px;--spectrum-dropdown-border-color-key-focus:Highlight}.spectrum-Button--overBackground_e2d99e{--spectrum-button-over-background-color:ButtonText}.spectrum-ActionButton--staticWhite_e2d99e,.spectrum-ActionButton--staticBlack_e2d99e{mix-blend-mode:normal;--spectrum-actionbutton-static-background-color-hover:ButtonFace;--spectrum-actionbutton-static-background-color-focus:ButtonFace;--spectrum-actionbutton-static-background-color-active:ButtonFace;--spectrum-actionbutton-static-background-color-selected:Highlight;--spectrum-actionbutton-static-background-color-selected-hover:Highlight;--spectrum-actionbutton-static-background-color-selected-focus:Highlight;--spectrum-actionbutton-static-background-color-selected-active:Highlight;--spectrum-actionbutton-static-border-color:ButtonText;--spectrum-actionbutton-static-border-color-hover:ButtonText;--spectrum-actionbutton-static-border-color-active:ButtonText;--spectrum-actionbutton-static-border-color-focus:CanvasText;--spectrum-actionbutton-static-border-disabled:GrayText;--spectrum-actionbutton-static-color:ButtonText;--spectrum-actionbutton-static-color-selected:HighlightText;--spectrum-actionbutton-static-color-disabled:GrayText}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e),.spectrum-FieldButton_e2d99e.is-focused_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e){outline:2px solid Highlight}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e.spectrum-FieldButton--quiet_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e.spectrum-FieldButton--quiet_e2d99e{forced-color-adjust:none;box-shadow:0 2px 0 0 var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}} +/*# sourceMappingURL=index.6897f79f.css.map */ diff --git a/tools/picker/dist/index.6897f79f.css.map b/tools/picker/dist/index.6897f79f.css.map new file mode 100644 index 00000000..efe8d7c8 --- /dev/null +++ b/tools/picker/dist/index.6897f79f.css.map @@ -0,0 +1 @@ +{"mappings":"ACAA,sBAIA,cAIA,iBCRA,8CAA8C,gDAAgD,iDAAiD,sOAAsO,sKAAsK,yCAAyC,mLAAmL,mKAAmK,oKAAoK,0UAA0U,8CAA8C,4FAA4F,0SAA0S,2SAA2S,mIAAmI,oGAAoG,2FAA2F,0RAA0R,sGAAsG,uGAAuG,uGAAuG,sGAAsG,uVAAuV,mEAAmE,m4BAAm4B,gzBAAgzB,iHAAiH,kHAAkH,wFAAwF,6FAA6F,4FAA4F,+FAA+F,0KAA0K,gGAAgG,iGAAiG,2LAA2L,oNAAoN,sOAAsO,iOAAiO,kOAAkO,2TAA2T,kYAAkY,oLAAoL,6MAA6M,yTAAyT,8HAA8H,qFAAqF,8EAA8E,8BAA8B,mFAAmF,g5BAAg5B,iJAAiJ,oeAAoe,ykBAAykB,irBCAv/V,kQAAkQ,iDAAyE,0DAA0D,mEAAmE,gKAAgK,+JAA+J,0MAA0M,0IAA0I,0DAA0D,2DAA2D,4gBAA4gB,2VAA2V,4KAA4K,6KAA6K,2KAA2K,4KAA4K,4KAA4K,6KAA6K,utBAAutB,qkBAAqkB,kNAAkN,mNAAmN,qLAAqL,sLAAsL,0JAA0J,2JAA2J,yIAAyI,gFAAgF,8GAA8G,+GAA+G,wSAAwS,yHAAyH,6MAA6M,kJAAkJ,2IAA2I,2GAA2G,uMAAuM,8NAA8N,sRAAsR,iLAAiL,4MAA4M,yJAAyJ,mMAAmM,iLAAiL,6NAA6N,8BAA8B,uqBAAuqB,qGAAqG,0HCAz5S,sDAAsD,uDAAuD,0qBAA0qB,sJAAsJ,qJAAqJ,gKAAgK,kEAAkE,iEAAiE,gJAAgJ,iJAAiJ,0JAA0J,iEAAiE,gEAAgE,+DAA+D,yIAAyI,4HAA4H,6HAA6H,0IAA0I,iWAAiW,0HAA0H,+JAA+J,8GAA8G,8GAA8G,2KAA2K,0IAA0I,mHAAmH,oNAAoN,mNAAmN,6JAA6J,sHAAsH,qHAAqH,2FAA2F,4FAA4F,8NAA8N,qHAAqH,wVAAwV,4IAA4I,oLAAoL,mLAAmL,gJAAgJ,+JAA+J,2GAA2G,sMAAsM,yMAAyM,kIAAkI,qHAAqH,2NAA2N,6EAA6E,mGAAmG,uGAAuG,iGAAiG,iIAAiI,+IAA+I,iMAAiM,uRAAuR,+HCAzsQ,oDAAoD,qDAAqD,+FAA+F,oIAAoI,mIAAmI,8LAA8L,0HAA0H,yHAAyH,4UAA4U,qJAAqJ,2KAA2K,8OAA8O,sDAAsD,uDAAuD,0qBAA0qB,sJAAsJ,qJAAqJ,gKAAgK,kEAAkE,iEAAiE,gJAAgJ,iJAAiJ,0JAA0J,iEAAiE,gEAAgE,+DAA+D,yIAAyI,4HAA4H,6HAA6H,0IAA0I,iWAAiW,0HAA0H,+JAA+J,8GAA8G,8GAA8G,2KAA2K,0IAA0I,mHAAmH,oNAAoN,mNAAmN,6JAA6J,sHAAsH,qHAAqH,2FAA2F,4FAA4F,8NAA8N,qHAAqH,wVAAwV,4IAA4I,oLAAoL,mLAAmL,gJAAgJ,+JAA+J,2GAA2G,sMAAsM,yMAAyM,kIAAkI,qHAAqH,2NAA2N,6EAA6E,mGAAmG,uGAAuG,iGAAiG,iIAAiI,+IAA+I,iMAAiM,uRAAuR,+HCAn8T,0IAA0I,yIAAyI,sPAAsP,wIAAwI,yIAAyI,4TAA4T,wDAAwD,2LAA2L,wLAAwL,iIAAiI,sKAAsK,kLAAkL,2IAA2I,0DAA0D,2DAA2D,kIAAkI,mIAAmI,2RAA2R,+aAA+a,koBAAkoB,0hBAAgjB,4GAA4G,6GAA6G,mKAAmK,oKAAoK,+VAA+V,wDAAwD,qGAAqG,uNAAuN,4PAA4P,sHAAsH,sNAAsN,iRAAiR,2PAA2P,kIAAkI,+LAA+L,8KAA8K,mLAAmL,iKAAiK,uqBAAuqB,2SAA2S,kRAAkR,iJAAiJ,gGAAgG,uRAAuR,oLAAoL,qZAAqZ,+SAA+S,2UAA2U,4SAA4S,iKAAiK,sYAAsY,+WAA+W,sVAAsV,yLAAyL,+TAA+T,6KAA6K,8BAA8B,kvDAAkvD,yIAAyI,2MAA2M,kKAAkK,4NAA4N,sGAAsG,qEAAqE,6DCA9te,6TAA6T,+JAA+J,gPAAgP,yRAAyR,uJAAuJ,2GAA2G,4GAA4G,idAAid,wCAAwC,kJAAkJ,mJAAmJ,4DAA4D,wOAAkL,qFAAqF,oLAAoL,mLAAmL,uFAAuF,uGAAuG,sGAAsG,wLAAwL,yLAAyL,oGAAoG,kGAAkG,yJAAyJ,sNAAsN,gWAAgW,0OAA0O,0OAA0O,wRAAwR,qQAAqQ,uGAAuG,mKAAmK,2NAA2N,kUAAkU,qOAAqO,yLAAyL,qLAAqL,yLAAyL,gUAAgU,8BAA8B,gMAAgM,qHAAqH,k1DAAk1D,o7DAAo7D,iGAAiG,yRAAyR,2bAA2b,0FAA0F,0bAA0b,uLAAuL,6KAA6K,4DAA4D,yOAAyO,8gBAA8gB,2NAA2N,kiBAAkiB,qOAAqO,+LAA+L,+LAA+L,4IAA4I,iFAAiF,kNAAkN,8MAA8M,8PAA8P,0PAA0P,8BAA8B,+FCArtgB,goBAAkoB,iFAAiF,4MAA4M,gZAAgZ,4MAA4M,sIAAsI,sQAAsQ,sIAAsI,6MAA6M,gPAAgP,iaAAia,kRAAkR,sXAAsX,2LAA2L,0XAA0X,sbAAsb,kqBAAkqB,sbAAsb,yfAAyf,qyBAAqyB,yfAAyf,gUAAgU,+TAA+T,mYAAmY,0uBAA0uB,6uBAA6uB,oYAAoY,6UAA6U,mDAAmD,8EAA8E,+EAA+E,yOAAyO,qLAAqL,0WAA0W,2WAA2W,qXAAqX,giBAAgiB,qiBAAqiB,4iBAA4iB,2XAA2X,gXAAgX,iXAAiX,2XAA2X,yiBAAyiB,8iBAA8iB,qjBAAqjB,iYAAiY,srBAAsrB,0QAA0Q,6JAA6J,gTAAgT,uMAAuM,uVAAuV,uFAAuF,oYAAoY,6JAA6J,8JAA8J,kRAAkR,6VAA6V,wSAAwS,iMAAiM,0GAA0G,+FAA+F,oJAAoJ,mJAAmJ,kVAAkV,8GAA8G,+aAA+a,uMAAuM,mKAAmK,8MAA8M,4HAA4H,wGAAwG,wJAAwJ,yJAAyJ,2LAA2L,iMAAiM,yYAAyY,wPAAwP,2PAA2P,oRAAoR,0TAA0T,8JAA8J,qKAAqK,sKAAsK,4eAA4e,8QAA8Q,oPAAoP,4ZAA4Z,oPAAoP,sPAAsP,6ZAA6Z,sPAAsP,4PAA4P,2PAA2P,8PAA8P,geAAge,meAAme,+PAA+P,0KAA0K,qKAAqK,+OAA+O,kPAAkP,wGAAwG,yGAAyG,mJAAmJ,oJAAoJ,miBAAmiB,8SAA8S,4UAA4U,8HAA8H,iKAAiK,4JAA4J,6JAA6J,iMAAiM,oTAAoT,+NAA+N,+NAA+N,s7BAAs7B,4EAA4E,sIAAsI,iFAAiF,2NCA/1mC,+ECAA,66dAA66d,y+5BAAy+5B,8tYAA8tY,6t3BAA6t3B,q12BAAq12B,o6MAAo6M,u9OCA1krH,iDAAiD,+MAA+M,iGCAhQ,0EAA0E,4EAA4E,0LAA0L,uSAAuS,8GAA8G,+CAA+C,gDAAgD,6IAA6I,gkCAAgkC,sfAAsf,6JAA6J,yBAAyB,4EAA4E,6EAA6E,wSAAwS,+GAA+G,qUAAqU,iEAAiE,szBAAszB,ufAAuf,0FAA0F,yGAAyG,gFAAgF,6IAA4K,mJAAyK,oHAAoH,yHAAyH,2SAA2S,kHAAkH,0iBAAgkB,+FAA+F,6LAA6L,2IAA2I,0SAA0S,iHAAiH,0HAA0H,uHAAuH,yHAAyH,wHAAwH,4aAA4a,oSAAoS,uMAAuM,mEAAmE,kFAAkF,sEAAsE,kFAAkF,6FAA6F,+LAA+L,kFAAkF,+FAA+F,kFAAkF,oEAAoE,iMAAiM,4vBAA4vB,mQCA1tV,8CAA8C,gDAAgD,iDAAiD,sOAAsO,sKAAsK,yCAAyC,mLAAmL,mKAAmK,oKAAoK,0UAA0U,8CAA8C,4FAA4F,0SAA0S,2SAA2S,mIAAmI,oGAAoG,2FAA2F,0RAA0R,sGAAsG,uGAAuG,uGAAuG,sGAAsG,uVAAuV,mEAAmE,m4BAAm4B,gzBAAgzB,iHAAiH,kHAAkH,wFAAwF,6FAA6F,4FAA4F,+FAA+F,0KAA0K,gGAAgG,iGAAiG,2LAA2L,oNAAoN,sOAAsO,iOAAiO,kOAAkO,2TAA2T,kYAAkY,oLAAoL,6MAA6M,yTAAyT,8HAA8H,qFAAqF,8EAA8E,8BAA8B,mFAAmF,g5BAAg5B,iJAAiJ,oeAAoe,ykBAAykB,irBCAv/V,uIAAuI,0TAA0T,kFAAkF,4iBAA4iB,gKAAgK,uGAAuG,6KAA6K,4KAA4K,6DAA6D,0HAA0H,0JAA0J,yJAAyJ,yiBAAyiB,+GAA+G,kSAAkS,2LAA2L,4LAA4L,wfAAwf,kLAAkL,kLAAkL,uDAAuD,+jBAA+jB,8JAA8J,6JAA6J,qHAAqH,uSAAuS,sMAAsM,kKAAkK,sFAAsF,mLAAmL,uLAAuL,8MAA8M,sLAAsL,qLAAqL,2LAA2L,iLAAiL,oNAAoN,8BAA8B,qeAAqe,+YAA+Y,kKAAkK,6LCAxjR,uHAAuH,oFAAoF,8BAA8B,wEAAwE,wSAAwS,mNAAmN,kRAAkR,gMAAgM,kSAAkS,mNAAmN,sNAAsN,qEAAqE,wEAAwE,qEAAqE,sEAAsE,oFAAoF,qFAAqF,oEAAoE,sEAAsE,sNAAsN,mNAAmN,uLAAuL,0LAA0L,oNAAoN,8IAA8I,2IAA2I,+LAA+L,sOAAsO,6LAA6L,+LAA+L,gMAAgM,kMAAkM,yOAAyO,gOAAgO,2NAA2N,+HAA+H,sNAAsN,mNAAmN,4HAA4H,yNAAyN,mOAAmO,mNAAmN,gNAAgN,mNAAmN,gNAAgN,oIAAoI,8MAA8M,yHAAyH,4HAA4H,+LAA+L,sNAAsN,4NAA4N,yNAAyN,+KCAz5R,yJAAyJ,oIAAoI,6HAA6H,+GAA+G,oLAAoL,oJAAoJ,+OAA6M,8JAA8J,4bAA4b,kICAxnD,gQAAgQ,6RAA6R,+QAA+Q,wgBAAwgB,oTAAoT,+YAA6W,ykBAAykB,0hBAAgjB,8aAA8a,0DAA0D,wOAAwO,gyCAAgyC,qMAAqM,wLAAwL,iPAAiP,6RAA6R,yMAAyM,qcAAqc,i9BAAi9B,yFAAyF,oLAAoL,2QAA2Q,oLAAoL,0HAA0H,yIAAyI,8oBAA8oB,gKAAgK,iKAAiK,gLAAgL,+KAA+K,oMAAoM,qTAAqT,kNAAkN,oTAAoT,qTAAqT,wRAAwR,uRAAuR,iJAAiJ,gJAAgJ,2JAA2J,qEAAqE,mJAAmJ,2FAA2F,8FAA8F,8bAA8b,wmBAAwmB,qsCAAqsC,oHAAoH,qIAAqI,6RAA6R,wJAAwJ,sTAAsT,iEAAiE,sEAAsE,6DAA6D,sNAAsN,0OAA0O,uIAAuI,8QAA8Q,qKAAqK,0QAA0Q,kKAAkK,sRAAsR,yKAAyK,8TAA8T,wOAAwO,kqBAAkqB,+OAA+O,uPAAuP,4OAA4O,wSAAwS,ksBAAksB,uVAAuV,mWAAmW,mVAAmV,+TAA+T,mFAAmF,uhBAAuhB,0zBAA0zB,qXAAqX,0oBAA0oB,mFAAmF,uhBAAuhB,0zBAA0zB,qXAAqX,0oBAA0oB,yYAAyY,ujBAAujB,mZAAmZ,0fAA0f,8YAA8Y,6fAA6f,sTAAsT,mTAAmT,+fAA+f,8BAA8B,ocAAoc,yaAAya,4KAA4K,8LAA8L,6aAA6a,0MAA0M,kLAAkL,+dAA+d,8MAA8M,gOAAgO,kdAAkd,yNAAyN,6gBAA6gB,4QAA4Q,2SAA2S,uUAAuU,iJAAiJ,qWAAqW,mKAAmK,6WAA6W,mKAAmK,kWAAkW,kKAAkK,8kBAA8kB,2TAA2T,0gBAA0gB,kWAAkW,wjBAAwjB,gZAAgZ,gjBAAgjB,4YAA4Y,2iBAA2iB,yYAAyY,q2BAAq2B,wmBAAwmB,4dAA4d,ogBAAogB,4gBAA4gB,yeAAye,6jBAA6jB,0oDAA0oD,oQAAoQ,4oDAA4oD,oQAAoQ,qSAAqS,gHAAgH,6PAA6P,kOAAkO,6QAA6Q,iOAAiO,kOAAkO,8PAA8P,8IAA8I,2TAA2T,8YAA8Y,mXAAmX,oQAAoQ,mbAAmb,wSAAwS,qmBAAqmB,shBAAshB,ylBAAylB,4gCAA4gC,gNAAgN,sgCAAsgC,qQAAqQ,uRAAuR,8ZAA8Z,yQAAyQ,2RAA2R,8ZAA8Z,uSAAuS,gIAAgI,uVAAuV,8JAA8J,0SAA0S,iOAAiO,kZAAkZ,uOAAuO,+PAA+P,mKAAmK,2LAA2L,8QAA8Q,uRAAuR,mSAAmS,iOAAiO,oVAAoV,6QAA6Q,6OAA6O,oRAAoR,wVAAwV,iaAAia,oUAAoU,8BAA8B,0mGAA0mG,2FAA2F,yhCAAyhC,4MAA4M","sources":["index.6897f79f.css","src/styles.css","node_modules/@react-spectrum/listbox/dist/main.css","node_modules/@react-spectrum/picker/dist/main.css","node_modules/@react-spectrum/form/dist/main.css","node_modules/@react-spectrum/label/dist/main.css","node_modules/@react-spectrum/checkbox/dist/main.css","node_modules/@react-spectrum/progress/dist/main.css","node_modules/@react-spectrum/list/dist/main.css","node_modules/@react-spectrum/image/dist/main.css","node_modules/@react-spectrum/theme-default/dist/main.css","node_modules/@react-spectrum/layout/dist/main.css","node_modules/@react-spectrum/overlays/dist/main.css","node_modules/@react-spectrum/menu/dist/main.css","node_modules/@react-spectrum/breadcrumbs/dist/main.css","node_modules/@react-spectrum/icon/dist/main.css","node_modules/@react-spectrum/provider/dist/main.css","node_modules/@react-spectrum/button/dist/main.css"],"sourcesContent":["html, body {\n height: 100%;\n}\n\nbody {\n margin: 0;\n}\n\n#app {\n height: 100%;\n}\n\n.spectrum-Menu-popover_7ea47c {\n max-width: 320px;\n}\n\n[dir=\"ltr\"] .spectrum-Menu_7ea47c {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Menu_7ea47c {\n text-align: right;\n}\n\n.spectrum-Menu_7ea47c {\n box-sizing: border-box;\n padding: var(--spectrum-popover-padding-y, var(--spectrum-global-dimension-size-50)) 0;\n -webkit-user-select: none;\n user-select: none;\n margin: 0;\n list-style-type: none;\n display: block;\n overflow-y: auto;\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c {\n margin-top: var(--spectrum-global-dimension-size-75);\n margin-bottom: var(--spectrum-global-dimension-size-40);\n}\n\n.spectrum-Menu_7ea47c:focus {\n outline: none;\n}\n\n.spectrum-Menu-checkmark_7ea47c {\n opacity: 1;\n padding-top: calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));\n transform: scale(1);\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c {\n border-left: var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25)) solid transparent;\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c {\n border-right: var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25)) solid transparent;\n}\n\n.spectrum-Menu-item_7ea47c {\n cursor: default;\n box-sizing: border-box;\n font-size: var(--spectrum-selectlist-option-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-selectlist-option-text-font-weight, var(--spectrum-global-font-weight-regular));\n margin: 0;\n font-style: normal;\n text-decoration: none;\n position: relative;\n}\n\n.spectrum-Menu-item_7ea47c:focus {\n outline: none;\n}\n\n.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n display: block;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c + .spectrum-Menu-itemLabel_7ea47c, [dir=\"ltr\"] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c + .spectrum-Menu-itemLabel_7ea47c {\n margin-left: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c + .spectrum-Menu-itemLabel_7ea47c, [dir=\"rtl\"] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c + .spectrum-Menu-itemLabel_7ea47c {\n margin-right: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Menu-itemLabel_7ea47c {\n line-height: var(--spectrum-global-font-line-height-small, 1.3);\n word-break: break-word;\n grid-area: text;\n}\n\n.spectrum-Menu-itemLabel--wrapping_7ea47c {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.spectrum-Menu-checkmark_7ea47c {\n grid-area: checkmark;\n place-self: flex-start end;\n display: none;\n}\n\n.spectrum-Menu-divider_7ea47c {\n box-sizing: content-box;\n height: var(--spectrum-selectlist-divider-size, var(--spectrum-alias-border-size-thick));\n margin: calc(var(--spectrum-selectlist-divider-padding, 3px) / 2) var(--spectrum-global-dimension-size-150);\n border: none;\n padding: 0;\n overflow: visible;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"ltr\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-450);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-450);\n}\n\n.spectrum-Menu-sectionHeading_7ea47c {\n margin: var(--spectrum-global-dimension-size-75) 0 0 0;\n font-size: var(--spectrum-global-dimension-font-size-100);\n font-weight: var(--spectrum-global-font-weight-bold, 700);\n line-height: var(--spectrum-alias-line-height-medium, var(--spectrum-global-dimension-size-250));\n padding-top: 0;\n padding-bottom: 0;\n display: block;\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c {\n margin: 0;\n display: block;\n}\n\n.spectrum-Menu-itemGrid_7ea47c {\n display: -ms-grid;\n -ms-grid-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);\n grid-template-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);\n -ms-grid-rows: var(--spectrum-selectlist-option-padding-height) 1fr auto var(--spectrum-selectlist-option-padding-height);\n grid-template-rows: var(--spectrum-selectlist-option-padding-height) 1fr auto var(--spectrum-selectlist-option-padding-height);\n grid-template-areas: \". . . . . . .\"\n \". icon text checkmark end keyboard .\"\n \". icon description checkmark end keyboard .\"\n \". . . . . . .\";\n display: grid;\n}\n\n.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c {\n -ms-grid-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x, var(--spectrum-global-dimension-size-150))) auto auto var(--spectrum-global-dimension-size-150);\n grid-template-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x, var(--spectrum-global-dimension-size-150))) auto auto var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"ltr\"] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-125);\n}\n\n[dir=\"rtl\"] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-125);\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n grid-area: end;\n place-self: flex-start end;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-icon_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-100);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-icon_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-100);\n}\n\n.spectrum-Menu-icon_7ea47c {\n padding-top: var(--spectrum-global-dimension-size-10);\n grid-area: icon;\n}\n\n.spectrum-Menu-description_7ea47c {\n line-height: var(--spectrum-global-font-line-height-small, 1.3);\n font-size: var(--spectrum-global-dimension-size-150);\n grid-area: description;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-keyboard_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-125);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-keyboard_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-125);\n}\n\n.spectrum-Menu-keyboard_7ea47c {\n grid-area: keyboard;\n align-self: flex-start;\n font-family: adobe-clean-ux, adobe-clean, Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Menu_7ea47c {\n --spectrum-heading-subtitle3-text-color: var(--spectrum-global-color-gray-900);\n background-color: var(--spectrum-selectlist-background-color, var(--spectrum-alias-background-color-transparent));\n}\n\n.spectrum-Menu-item_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-selectlist-option-text-color, var(--spectrum-alias-text-color));\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, [dir=\"ltr\"] .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n border-left-color: var(--spectrum-selectlist-option-focus-indicator-color, var(--spectrum-alias-border-color-focus));\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, [dir=\"rtl\"] .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n border-right-color: var(--spectrum-selectlist-option-focus-indicator-color, var(--spectrum-alias-border-color-focus));\n}\n\n.spectrum-Menu-item_7ea47c.focus-ring_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Menu-item_7ea47c.is-hovered_7ea47c, .spectrum-Menu-item_7ea47c:focus, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-hover, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-hover, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n color: var(--spectrum-selectlist-option-icon-color-selected, var(--spectrum-alias-icon-color-selected));\n}\n\n.spectrum-Menu-item_7ea47c .is-active_7ea47c, .spectrum-Menu-item_7ea47c:active {\n background-color: var(--spectrum-selectlist-option-background-color-down, var(--spectrum-alias-background-color-hover-overlay));\n}\n\n.spectrum-Menu-item_7ea47c.is-disabled_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-disabled, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-selectlist-option-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n cursor: default;\n background-image: none;\n}\n\n.spectrum-Menu-sectionHeading_7ea47c {\n color: var(--spectrum-heading-subtitle3-text-color, var(--spectrum-global-color-gray-700));\n}\n\n.spectrum-Menu-divider_7ea47c {\n background-color: var(--spectrum-global-color-gray-300);\n}\n\n.spectrum-Menu-description_7ea47c {\n color: var(--spectrum-global-color-gray-700);\n}\n\n@media (forced-colors: active) {\n .spectrum-Menu-divider_7ea47c {\n background-color: CanvasText;\n forced-color-adjust: none;\n }\n\n .spectrum-Menu-item_7ea47c {\n forced-color-adjust: none;\n --spectrum-heading-subtitle3-text-color: ButtonText;\n --spectrum-selectlist-background-color: ButtonFace;\n --spectrum-selectlist-divider-color: ButtonText;\n --spectrum-selectlist-option-background-color: ButtonFace;\n --spectrum-selectlist-option-background-color-disabled: ButtonFace;\n --spectrum-selectlist-option-background-color-down: ButtonFace;\n --spectrum-selectlist-option-background-color-hover: Highlight;\n --spectrum-selectlist-option-background-color-key-focus: Highlight;\n --spectrum-selectlist-option-focus-indicator-color: Highlight;\n --spectrum-selectlist-option-icon-color-selected: Highlight;\n --spectrum-selectlist-option-text-color: ButtonText;\n --spectrum-selectlist-option-text-color-disabled: GrayText;\n --spectrum-selectlist-option-text-color-hover: HighlightText;\n --spectrum-selectlist-option-text-color-key-focus: HighlightText;\n --spectrum-alias-border-color-focus: Highlight;\n }\n\n .spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c {\n color: var(--spectrum-selectlist-option-text-color, var(--spectrum-alias-text-color));\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c, .spectrum-Menu-item_7ea47c:focus, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n color: HighlightText;\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c {\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n }\n}\n\n.spectrum-Dropdown_6d8ec0 {\n -webkit-user-select: none;\n user-select: none;\n max-width: 100%;\n width: var(--spectrum-global-dimension-size-2400);\n min-width: var(--spectrum-dropdown-min-width, var(--spectrum-global-dimension-size-600));\n display: inline-block;\n position: relative;\n}\n\n.spectrum-Dropdown_6d8ec0 select {\n appearance: none;\n}\n\n.spectrum-Dropdown_6d8ec0 select::-ms-expand {\n display: none;\n}\n\n.spectrum-Dropdown_6d8ec0 select::-ms-value {\n background-color: #0000;\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown_6d8ec0 select + .spectrum-Dropdown-chevron_6d8ec0 {\n right: var(--spectrum-dropdown-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown_6d8ec0 select + .spectrum-Dropdown-chevron_6d8ec0 {\n left: var(--spectrum-dropdown-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n.spectrum-Dropdown_6d8ec0 select + .spectrum-Dropdown-chevron_6d8ec0 {\n margin-top: calc(var(--spectrum-icon-chevron-down-medium-height, var(--spectrum-global-dimension-size-75)) / -2);\n position: absolute;\n top: 50%;\n}\n\n.spectrum-Dropdown-trigger_6d8ec0 {\n width: 100%;\n contain: size;\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-label_6d8ec0 {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-label_6d8ec0 {\n text-align: right;\n}\n\n.spectrum-Dropdown-label_6d8ec0 {\n white-space: nowrap;\n height: calc(var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2);\n line-height: calc(var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2);\n font-size: var(--spectrum-dropdown-text-size, var(--spectrum-alias-font-size-default));\n text-overflow: ellipsis;\n flex: auto;\n overflow: hidden;\n}\n\n.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0 {\n font-weight: var(--spectrum-dropdown-placeholder-text-font-weight, var(--spectrum-global-font-weight-regular));\n font-style: var(--spectrum-dropdown-placeholder-text-font-style, var(--spectrum-global-font-style-italic));\n transition: color var(--spectrum-global-animation-duration-100, .13s) ease-in-out;\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-label_6d8ec0 + .spectrum-Dropdown-chevron_6d8ec0 {\n margin-left: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-label_6d8ec0 + .spectrum-Dropdown-chevron_6d8ec0 {\n margin-right: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"ltr\"] .spectrum-Icon_6d8ec0 + .spectrum-Dropdown-label_6d8ec0 {\n margin-left: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Icon_6d8ec0 + .spectrum-Dropdown-label_6d8ec0 {\n margin-right: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-label_6d8ec0 ~ .spectrum-Dropdown-chevron_6d8ec0 {\n margin-left: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-label_6d8ec0 ~ .spectrum-Dropdown-chevron_6d8ec0 {\n margin-right: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n.spectrum-Dropdown-chevron_6d8ec0 {\n vertical-align: top;\n transition: color var(--spectrum-global-animation-duration-100, .13s) ease-out;\n margin-top: calc((var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2 - var(--spectrum-icon-chevron-down-medium-height, var(--spectrum-global-dimension-size-75))) / 2);\n margin-bottom: calc((var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2 - var(--spectrum-icon-chevron-down-medium-height, var(--spectrum-global-dimension-size-75))) / 2);\n opacity: 1;\n flex-shrink: 0;\n display: inline-block;\n position: relative;\n}\n\n.spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0 {\n margin-top: calc((var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2 - var(--spectrum-dropdown-icon-size, var(--spectrum-alias-workflow-icon-size))) / 2);\n margin-bottom: calc((var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin)) * 2 - var(--spectrum-dropdown-icon-size, var(--spectrum-alias-workflow-icon-size))) / 2);\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0 + .spectrum-Dropdown-invalidIcon_6d8ec0 {\n margin-left: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0 + .spectrum-Dropdown-invalidIcon_6d8ec0 {\n margin-right: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0 {\n margin-left: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0 {\n margin-right: var(--spectrum-dropdown-icon-margin-left, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"ltr\"] .spectrum-Icon_6d8ec0 + .spectrum-Dropdown-chevron_6d8ec0 {\n margin-left: var(--spectrum-dropdown-icon-gap, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Icon_6d8ec0 + .spectrum-Dropdown-chevron_6d8ec0 {\n margin-right: var(--spectrum-dropdown-icon-gap, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Dropdown--quiet_6d8ec0 {\n width: auto;\n min-width: var(--spectrum-dropdown-quiet-min-width, var(--spectrum-global-dimension-size-600));\n}\n\n.spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0 {\n contain: none;\n}\n\n[dir=\"ltr\"] .spectrum-Dropdown-popover--quiet_6d8ec0 {\n margin-left: calc(var(--spectrum-dropdown-quiet-offset) * -1);\n}\n\n[dir=\"rtl\"] .spectrum-Dropdown-popover--quiet_6d8ec0 {\n margin-right: calc(var(--spectrum-dropdown-quiet-offset) * -1);\n}\n\n.spectrum-Dropdown-popover--quiet_6d8ec0 {\n width: var(--spectrum-global-dimension-size-2400);\n --spectrum-dropdown-quiet-offset: calc(var(--spectrum-dropdown-quiet-popover-offset-x, var(--spectrum-global-dimension-size-150)) + var(--spectrum-popover-border-size, var(--spectrum-alias-border-size-thin)));\n}\n\n.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 {\n width: auto;\n flex-direction: column;\n display: inline-flex;\n}\n\n.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0 {\n width: auto;\n min-width: var(--spectrum-dropdown-quiet-min-width, var(--spectrum-global-dimension-size-600));\n}\n\n.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0 {\n width: auto;\n}\n\n.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0.spectrum-Dropdown-fieldWrapper--positionSide_6d8ec0 {\n flex-direction: row;\n}\n\n.spectrum-Dropdown_6d8ec0 {\n --spectrum-dropdown-placeholder-text-color: var(--spectrum-global-color-gray-800);\n}\n\n.spectrum-Dropdown_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0.is-selected_6d8ec0 .is-placeholder_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color-down, var(--spectrum-global-color-gray-900));\n}\n\n.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0.spectrum-Dropdown-invalidIcon_6d8ec0 {\n fill: var(--spectrum-dropdown-validation-icon-color-error, var(--spectrum-semantic-negative-color-icon));\n}\n\n.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Icon_6d8ec0, .spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0 {\n fill: var(--spectrum-dropdown-icon-color-disabled, var(--spectrum-alias-icon-color-disabled));\n}\n\n.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0:active .spectrum-Dropdown-label_6d8ec0 {\n color: var(--spectrum-dropdown-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color, var(--spectrum-alias-placeholder-text-color));\n}\n\n.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color-hover, var(--spectrum-alias-placeholder-text-color-hover));\n}\n\n.spectrum-Dropdown-trigger_6d8ec0:active .spectrum-Dropdown-label_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color-mouse-focus, var(--spectrum-global-color-gray-900));\n}\n\n.spectrum-Dropdown-trigger_6d8ec0.focus-ring_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0 {\n color: var(--spectrum-dropdown-placeholder-text-color-key-focus, var(--spectrum-alias-placeholder-text-color-hover));\n}\n\n@media (forced-colors: active) {\n .spectrum-Dropdown_6d8ec0 {\n --spectrum-dropdown-icon-color: ButtonText;\n --spectrum-dropdown-icon-color-disabled: GrayText;\n --spectrum-dropdown-icon-color-hover: ButtonText;\n --spectrum-dropdown-icon-color-key-focus: ButtonText;\n --spectrum-dropdown-placeholder-text-color: GrayText;\n --spectrum-dropdown-placeholder-text-color-disabled: GrayText;\n --spectrum-dropdown-placeholder-text-color-down: GrayText;\n --spectrum-dropdown-placeholder-text-color-hover: GrayText;\n --spectrum-dropdown-placeholder-text-color-key-focus: GrayText;\n --spectrum-dropdown-placeholder-text-color-mouse-focus: GrayText;\n --spectrum-dropdown-text-color-disabled: GrayText;\n --spectrum-dropdown-validation-icon-color-error: ButtonText;\n }\n\n .spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0 {\n color: ButtonText;\n }\n\n .spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0 {\n color: GrayText;\n }\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel_d2db1f {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel_d2db1f {\n text-align: right;\n}\n\n.spectrum-FieldLabel_d2db1f {\n box-sizing: border-box;\n padding: var(--spectrum-fieldlabel-padding-top, var(--spectrum-global-dimension-size-50)) 0 var(--spectrum-fieldlabel-padding-bottom, var(--spectrum-global-dimension-size-65));\n font-size: var(--spectrum-fieldlabel-text-size, var(--spectrum-global-dimension-font-size-75));\n font-weight: var(--spectrum-fieldlabel-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-fieldlabel-text-line-height, var(--spectrum-global-font-line-height-small));\n vertical-align: top;\n -webkit-font-smoothing: subpixel-antialiased;\n -moz-osx-font-smoothing: auto;\n font-smoothing: subpixel-antialiased;\n cursor: default;\n flex: none;\n display: flex;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel--positionSide_d2db1f {\n padding-right: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel--positionSide_d2db1f {\n padding-left: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-FieldLabel--positionSide_d2db1f {\n padding-top: var(--spectrum-fieldlabel-side-padding-top, var(--spectrum-global-dimension-size-100));\n display: inline-flex;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-right: 0;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-left: 0;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-left: var(--spectrum-fieldlabel-asterisk-gap, var(--spectrum-global-dimension-size-25));\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-right: var(--spectrum-fieldlabel-asterisk-gap, var(--spectrum-global-dimension-size-25));\n}\n\n.spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-top: var(--spectrum-fieldlabel-asterisk-margin-y, var(--spectrum-global-dimension-size-50));\n margin-bottom: 0;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel--alignEnd_d2db1f {\n text-align: right;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel--alignEnd_d2db1f {\n text-align: left;\n}\n\n.spectrum-FieldLabel--alignEnd_d2db1f {\n justify-content: flex-end;\n}\n\n.spectrum-Field_d2db1f {\n --spectrum-field-default-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-left: var(--spectrum-global-dimension-size-50);\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-right: var(--spectrum-global-dimension-size-50);\n}\n\n.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-top: var(--spectrum-global-dimension-size-25);\n grid-area: contextualHelp;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) {\n display: -ms-inline-grid;\n -ms-grid-columns: auto auto minmax(0, 1fr);\n -ms-grid-rows: auto 1fr auto;\n width: var(--spectrum-field-default-width);\n grid-template: \"label contextualHelp .\"\n \"field field field\" 1fr\n \"helpText helpText helpText\"\n / auto auto minmax(0, 1fr);\n align-content: start;\n display: inline-grid;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f {\n width: 100%;\n grid-area: field;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f {\n -ms-grid-columns: 1fr auto 0;\n grid-template-columns: 1fr auto 0;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f {\n grid-area: label;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) {\n align-items: flex-start;\n display: inline-flex;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f {\n min-width: 0;\n width: var(--spectrum-field-default-width);\n height: 100%;\n flex: 1;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f {\n width: 100%;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f {\n min-width: 0;\n flex: 1;\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-right: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-left: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-top: var(--spectrum-global-dimension-size-65);\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f {\n padding-right: 0;\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f {\n padding-left: 0;\n}\n\n[dir=\"ltr\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n text-align: right;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n border-collapse: separate;\n border-spacing: 0 var(--spectrum-global-dimension-size-300);\n margin: calc(var(--spectrum-global-dimension-size-250) * -1) 0;\n display: table;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f {\n width: 100%;\n display: table-row;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f, .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f {\n display: table-cell;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f {\n vertical-align: top;\n}\n\n[dir=\"ltr\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f {\n text-align: right;\n}\n\n[dir=\"rtl\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f {\n text-align: left;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f {\n display: inline-flex;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f {\n flex: 1;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f {\n width: 100%;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f {\n width: auto;\n min-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f) {\n min-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n flex-direction: column;\n margin: 0;\n display: flex;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f) > * {\n margin-top: var(--spectrum-global-dimension-size-100);\n width: 100%;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f {\n -ms-flex-align: first baseline;\n align-items: baseline;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n top: var(--spectrum-global-dimension-size-40);\n margin-top: var(--spectrum-global-dimension-size-65);\n position: relative;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f {\n width: unset;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f {\n padding-top: 0;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f {\n width: unset;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f {\n word-break: break-word;\n overflow: hidden;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-top: calc(-1 * var(--spectrum-global-dimension-size-25));\n}\n\n.spectrum-FieldLabel_d2db1f, .spectrum-Form-itemLabel_d2db1f {\n color: var(--spectrum-fieldlabel-text-color, var(--spectrum-alias-label-text-color));\n}\n\n.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f, .spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f {\n color: var(--spectrum-fieldlabel-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f, .spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f {\n color: var(--spectrum-fieldlabel-asterisk-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldLabel-requiredIcon_d2db1f {\n color: var(--spectrum-fieldlabel-asterisk-color, var(--spectrum-global-color-gray-600));\n}\n\n[dir=\"ltr\"] .spectrum-HelpText_f395de {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-HelpText_f395de {\n text-align: right;\n}\n\n.spectrum-HelpText_f395de {\n font-size: var(--spectrum-global-dimension-font-size-75);\n display: flex;\n}\n\n[dir=\"ltr\"] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de {\n margin-right: var(--spectrum-global-dimension-size-100);\n}\n\n[dir=\"rtl\"] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de {\n margin-left: var(--spectrum-global-dimension-size-100);\n}\n\n.spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de {\n padding-top: var(--spectrum-global-dimension-size-40);\n padding-bottom: var(--spectrum-global-dimension-size-40);\n flex-shrink: 0;\n}\n\n[dir=\"ltr\"] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de {\n margin-right: var(--spectrum-global-dimension-size-100);\n}\n\n[dir=\"rtl\"] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de {\n margin-left: var(--spectrum-global-dimension-size-100);\n}\n\n.spectrum-HelpText_f395de .spectrum-HelpText-text_f395de {\n padding-top: var(--spectrum-global-dimension-static-size-50, 4px);\n padding-bottom: var(--spectrum-global-dimension-size-115);\n line-height: var(--spectrum-global-font-line-height-small, 1.3);\n text-transform: none;\n letter-spacing: var(--spectrum-global-font-letter-spacing-none, 0);\n flex: 1;\n}\n\n.spectrum-HelpText--neutral_f395de .spectrum-HelpText-text_f395de {\n color: var(--spectrum-alias-label-text-color, var(--spectrum-global-color-gray-700));\n}\n\n.spectrum-HelpText--neutral_f395de.is-disabled_f395de .spectrum-HelpText-text_f395de {\n color: var(--spectrum-alias-text-color-disabled, var(--spectrum-global-color-gray-500));\n}\n\n.spectrum-HelpText--negative_f395de .spectrum-HelpText-validationIcon_f395de, .spectrum-HelpText--negative_f395de .spectrum-HelpText-text_f395de {\n color: var(--spectrum-semantic-negative-color-text-small, var(--spectrum-global-color-red-600));\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel_d2db1f {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel_d2db1f {\n text-align: right;\n}\n\n.spectrum-FieldLabel_d2db1f {\n box-sizing: border-box;\n padding: var(--spectrum-fieldlabel-padding-top, var(--spectrum-global-dimension-size-50)) 0 var(--spectrum-fieldlabel-padding-bottom, var(--spectrum-global-dimension-size-65));\n font-size: var(--spectrum-fieldlabel-text-size, var(--spectrum-global-dimension-font-size-75));\n font-weight: var(--spectrum-fieldlabel-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-fieldlabel-text-line-height, var(--spectrum-global-font-line-height-small));\n vertical-align: top;\n -webkit-font-smoothing: subpixel-antialiased;\n -moz-osx-font-smoothing: auto;\n font-smoothing: subpixel-antialiased;\n cursor: default;\n flex: none;\n display: flex;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel--positionSide_d2db1f {\n padding-right: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel--positionSide_d2db1f {\n padding-left: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-FieldLabel--positionSide_d2db1f {\n padding-top: var(--spectrum-fieldlabel-side-padding-top, var(--spectrum-global-dimension-size-100));\n display: inline-flex;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-right: 0;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-left: 0;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-left: var(--spectrum-fieldlabel-asterisk-gap, var(--spectrum-global-dimension-size-25));\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-right: var(--spectrum-fieldlabel-asterisk-gap, var(--spectrum-global-dimension-size-25));\n}\n\n.spectrum-FieldLabel-requiredIcon_d2db1f {\n margin-top: var(--spectrum-fieldlabel-asterisk-margin-y, var(--spectrum-global-dimension-size-50));\n margin-bottom: 0;\n}\n\n[dir=\"ltr\"] .spectrum-FieldLabel--alignEnd_d2db1f {\n text-align: right;\n}\n\n[dir=\"rtl\"] .spectrum-FieldLabel--alignEnd_d2db1f {\n text-align: left;\n}\n\n.spectrum-FieldLabel--alignEnd_d2db1f {\n justify-content: flex-end;\n}\n\n.spectrum-Field_d2db1f {\n --spectrum-field-default-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-left: var(--spectrum-global-dimension-size-50);\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-right: var(--spectrum-global-dimension-size-50);\n}\n\n.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-top: var(--spectrum-global-dimension-size-25);\n grid-area: contextualHelp;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) {\n display: -ms-inline-grid;\n -ms-grid-columns: auto auto minmax(0, 1fr);\n -ms-grid-rows: auto 1fr auto;\n width: var(--spectrum-field-default-width);\n grid-template: \"label contextualHelp .\"\n \"field field field\" 1fr\n \"helpText helpText helpText\"\n / auto auto minmax(0, 1fr);\n align-content: start;\n display: inline-grid;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f {\n width: 100%;\n grid-area: field;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f {\n -ms-grid-columns: 1fr auto 0;\n grid-template-columns: 1fr auto 0;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f {\n grid-area: label;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) {\n align-items: flex-start;\n display: inline-flex;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f {\n min-width: 0;\n width: var(--spectrum-field-default-width);\n height: 100%;\n flex: 1;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f {\n width: 100%;\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f {\n min-width: 0;\n flex: 1;\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-right: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-left: var(--spectrum-fieldlabel-side-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f {\n margin-top: var(--spectrum-global-dimension-size-65);\n}\n\n[dir=\"ltr\"] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f {\n padding-right: 0;\n}\n\n[dir=\"rtl\"] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f {\n padding-left: 0;\n}\n\n[dir=\"ltr\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n text-align: right;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) {\n border-collapse: separate;\n border-spacing: 0 var(--spectrum-global-dimension-size-300);\n margin: calc(var(--spectrum-global-dimension-size-250) * -1) 0;\n display: table;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f {\n width: 100%;\n display: table-row;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f, .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f {\n display: table-cell;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f {\n vertical-align: top;\n}\n\n[dir=\"ltr\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f {\n text-align: right;\n}\n\n[dir=\"rtl\"] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f {\n text-align: left;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f {\n display: inline-flex;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f {\n flex: 1;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f {\n width: 100%;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f {\n width: auto;\n min-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f) {\n min-width: var(--spectrum-alias-single-line-width, var(--spectrum-global-dimension-size-2400));\n flex-direction: column;\n margin: 0;\n display: flex;\n}\n\n.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f) > * {\n margin-top: var(--spectrum-global-dimension-size-100);\n width: 100%;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f {\n -ms-flex-align: first baseline;\n align-items: baseline;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n top: var(--spectrum-global-dimension-size-40);\n margin-top: var(--spectrum-global-dimension-size-65);\n position: relative;\n}\n\n.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f {\n width: unset;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f {\n padding-top: 0;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f {\n width: unset;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f {\n word-break: break-word;\n overflow: hidden;\n}\n\n.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f {\n margin-top: calc(-1 * var(--spectrum-global-dimension-size-25));\n}\n\n.spectrum-FieldLabel_d2db1f, .spectrum-Form-itemLabel_d2db1f {\n color: var(--spectrum-fieldlabel-text-color, var(--spectrum-alias-label-text-color));\n}\n\n.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f, .spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f {\n color: var(--spectrum-fieldlabel-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f, .spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f {\n color: var(--spectrum-fieldlabel-asterisk-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldLabel-requiredIcon_d2db1f {\n color: var(--spectrum-fieldlabel-asterisk-color, var(--spectrum-global-color-gray-600));\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox_4870fc {\n padding-right: calc(var(--spectrum-checkbox-cursor-hit-x, var(--spectrum-global-dimension-size-100)) * 2);\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox_4870fc {\n padding-left: calc(var(--spectrum-checkbox-cursor-hit-x, var(--spectrum-global-dimension-size-100)) * 2);\n}\n\n.spectrum-Checkbox_4870fc {\n box-sizing: border-box;\n min-height: var(--spectrum-checkbox-height, var(--spectrum-global-dimension-size-400));\n max-width: 100%;\n vertical-align: top;\n isolation: isolate;\n align-items: flex-start;\n display: inline-flex;\n position: relative;\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox-input_4870fc {\n left: calc(var(--spectrum-checkbox-cursor-hit-x, var(--spectrum-global-dimension-size-100)) * -1);\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox-input_4870fc {\n right: calc(var(--spectrum-checkbox-cursor-hit-x, var(--spectrum-global-dimension-size-100)) * -1);\n}\n\n.spectrum-Checkbox-input_4870fc {\n box-sizing: border-box;\n width: calc(100% + var(--spectrum-checkbox-cursor-hit-x, var(--spectrum-global-dimension-size-100)));\n height: 100%;\n opacity: .0001;\n z-index: 1;\n cursor: default;\n margin: 0;\n padding: 0;\n font-family: inherit;\n font-size: 100%;\n line-height: 1.15;\n position: absolute;\n top: 0;\n overflow: visible;\n}\n\n.spectrum-Checkbox-input_4870fc:disabled {\n cursor: default;\n}\n\n.spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:after {\n margin: calc(var(--spectrum-alias-focus-ring-gap, var(--spectrum-global-dimension-static-size-25)) * -1);\n}\n\n.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-width: calc(var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175)) / 2);\n}\n\n.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc {\n display: none;\n}\n\n.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-partialCheckmark_4870fc {\n opacity: 1;\n display: block;\n transform: scale(1);\n}\n\n.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-width: calc(var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175)) / 2);\n}\n\n.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc {\n opacity: 1;\n transform: scale(1);\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox-label_4870fc {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox-label_4870fc {\n text-align: right;\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox-label_4870fc {\n margin-left: var(--spectrum-checkbox-text-gap, var(--spectrum-global-dimension-size-125));\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox-label_4870fc {\n margin-right: var(--spectrum-checkbox-text-gap, var(--spectrum-global-dimension-size-125));\n}\n\n.spectrum-Checkbox-label_4870fc {\n margin-top: var(--spectrum-global-dimension-size-65);\n font-size: var(--spectrum-checkbox-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-checkbox-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: 1.49;\n}\n\n.spectrum-Checkbox-box_4870fc {\n box-sizing: border-box;\n width: var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175));\n margin: calc((var(--spectrum-checkbox-height, var(--spectrum-global-dimension-size-400)) - var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175))) / 2) 0;\n flex-grow: 0;\n flex-shrink: 0;\n position: relative;\n}\n\n.spectrum-Checkbox-box_4870fc:before {\n z-index: 0;\n content: \"\";\n box-sizing: border-box;\n width: var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-checkbox-box-size, var(--spectrum-global-dimension-size-175));\n border-radius: var(--spectrum-checkbox-box-border-radius, var(--spectrum-alias-border-radius-small));\n border-width: var(--spectrum-checkbox-box-border-size, var(--spectrum-alias-border-size-thick));\n transition: border var(--spectrum-global-animation-duration-100, .13s) ease-in-out, box-shadow var(--spectrum-global-animation-duration-100, .13s) ease-in-out;\n border-style: solid;\n display: block;\n position: absolute;\n}\n\n.spectrum-Checkbox-box_4870fc:after {\n border-radius: calc(var(--spectrum-checkbox-box-border-radius, var(--spectrum-alias-border-radius-small)) + var(--spectrum-alias-focus-ring-gap, var(--spectrum-global-dimension-static-size-25)));\n content: \"\";\n margin: var(--spectrum-alias-focus-ring-gap, var(--spectrum-global-dimension-static-size-25));\n transition: opacity var(--spectrum-global-animation-duration-100, .13s) ease-out, margin var(--spectrum-global-animation-duration-100, .13s) ease-out;\n display: block;\n position: absolute;\n inset: 0;\n transform: translate(0);\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox-checkmark_4870fc, [dir=\"ltr\"] .spectrum-Checkbox-partialCheckmark_4870fc {\n left: 50%;\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox-checkmark_4870fc, [dir=\"rtl\"] .spectrum-Checkbox-partialCheckmark_4870fc {\n right: 50%;\n}\n\n[dir=\"ltr\"] .spectrum-Checkbox-checkmark_4870fc, [dir=\"ltr\"] .spectrum-Checkbox-partialCheckmark_4870fc {\n margin-left: calc(var(--spectrum-icon-checkmark-small-width) / -2);\n}\n\n[dir=\"rtl\"] .spectrum-Checkbox-checkmark_4870fc, [dir=\"rtl\"] .spectrum-Checkbox-partialCheckmark_4870fc {\n margin-right: calc(var(--spectrum-icon-checkmark-small-width) / -2);\n}\n\n.spectrum-Checkbox-checkmark_4870fc, .spectrum-Checkbox-partialCheckmark_4870fc {\n margin-top: calc(var(--spectrum-icon-checkmark-small-height) / -2);\n opacity: 0;\n transition: opacity var(--spectrum-global-animation-duration-100, .13s) ease-in-out, transform var(--spectrum-global-animation-duration-100, .13s) ease-in-out;\n position: absolute;\n top: 50%;\n transform: scale(0);\n}\n\n.spectrum-Checkbox-partialCheckmark_4870fc {\n display: none;\n}\n\n.spectrum-Checkbox_4870fc {\n color: var(--spectrum-checkbox-text-color, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Checkbox_4870fc .spectrum-Checkbox-checkmark_4870fc, .spectrum-Checkbox_4870fc .spectrum-Checkbox-partialCheckmark_4870fc {\n color: var(--spectrum-checkbox-checkmark-color, var(--spectrum-global-color-gray-75));\n}\n\n.spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-emphasized-box-border-color, var(--spectrum-global-color-gray-600));\n background-color: var(--spectrum-checkbox-emphasized-box-background-color, var(--spectrum-global-color-gray-75));\n}\n\n.spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-emphasized-text-color, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-accent-color-900);\n}\n\n.spectrum-Checkbox_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-accent-color-1000);\n}\n\n.spectrum-Checkbox_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc:active .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-accent-color-1100);\n}\n\n.spectrum-Checkbox_4870fc {\n border-color: var(--spectrum-checkbox-emphasized-box-border-color, var(--spectrum-global-color-gray-600));\n}\n\n.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-emphasized-box-border-color-hover, var(--spectrum-global-color-gray-700));\n}\n\n.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-emphasized-text-color-hover, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-emphasized-box-border-color-down, var(--spectrum-global-color-gray-800));\n}\n\n.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-emphasized-text-color-down, var(--spectrum-alias-text-color-down));\n}\n\n.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled:active + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled:active + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-emphasized-box-border-color-disabled, var(--spectrum-global-color-gray-400));\n background-color: var(--spectrum-checkbox-emphasized-box-background-color-disabled, var(--spectrum-global-color-gray-75));\n}\n\n.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled ~ .spectrum-Checkbox-label_4870fc, .spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled ~ .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-Checkbox-input_4870fc + .spectrum-Checkbox-box_4870fc:after {\n box-shadow: 0 0 0 var(--spectrum-checkbox-focus-ring-size-key-focus, var(--spectrum-alias-focus-ring-size)) var(--spectrum-checkbox-focus-ring-color-key-focus, var(--spectrum-alias-focus-ring-color));\n opacity: 0;\n}\n\n.spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-alias-toggle-color-key-focus);\n}\n\n.spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:after {\n opacity: 1;\n}\n\n.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox-input_4870fc:checked.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-accent-color-1000);\n}\n\n.spectrum-Checkbox-input_4870fc.focus-ring_4870fc ~ .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-emphasized-text-color-hover, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-Checkbox--quiet_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-alias-toggle-color-selected);\n}\n\n.spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-alias-toggle-color-selected-hover);\n}\n\n.spectrum-Checkbox--quiet_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox--quiet_4870fc:active .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-quiet-box-border-color-selected-down, var(--spectrum-global-color-gray-900));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error, var(--spectrum-global-color-red-500));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-text-color-error, var(--spectrum-global-color-red-600));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error-hover, var(--spectrum-global-color-red-600));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc ~ .spectrum-Checkbox-label_4870fc, .spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc ~ .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-text-color-error-hover, var(--spectrum-global-color-red-700));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error-hover, var(--spectrum-global-color-red-600));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-text-color-error-hover, var(--spectrum-global-color-red-700));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before, .spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error-down, var(--spectrum-global-color-red-700));\n}\n\n.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-label_4870fc {\n color: var(--spectrum-checkbox-text-color-error-down, var(--spectrum-global-color-red-700));\n}\n\n@media (forced-colors: active) {\n .spectrum-Checkbox_4870fc {\n forced-color-adjust: none;\n --spectrum-checkbox-box-border-color: ButtonText;\n --spectrum-checkbox-box-border-color-error: Highlight;\n --spectrum-checkbox-box-border-color-error-down: Highlight;\n --spectrum-checkbox-box-border-color-error-hover: Highlight;\n --spectrum-checkbox-box-border-color-key-focus: Highlight;\n --spectrum-checkbox-checkmark-color: HighlightText;\n --spectrum-checkbox-emphasized-box-background-color: ButtonFace;\n --spectrum-checkbox-emphasized-box-background-color-disabled: ButtonFace;\n --spectrum-checkbox-emphasized-box-border-color: ButtonText;\n --spectrum-checkbox-emphasized-box-border-color-disabled: GrayText;\n --spectrum-checkbox-emphasized-box-border-color-down: Highlight;\n --spectrum-checkbox-emphasized-box-border-color-hover: Highlight;\n --spectrum-checkbox-emphasized-box-border-color-selected: Highlight;\n --spectrum-checkbox-emphasized-box-border-color-selected-down: Highlight;\n --spectrum-checkbox-emphasized-box-border-color-selected-hover: Highlight;\n --spectrum-checkbox-emphasized-box-border-color-selected-key-focus: Highlight;\n --spectrum-checkbox-emphasized-text-color: FieldText;\n --spectrum-checkbox-emphasized-text-color-down: FieldText;\n --spectrum-checkbox-emphasized-text-color-hover: FieldText;\n --spectrum-checkbox-emphasized-text-color-key-focus: FieldText;\n --spectrum-checkbox-focus-ring-color-key-focus: ButtonText;\n --spectrum-checkbox-quiet-box-border-color-selected: Highlight;\n --spectrum-checkbox-quiet-box-border-color-selected-down: Highlight;\n --spectrum-checkbox-quiet-box-border-color-selected-hover: Highlight;\n --spectrum-checkbox-text-color: FieldText;\n --spectrum-checkbox-text-color-disabled: GrayText;\n --spectrum-checkbox-text-color-error: FieldText;\n --spectrum-checkbox-text-color-error-down: FieldText;\n --spectrum-checkbox-text-color-error-hover: FieldText;\n }\n\n .spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-alias-toggle-color-default);\n }\n\n .spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error, var(--spectrum-global-color-red-500));\n }\n\n .spectrum-Checkbox_4870fc.is-invalid_4870fc.is-disabled_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: GrayText;\n }\n\n .spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked + .spectrum-Checkbox-box_4870fc:before {\n border-color: var(--spectrum-checkbox-box-border-color-error, var(--spectrum-global-color-red-500));\n }\n}\n\n.spectrum-FieldGroup_41d350.spectrum-FieldGroup_41d350 {\n width: auto;\n --spectrum-field-default-width: auto;\n}\n\n.spectrum-FieldGroup-group_41d350 {\n flex-direction: column;\n display: flex;\n}\n\n.spectrum-FieldGroup-group--horizontal_41d350 {\n flex-flow: wrap;\n}\n\n.spectrum-BarLoader_48541f {\n min-width: var(--spectrum-global-dimension-static-size-600, 48px);\n width: var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400));\n vertical-align: top;\n isolation: isolate;\n flex-flow: wrap;\n justify-content: space-between;\n align-items: center;\n display: inline-flex;\n position: relative;\n}\n\n.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f {\n max-width: var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400));\n}\n\n.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f {\n max-width: var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400));\n width: 100%;\n}\n\n.spectrum-BarLoader-track_48541f {\n min-width: var(--spectrum-global-dimension-static-size-600, 48px);\n width: 100%;\n height: var(--spectrum-barloader-large-height, var(--spectrum-global-dimension-size-75));\n border-radius: var(--spectrum-barloader-large-border-radius);\n z-index: 1;\n overflow: hidden;\n}\n\n.spectrum-BarLoader-fill_48541f {\n height: var(--spectrum-barloader-large-height, var(--spectrum-global-dimension-size-75));\n border: none;\n transition: width 1s;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader-label_48541f, [dir=\"ltr\"] .spectrum-BarLoader-percentage_48541f {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader-label_48541f, [dir=\"rtl\"] .spectrum-BarLoader-percentage_48541f {\n text-align: right;\n}\n\n.spectrum-BarLoader-label_48541f, .spectrum-BarLoader-percentage_48541f {\n font-size: var(--spectrum-fieldlabel-text-size, var(--spectrum-global-dimension-font-size-75));\n font-weight: var(--spectrum-fieldlabel-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-fieldlabel-text-line-height, var(--spectrum-global-font-line-height-small));\n margin-bottom: var(--spectrum-barloader-large-label-gap-y, var(--spectrum-global-dimension-size-115));\n}\n\n.spectrum-BarLoader-label_48541f {\n flex: 1;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader-percentage_48541f {\n margin-left: var(--spectrum-barloader-small-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader-percentage_48541f {\n margin-right: var(--spectrum-barloader-small-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n.spectrum-BarLoader-percentage_48541f {\n align-self: flex-start;\n}\n\n.spectrum-BarLoader--sideLabel_48541f {\n min-width: -moz-fit-content;\n min-width: -moz-fit-content;\n min-width: -moz-fit-content;\n min-width: fit-content;\n flex-flow: row;\n justify-content: space-between;\n display: inline-flex;\n}\n\n.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f {\n width: inherit;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f {\n margin-right: var(--spectrum-barloader-large-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f {\n margin-left: var(--spectrum-barloader-large-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f {\n margin-bottom: 0;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f {\n text-align: right;\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f {\n text-align: left;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f {\n margin-left: var(--spectrum-barloader-large-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f {\n margin-right: var(--spectrum-barloader-large-label-gap-x, var(--spectrum-global-dimension-size-150));\n}\n\n.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f {\n order: 3;\n margin-bottom: 0;\n}\n\n.spectrum-BarLoader--small_48541f {\n min-width: var(--spectrum-global-dimension-static-size-600, 48px);\n}\n\n.spectrum-BarLoader--small_48541f .spectrum-BarLoader-fill_48541f {\n height: var(--spectrum-barloader-small-height, var(--spectrum-global-dimension-size-50));\n}\n\n.spectrum-BarLoader--small_48541f .spectrum-BarLoader-track_48541f {\n height: var(--spectrum-barloader-small-height, var(--spectrum-global-dimension-size-50));\n border-radius: var(--spectrum-barloader-small-border-radius);\n}\n\n.spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f {\n width: var(--spectrum-barloader-large-indeterminate-fill-width, var(--spectrum-global-dimension-size-1700));\n animation-timing-function: var(--spectrum-barloader-large-indeterminate-animation-ease, var(--spectrum-global-animation-ease-in-out));\n will-change: transform;\n position: relative;\n}\n\n[dir=\"ltr\"] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f {\n animation: indeterminate-loop-ltr_48541f var(--spectrum-barloader-large-indeterminate-duration, var(--spectrum-global-animation-duration-2000)) infinite;\n}\n\n[dir=\"rtl\"] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f {\n animation: indeterminate-loop-rtl_48541f var(--spectrum-barloader-large-indeterminate-duration, var(--spectrum-global-animation-duration-2000)) infinite;\n}\n\n@keyframes indeterminate-loop-ltr_48541f {\n 0% {\n transform: translate(calc(var(--spectrum-barloader-large-indeterminate-fill-width, var(--spectrum-global-dimension-size-1700)) * -1));\n }\n\n to {\n transform: translate(var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400)));\n }\n}\n\n@keyframes indeterminate-loop-rtl_48541f {\n 0% {\n transform: translate(var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400)));\n }\n\n to {\n transform: translate(calc(var(--spectrum-barloader-large-width, var(--spectrum-global-dimension-size-2400)) * -1));\n }\n}\n\n.spectrum-BarLoader_48541f .spectrum-BarLoader-fill_48541f {\n background: var(--spectrum-accent-color-900);\n}\n\n.spectrum-BarLoader_48541f .spectrum-BarLoader-track_48541f {\n background-color: var(--spectrum-barloader-large-track-color, var(--spectrum-alias-track-color-default));\n}\n\n.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-fill_48541f {\n background: var(--spectrum-barloader-large-over-background-track-fill-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-label_48541f, .spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-percentage_48541f {\n color: var(--spectrum-barloader-large-over-background-track-fill-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-track_48541f {\n background-color: var(--spectrum-barloader-large-over-background-track-color, var(--spectrum-alias-track-color-over-background));\n}\n\n.spectrum-BarLoader_48541f.is-positive_48541f .spectrum-BarLoader-fill_48541f {\n background: var(--spectrum-meter-large-track-color-positive, var(--spectrum-semantic-positive-color-status));\n}\n\n.spectrum-BarLoader_48541f.is-warning_48541f .spectrum-BarLoader-fill_48541f {\n background: var(--spectrum-meter-large-track-color-warning, var(--spectrum-semantic-notice-color-status));\n}\n\n.spectrum-BarLoader_48541f.is-critical_48541f .spectrum-BarLoader-fill_48541f {\n background: var(--spectrum-meter-large-track-color-critical, var(--spectrum-semantic-negative-color-status));\n}\n\n.spectrum-BarLoader-label_48541f, .spectrum-BarLoader-percentage_48541f {\n color: var(--spectrum-fieldlabel-text-color, var(--spectrum-alias-label-text-color));\n color: var(--spectrum-fieldlabel-text-color, var(--spectrum-alias-label-text-color));\n color: var(--spectrum-fieldlabel-text-color, var(--spectrum-alias-label-text-color));\n}\n\n@media (forced-colors: active) {\n .spectrum-BarLoader-track_48541f {\n forced-color-adjust: none;\n --spectrum-barloader-large-track-fill-color: ButtonText;\n --spectrum-barloader-large-track-color: ButtonFace;\n border: 1px solid ButtonText;\n }\n}\n\n.spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153 {\n animation: 1s linear infinite spectrum-fill-mask-2_7c1153;\n}\n\n@keyframes spectrum-fill-mask-1_7c1153 {\n 0% {\n transform: rotate(90deg);\n }\n\n 1.69% {\n transform: rotate(72.3deg);\n }\n\n 3.39% {\n transform: rotate(55.5deg);\n }\n\n 5.08% {\n transform: rotate(40.3deg);\n }\n\n 6.78% {\n transform: rotate(25deg);\n }\n\n 8.47% {\n transform: rotate(10.6deg);\n }\n\n 10.17% {\n transform: rotate(0);\n }\n\n 11.86% {\n transform: rotate(0);\n }\n\n 13.56% {\n transform: rotate(0);\n }\n\n 15.25% {\n transform: rotate(0);\n }\n\n 16.95% {\n transform: rotate(0);\n }\n\n 18.64% {\n transform: rotate(0);\n }\n\n 20.34% {\n transform: rotate(0);\n }\n\n 22.03% {\n transform: rotate(0);\n }\n\n 23.73% {\n transform: rotate(0);\n }\n\n 25.42% {\n transform: rotate(0);\n }\n\n 27.12% {\n transform: rotate(0);\n }\n\n 28.81% {\n transform: rotate(0);\n }\n\n 30.51% {\n transform: rotate(0);\n }\n\n 32.2% {\n transform: rotate(0);\n }\n\n 33.9% {\n transform: rotate(0);\n }\n\n 35.59% {\n transform: rotate(0);\n }\n\n 37.29% {\n transform: rotate(0);\n }\n\n 38.98% {\n transform: rotate(0);\n }\n\n 40.68% {\n transform: rotate(0);\n }\n\n 42.37% {\n transform: rotate(5.3deg);\n }\n\n 44.07% {\n transform: rotate(13.4deg);\n }\n\n 45.76% {\n transform: rotate(20.6deg);\n }\n\n 47.46% {\n transform: rotate(29deg);\n }\n\n 49.15% {\n transform: rotate(36.5deg);\n }\n\n 50.85% {\n transform: rotate(42.6deg);\n }\n\n 52.54% {\n transform: rotate(48.8deg);\n }\n\n 54.24% {\n transform: rotate(54.2deg);\n }\n\n 55.93% {\n transform: rotate(59.4deg);\n }\n\n 57.63% {\n transform: rotate(63.2deg);\n }\n\n 59.32% {\n transform: rotate(67.2deg);\n }\n\n 61.02% {\n transform: rotate(70.8deg);\n }\n\n 62.71% {\n transform: rotate(73.8deg);\n }\n\n 64.41% {\n transform: rotate(76.2deg);\n }\n\n 66.1% {\n transform: rotate(78.7deg);\n }\n\n 67.8% {\n transform: rotate(80.6deg);\n }\n\n 69.49% {\n transform: rotate(82.6deg);\n }\n\n 71.19% {\n transform: rotate(83.7deg);\n }\n\n 72.88% {\n transform: rotate(85deg);\n }\n\n 74.58% {\n transform: rotate(86.3deg);\n }\n\n 76.27% {\n transform: rotate(87deg);\n }\n\n 77.97% {\n transform: rotate(87.7deg);\n }\n\n 79.66% {\n transform: rotate(88.3deg);\n }\n\n 81.36% {\n transform: rotate(88.6deg);\n }\n\n 83.05% {\n transform: rotate(89.2deg);\n }\n\n 84.75% {\n transform: rotate(89.2deg);\n }\n\n 86.44% {\n transform: rotate(89.5deg);\n }\n\n 88.14% {\n transform: rotate(89.9deg);\n }\n\n 89.83% {\n transform: rotate(89.7deg);\n }\n\n 91.53% {\n transform: rotate(90.1deg);\n }\n\n 93.22% {\n transform: rotate(90.2deg);\n }\n\n 94.92% {\n transform: rotate(90.1deg);\n }\n\n 96.61% {\n transform: rotate(90deg);\n }\n\n 98.31% {\n transform: rotate(89.8deg);\n }\n\n to {\n transform: rotate(90deg);\n }\n}\n\n@keyframes spectrum-fill-mask-2_7c1153 {\n 0% {\n transform: rotate(180deg);\n }\n\n 1.69% {\n transform: rotate(180deg);\n }\n\n 3.39% {\n transform: rotate(180deg);\n }\n\n 5.08% {\n transform: rotate(180deg);\n }\n\n 6.78% {\n transform: rotate(180deg);\n }\n\n 8.47% {\n transform: rotate(180deg);\n }\n\n 10.17% {\n transform: rotate(179.2deg);\n }\n\n 11.86% {\n transform: rotate(164deg);\n }\n\n 13.56% {\n transform: rotate(151.8deg);\n }\n\n 15.25% {\n transform: rotate(140.8deg);\n }\n\n 16.95% {\n transform: rotate(130.3deg);\n }\n\n 18.64% {\n transform: rotate(120.4deg);\n }\n\n 20.34% {\n transform: rotate(110.8deg);\n }\n\n 22.03% {\n transform: rotate(101.6deg);\n }\n\n 23.73% {\n transform: rotate(93.5deg);\n }\n\n 25.42% {\n transform: rotate(85.4deg);\n }\n\n 27.12% {\n transform: rotate(78.1deg);\n }\n\n 28.81% {\n transform: rotate(71.2deg);\n }\n\n 30.51% {\n transform: rotate(89.1deg);\n }\n\n 32.2% {\n transform: rotate(105.5deg);\n }\n\n 33.9% {\n transform: rotate(121.3deg);\n }\n\n 35.59% {\n transform: rotate(135.5deg);\n }\n\n 37.29% {\n transform: rotate(148.4deg);\n }\n\n 38.98% {\n transform: rotate(161deg);\n }\n\n 40.68% {\n transform: rotate(173.5deg);\n }\n\n 42.37% {\n transform: rotate(180deg);\n }\n\n 44.07% {\n transform: rotate(180deg);\n }\n\n 45.76% {\n transform: rotate(180deg);\n }\n\n 47.46% {\n transform: rotate(180deg);\n }\n\n 49.15% {\n transform: rotate(180deg);\n }\n\n 50.85% {\n transform: rotate(180deg);\n }\n\n 52.54% {\n transform: rotate(180deg);\n }\n\n 54.24% {\n transform: rotate(180deg);\n }\n\n 55.93% {\n transform: rotate(180deg);\n }\n\n 57.63% {\n transform: rotate(180deg);\n }\n\n 59.32% {\n transform: rotate(180deg);\n }\n\n 61.02% {\n transform: rotate(180deg);\n }\n\n 62.71% {\n transform: rotate(180deg);\n }\n\n 64.41% {\n transform: rotate(180deg);\n }\n\n 66.1% {\n transform: rotate(180deg);\n }\n\n 67.8% {\n transform: rotate(180deg);\n }\n\n 69.49% {\n transform: rotate(180deg);\n }\n\n 71.19% {\n transform: rotate(180deg);\n }\n\n 72.88% {\n transform: rotate(180deg);\n }\n\n 74.58% {\n transform: rotate(180deg);\n }\n\n 76.27% {\n transform: rotate(180deg);\n }\n\n 77.97% {\n transform: rotate(180deg);\n }\n\n 79.66% {\n transform: rotate(180deg);\n }\n\n 81.36% {\n transform: rotate(180deg);\n }\n\n 83.05% {\n transform: rotate(180deg);\n }\n\n 84.75% {\n transform: rotate(180deg);\n }\n\n 86.44% {\n transform: rotate(180deg);\n }\n\n 88.14% {\n transform: rotate(180deg);\n }\n\n 89.83% {\n transform: rotate(180deg);\n }\n\n 91.53% {\n transform: rotate(180deg);\n }\n\n 93.22% {\n transform: rotate(180deg);\n }\n\n 94.92% {\n transform: rotate(180deg);\n }\n\n 96.61% {\n transform: rotate(180deg);\n }\n\n 98.31% {\n transform: rotate(180deg);\n }\n\n to {\n transform: rotate(180deg);\n }\n}\n\n@keyframes spectrum-fills-rotate_7c1153 {\n 0% {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n}\n\n.spectrum-CircleLoader_7c1153 {\n width: var(--spectrum-loader-circle-medium-width, var(--spectrum-global-dimension-static-size-400));\n height: var(--spectrum-loader-circle-medium-height, var(--spectrum-global-dimension-static-size-400));\n direction: ltr;\n display: inline-block;\n position: relative;\n}\n\n.spectrum-CircleLoader-track_7c1153 {\n box-sizing: border-box;\n width: var(--spectrum-loader-circle-medium-width, var(--spectrum-global-dimension-static-size-400));\n height: var(--spectrum-loader-circle-medium-height, var(--spectrum-global-dimension-static-size-400));\n border-style: solid;\n border-width: var(--spectrum-loader-circle-medium-border-size);\n border-radius: var(--spectrum-loader-circle-medium-width, var(--spectrum-global-dimension-static-size-400));\n}\n\n.spectrum-CircleLoader-fills_7c1153 {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.spectrum-CircleLoader-fill_7c1153 {\n box-sizing: border-box;\n width: var(--spectrum-loader-circle-medium-width, var(--spectrum-global-dimension-static-size-400));\n height: var(--spectrum-loader-circle-medium-height, var(--spectrum-global-dimension-static-size-400));\n border-style: solid;\n border-width: var(--spectrum-loader-circle-medium-border-size);\n border-radius: var(--spectrum-loader-circle-medium-width, var(--spectrum-global-dimension-static-size-400));\n}\n\n.spectrum-CircleLoader-fillMask1_7c1153, .spectrum-CircleLoader-fillMask2_7c1153 {\n width: 50%;\n height: 100%;\n transform-origin: 100%;\n position: absolute;\n overflow: hidden;\n transform: rotate(180deg);\n}\n\n.spectrum-CircleLoader-fillSubMask1_7c1153, .spectrum-CircleLoader-fillSubMask2_7c1153 {\n width: 100%;\n height: 100%;\n transform-origin: 100%;\n overflow: hidden;\n transform: rotate(-180deg);\n}\n\n.spectrum-CircleLoader-fillMask2_7c1153 {\n transform: rotate(0);\n}\n\n.spectrum-CircleLoader--small_7c1153 {\n width: var(--spectrum-loader-circle-small-width, var(--spectrum-global-dimension-static-size-200));\n height: var(--spectrum-loader-circle-small-height, var(--spectrum-global-dimension-static-size-200));\n}\n\n.spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-track_7c1153, .spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-fill_7c1153 {\n width: var(--spectrum-loader-circle-small-width, var(--spectrum-global-dimension-static-size-200));\n height: var(--spectrum-loader-circle-small-height, var(--spectrum-global-dimension-static-size-200));\n border-style: solid;\n border-width: var(--spectrum-loader-circle-small-border-size);\n border-radius: var(--spectrum-loader-circle-small-width, var(--spectrum-global-dimension-static-size-200));\n}\n\n.spectrum-CircleLoader--large_7c1153 {\n width: var(--spectrum-loader-circle-large-width, var(--spectrum-global-dimension-size-800));\n height: var(--spectrum-loader-circle-large-height, var(--spectrum-global-dimension-size-800));\n}\n\n.spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-track_7c1153, .spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-fill_7c1153 {\n width: var(--spectrum-loader-circle-large-width, var(--spectrum-global-dimension-size-800));\n height: var(--spectrum-loader-circle-large-height, var(--spectrum-global-dimension-size-800));\n border-style: solid;\n border-width: var(--spectrum-loader-circle-large-border-size, var(--spectrum-global-dimension-size-50));\n border-radius: var(--spectrum-loader-circle-large-width, var(--spectrum-global-dimension-size-800));\n}\n\n.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fills_7c1153 {\n will-change: transform;\n transform-origin: 50%;\n animation: 1s cubic-bezier(.25, .78, .48, .89) infinite spectrum-fills-rotate_7c1153;\n transform: translateZ(0);\n}\n\n.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask1_7c1153 {\n will-change: transform;\n animation: 1s linear infinite spectrum-fill-mask-1_7c1153;\n transform: translateZ(0);\n}\n\n.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask2_7c1153 {\n will-change: transform;\n animation: 1s linear infinite spectrum-fill-mask-2_7c1153;\n transform: translateZ(0);\n}\n\n.spectrum-CircleLoader-track_7c1153 {\n border-color: var(--spectrum-loader-circle-medium-track-color, var(--spectrum-alias-track-color-default));\n}\n\n.spectrum-CircleLoader-fill_7c1153 {\n border-color: var(--spectrum-accent-color-900);\n}\n\n.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153 {\n border-color: var(--spectrum-loader-circle-medium-over-background-track-color, var(--spectrum-alias-track-color-over-background));\n}\n\n.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153 {\n border-color: var(--spectrum-loader-circle-medium-over-background-track-fill-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153 {\n border-color: var(--spectrum-loader-circle-medium-over-background-track-color, var(--spectrum-alias-track-color-over-background));\n}\n\n.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153 {\n border-color: var(--spectrum-loader-circle-medium-over-background-track-fill-color, var(--spectrum-global-color-static-white));\n}\n\n@media (forced-colors: active) {\n .spectrum-CircleLoader-fill_7c1153 {\n --spectrum-loader-circle-medium-track-fill-color: Highlight;\n }\n}\n\n.react-spectrum-ListView_dd5487 {\n box-sizing: border-box;\n border-color: var(--spectrum-alias-border-color-mid, var(--spectrum-global-color-gray-300));\n border-style: solid;\n border-width: var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10));\n border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n vertical-align: var(--spectrum-table-cell-vertical-alignment, top);\n border-collapse: separate;\n border-spacing: 0;\n background-color: var(--spectrum-global-color-gray-50);\n -webkit-user-select: none;\n user-select: none;\n outline: 0;\n padding: 0;\n position: relative;\n overflow: auto;\n transform: translate(0);\n}\n\n.react-spectrum-ListView_dd5487 .react-spectrum-ListView-row_dd5487 {\n outline: none;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after {\n left: 1px;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after {\n right: 1px;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after {\n left: 1px;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after {\n left: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after {\n right: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after {\n left: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after {\n content: \"\";\n z-index: 3;\n pointer-events: none;\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487 {\n background-color: var(--spectrum-table-row-background-color-selected, var(--spectrum-alias-highlight-selected));\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487, .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487 {\n background-color: var(--spectrum-table-row-background-color-selected-hover, var(--spectrum-alias-highlight-selected-hover));\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487 {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus, var(--spectrum-alias-highlight-selected-hover));\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487:after {\n box-shadow: inset 1px 0 0 0 var(--spectrum-global-color-blue-500), inset -1px 0 0 0 var(--spectrum-global-color-blue-500), inset 0 -1px 0 0 var(--spectrum-global-color-blue-500), inset 0 1px 0 0 var(--spectrum-global-color-blue-500);\n top: -1px;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n top: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):not(.is-next-selected_dd5487):not(.react-spectrum-ListViewItem--isFlushBottom_dd5487):after {\n box-shadow: inset 0 -1px 0 0 var(--spectrum-table-cell-border-color, var(--spectrum-global-color-gray-300));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n border-top-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n border-top-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after {\n border-top-left-radius: 0;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-left-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after {\n border-bottom-left-radius: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487, .react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487 {\n white-space: normal;\n height: auto;\n}\n\n.react-spectrum-ListView-row_dd5487 {\n cursor: default;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before {\n left: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before {\n right: 0;\n}\n\n.react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before {\n content: \"\";\n width: 3px;\n z-index: 4;\n background: var(--spectrum-selectlist-option-focus-indicator-color, var(--spectrum-alias-border-color-focus));\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 {\n background-color: var(--spectrum-alias-background-color-transparent, transparent);\n border-width: 0;\n border-radius: 0;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before {\n border-top-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487 {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487 {\n border-top-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-top-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-top-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before {\n border-bottom-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487 {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487 {\n border-bottom-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487:after, [dir=\"ltr\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-bottom-right-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487 > .react-spectrum-ListViewItem_dd5487:after {\n border-bottom-left-radius: calc(var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin, var(--spectrum-global-dimension-static-size-10)));\n}\n\n.react-spectrum-ListViewItem_dd5487 {\n display: -ms-grid;\n box-sizing: border-box;\n font-size: var(--spectrum-alias-font-size-default, var(--spectrum-global-dimension-font-size-100));\n font-weight: var(--spectrum-global-font-weight-regular, 400);\n line-height: calc(var(--spectrum-alias-font-size-default, var(--spectrum-global-dimension-font-size-100)) * var(--spectrum-alias-body-text-line-height, var(--spectrum-global-font-line-height-medium)) - 1px);\n padding: var(--spectrum-global-dimension-size-85) var(--spectrum-global-dimension-size-160);\n color: var(--spectrum-alias-text-color, var(--spectrum-global-color-gray-800));\n min-height: var(--spectrum-global-dimension-size-500);\n outline: 0;\n display: grid;\n position: relative;\n}\n\n.react-spectrum-ListViewItem_dd5487.is-hovered_dd5487, .react-spectrum-ListViewItem_dd5487.is-focused_dd5487, .react-spectrum-ListViewItem_dd5487.focus-ring_dd5487 {\n background-color: var(--spectrum-table-row-background-color-hover, var(--spectrum-alias-highlight-hover));\n}\n\n.react-spectrum-ListViewItem_dd5487.is-active_dd5487 {\n background-color: var(--spectrum-table-row-background-color-down, var(--spectrum-alias-highlight-active));\n}\n\n.react-spectrum-ListViewItem_dd5487.is-selected_dd5487, .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487, .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487 {\n background-color: var(--spectrum-table-row-background-color-hover, var(--spectrum-alias-highlight-hover));\n}\n\n.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487 {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus, var(--spectrum-alias-highlight-selected-hover));\n}\n\n.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487, .react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-content_dd5487, .react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-description_dd5487 {\n color: var(--spectrum-alias-text-color-disabled, var(--spectrum-global-color-gray-500));\n}\n\n.react-spectrum-ListViewItem_dd5487.has-checkbox_dd5487 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-grid_dd5487 {\n display: -ms-grid;\n -ms-grid-columns: auto auto auto 1fr auto auto auto;\n -ms-grid-rows: 1fr auto;\n grid-template: \"draghandle checkbox thumbnail content actions actionmenu chevron\" 1fr\n \"draghandle checkbox thumbnail description actions actionmenu chevron\"\n / auto auto auto 1fr auto auto auto;\n align-items: center;\n display: grid;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 {\n padding-left: var(--spectrum-global-dimension-size-40);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 {\n padding-right: var(--spectrum-global-dimension-size-40);\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 {\n width: var(--spectrum-global-dimension-size-250);\n padding: var(--spectrum-global-dimension-size-25);\n grid-area: draghandle;\n justify-content: center;\n place-self: stretch stretch;\n display: flex;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487 {\n width: var(--spectrum-global-dimension-size-200);\n border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487.focus-ring_dd5487 {\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n outline: none;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkboxWrapper_dd5487 {\n -ms-grid-column-align: center;\n grid-area: checkbox;\n place-items: center;\n transition-duration: .16s;\n display: flex;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 {\n min-height: 0;\n height: 100%;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 > span {\n margin: 0;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487 {\n padding-right: var(--spectrum-global-dimension-size-100);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487 {\n padding-left: var(--spectrum-global-dimension-size-100);\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487 {\n -ms-grid-column-align: center;\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n grid-area: thumbnail;\n justify-content: center;\n place-items: center;\n display: flex;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487 > img {\n width: unset;\n height: 100%;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487, .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487 {\n white-space: nowrap;\n text-overflow: ellipsis;\n height: calc(var(--spectrum-alias-font-size-default, var(--spectrum-global-dimension-font-size-100)) * var(--spectrum-alias-body-text-line-height, var(--spectrum-global-font-line-height-medium)) - 1px);\n flex-grow: 1;\n overflow: hidden;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487 {\n color: var(--spectrum-global-color-gray-800);\n font-size: var(--spectrum-global-dimension-font-size-100);\n grid-area: content;\n}\n\n.react-spectrum-ListViewItem_dd5487:not(.react-spectrum-ListView--hasDescription_dd5487) .react-spectrum-ListViewItem-content_dd5487 {\n grid-area: content / description;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487 {\n color: var(--spectrum-global-color-gray-700);\n font-size: var(--spectrum-global-dimension-font-size-75);\n grid-area: description;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actions_dd5487 {\n flex-grow: 0;\n flex-shrink: 0;\n grid-area: actions;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487 {\n grid-area: actionmenu;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487 {\n padding-left: var(--spectrum-global-dimension-size-75);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487 {\n padding-right: var(--spectrum-global-dimension-size-75);\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487 {\n transition: color var(--spectrum-global-animation-duration-100, .13s);\n grid-area: chevron;\n display: none;\n}\n\n.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487.is-disabled_dd5487 {\n color: var(--spectrum-alias-icon-color-disabled, var(--spectrum-global-color-gray-400));\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 {\n width: var(--spectrum-global-dimension-size-2400);\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover, var(--spectrum-global-color-blue-400));\n border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n background-color: var(--spectrum-global-color-gray-50);\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--compact_dd5487 {\n padding-top: var(--spectrum-global-dimension-size-50);\n padding-bottom: var(--spectrum-global-dimension-size-50);\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--spacious_dd5487 {\n padding-top: var(--spectrum-global-dimension-size-100);\n padding-bottom: var(--spectrum-global-dimension-size-100);\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-grid_dd5487 {\n -ms-grid-columns: auto auto 1fr auto;\n grid-template-columns: auto auto 1fr auto;\n grid-template-areas: \"thumbnail content . badge\"\n \"thumbnail description . badge\";\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-badge_dd5487 {\n color: #fff;\n background: var(--spectrum-global-color-blue-400);\n border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n grid-area: badge;\n padding: 0 8px;\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487 {\n position: relative;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after {\n left: 4px;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after {\n right: 4px;\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after {\n content: \"\";\n z-index: -1;\n width: 100%;\n height: 100%;\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover, var(--spectrum-global-color-blue-400));\n border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n background-color: var(--spectrum-global-color-gray-50);\n display: block;\n position: absolute;\n top: 4px;\n}\n\n.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actions_dd5487, .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487 {\n display: none;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-top-left-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-top-right-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-top-left-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-left-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-right-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-left-radius: var(--spectrum-listview-item-start-end-border-radius);\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-top-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-top-left-radius: 0;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-left-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487, [dir=\"ltr\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-right-radius: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487 {\n border-bottom-left-radius: 0;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487 {\n visibility: hidden;\n display: inline-block;\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator--hasChildItems_dd5487 {\n visibility: visible;\n}\n\n.react-spectrum-ListView--compact_dd5487 .react-spectrum-ListViewItem_dd5487 {\n padding-top: var(--spectrum-global-dimension-size-50);\n padding-bottom: var(--spectrum-global-dimension-size-50);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious_dd5487 .react-spectrum-ListViewItem_dd5487 {\n padding-top: var(--spectrum-global-dimension-size-100);\n padding-bottom: var(--spectrum-global-dimension-size-100);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 {\n padding-left: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 {\n padding-right: 0;\n}\n\n[dir=\"ltr\"] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input {\n left: 0;\n}\n\n[dir=\"rtl\"] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input {\n right: 0;\n}\n\n.react-spectrum-ListViewItem--dropTarget_dd5487 {\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus)), inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus)), inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus)), inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487 {\n border-color: var(--spectrum-global-color-blue-500);\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487.react-spectrum-ListView--quiet_dd5487 {\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus)), 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.react-spectrum-ListView-centeredWrapper_dd5487 {\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n display: flex;\n}\n\n.react-spectrum-ListView-centeredWrapper_dd5487.react-spectrum-ListView-centeredWrapper--loadingMore_dd5487 {\n padding-top: var(--spectrum-global-dimension-size-50);\n}\n\n[dir=\"ltr\"] .react-spectrum-ListViewInsertionIndicator_dd5487 {\n left: var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150));\n}\n\n[dir=\"rtl\"] .react-spectrum-ListViewInsertionIndicator_dd5487 {\n right: var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150));\n}\n\n.react-spectrum-ListViewInsertionIndicator_dd5487 {\n width: calc(100% - 2 * var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150)));\n outline: none;\n position: absolute;\n}\n\n.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487 {\n background: var(--spectrum-dropindicator-border-color, var(--spectrum-global-color-blue-400));\n border-bottom: 2px solid var(--spectrum-dropindicator-border-color, var(--spectrum-global-color-blue-400));\n}\n\n.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before {\n left: calc(var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150)) * -1);\n}\n\n.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after {\n right: calc(var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150)) * -1);\n}\n\n.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before, .react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after {\n content: \"\";\n top: calc(var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150)) * -1 / 2 + var(--spectrum-dropindicator-border-size, var(--spectrum-alias-border-size-thick)) / 2);\n width: var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150));\n height: var(--spectrum-dropindicator-circle-size, var(--spectrum-global-dimension-static-size-150));\n border: var(--spectrum-dropindicator-border-size, var(--spectrum-alias-border-size-thick)) solid;\n box-sizing: border-box;\n border-color: var(--spectrum-dropindicator-circle-border-color, var(--spectrum-global-color-blue-400));\n background-color: var(--spectrum-global-color-gray-50);\n z-index: 5;\n border-radius: 50%;\n position: absolute;\n}\n\n.react-spectrum-ListViewItem-checkbox--enter_dd5487 {\n opacity: .01;\n max-width: 0;\n}\n\n.react-spectrum-ListViewItem-checkbox--enterActive_dd5487, .react-spectrum-ListViewItem-checkbox--exit_dd5487 {\n opacity: 1;\n max-width: 80px;\n}\n\n.react-spectrum-ListViewItem-checkbox--exitActive_dd5487 {\n opacity: .01;\n max-width: 0;\n}\n\n.react-spectrum-ListView_dd5487.focus-ring_dd5487 {\n border-color: var(--spectrum-global-color-blue-500);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.spectrum-Image-img_fdc794 {\n height: 100%;\n width: 100%;\n max-width: 100%;\n display: block;\n}\n\n.spectrum--darkest_256eeb {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1;\n --spectrum-gray-50: #000;\n --spectrum-gray-75: #0e0e0e;\n --spectrum-gray-100: #1d1d1d;\n --spectrum-gray-200: #303030;\n --spectrum-gray-300: #4b4b4b;\n --spectrum-gray-400: #6a6a6a;\n --spectrum-gray-500: #8d8d8d;\n --spectrum-gray-600: #b0b0b0;\n --spectrum-gray-700: #d0d0d0;\n --spectrum-gray-800: #ebebeb;\n --spectrum-gray-900: #fff;\n --spectrum-red-100: #570000;\n --spectrum-red-200: #6e0000;\n --spectrum-red-300: #8a0000;\n --spectrum-red-400: #a70000;\n --spectrum-red-500: #c40706;\n --spectrum-red-600: #dd2118;\n --spectrum-red-700: #ee4331;\n --spectrum-red-800: #f9634c;\n --spectrum-red-900: #ff816b;\n --spectrum-red-1000: #ff9e8c;\n --spectrum-red-1100: #ffb7a9;\n --spectrum-red-1200: #ffcdc3;\n --spectrum-red-1300: #ffdfd9;\n --spectrum-red-1400: #ffedea;\n --spectrum-orange-100: #481801;\n --spectrum-orange-200: #5c2000;\n --spectrum-orange-300: #732b00;\n --spectrum-orange-400: #8a3700;\n --spectrum-orange-500: #a24400;\n --spectrum-orange-600: #ba5200;\n --spectrum-orange-700: #d26200;\n --spectrum-orange-800: #e87400;\n --spectrum-orange-900: #f98917;\n --spectrum-orange-1000: #ffa23b;\n --spectrum-orange-1100: #ffbc66;\n --spectrum-orange-1200: #fdd291;\n --spectrum-orange-1300: #ffe2b5;\n --spectrum-orange-1400: #ffefd5;\n --spectrum-yellow-100: #352400;\n --spectrum-yellow-200: #442f00;\n --spectrum-yellow-300: #563e00;\n --spectrum-yellow-400: #674d00;\n --spectrum-yellow-500: #7a5c00;\n --spectrum-yellow-600: #8d6c00;\n --spectrum-yellow-700: #a17e00;\n --spectrum-yellow-800: #b49000;\n --spectrum-yellow-900: #c7a200;\n --spectrum-yellow-1000: #d8b500;\n --spectrum-yellow-1100: #e9c700;\n --spectrum-yellow-1200: #f7d804;\n --spectrum-yellow-1300: #f9e961;\n --spectrum-yellow-1400: #fcf3aa;\n --spectrum-chartreuse-100: #202b00;\n --spectrum-chartreuse-200: #2a3800;\n --spectrum-chartreuse-300: #364800;\n --spectrum-chartreuse-400: #425800;\n --spectrum-chartreuse-500: #4f6900;\n --spectrum-chartreuse-600: #5d7b00;\n --spectrum-chartreuse-700: #6b8e00;\n --spectrum-chartreuse-800: #7aa100;\n --spectrum-chartreuse-900: #8ab403;\n --spectrum-chartreuse-1000: #9ac60b;\n --spectrum-chartreuse-1100: #aad816;\n --spectrum-chartreuse-1200: #bbe829;\n --spectrum-chartreuse-1300: #cdf648;\n --spectrum-chartreuse-1400: #e1fd84;\n --spectrum-celery-100: #002f07;\n --spectrum-celery-200: #003d09;\n --spectrum-celery-300: #004d0c;\n --spectrum-celery-400: #005f0f;\n --spectrum-celery-500: #00710f;\n --spectrum-celery-600: #00840f;\n --spectrum-celery-700: #009714;\n --spectrum-celery-800: #0dab25;\n --spectrum-celery-900: #2dbf3a;\n --spectrum-celery-1000: #50d052;\n --spectrum-celery-1100: #73e06b;\n --spectrum-celery-1200: #93ed83;\n --spectrum-celery-1300: #b4f7a2;\n --spectrum-celery-1400: #d5fcca;\n --spectrum-green-100: #0a2c1c;\n --spectrum-green-200: #073b24;\n --spectrum-green-300: #004c2e;\n --spectrum-green-400: #005d39;\n --spectrum-green-500: #006f45;\n --spectrum-green-600: #008252;\n --spectrum-green-700: #009562;\n --spectrum-green-800: #1ca872;\n --spectrum-green-900: #34bb84;\n --spectrum-green-1000: #4bcd95;\n --spectrum-green-1100: #67dea8;\n --spectrum-green-1200: #89ecbc;\n --spectrum-green-1300: #b1f4d1;\n --spectrum-green-1400: #d6f9e4;\n --spectrum-seafoam-100: #122b2a;\n --spectrum-seafoam-200: #133937;\n --spectrum-seafoam-300: #104946;\n --spectrum-seafoam-400: #035b58;\n --spectrum-seafoam-500: #006c68;\n --spectrum-seafoam-600: #007f79;\n --spectrum-seafoam-700: #00928c;\n --spectrum-seafoam-800: #00a59f;\n --spectrum-seafoam-900: #1ab9b2;\n --spectrum-seafoam-1000: #42cac3;\n --spectrum-seafoam-1100: #66dad3;\n --spectrum-seafoam-1200: #8be8e1;\n --spectrum-seafoam-1300: #b3f2ed;\n --spectrum-seafoam-1400: #d7f8f4;\n --spectrum-cyan-100: #002944;\n --spectrum-cyan-200: #003658;\n --spectrum-cyan-300: #00456c;\n --spectrum-cyan-400: #005680;\n --spectrum-cyan-500: #006793;\n --spectrum-cyan-600: #0079a7;\n --spectrum-cyan-700: #008cba;\n --spectrum-cyan-800: #04a0cd;\n --spectrum-cyan-900: #17b4dd;\n --spectrum-cyan-1000: #39c7ea;\n --spectrum-cyan-1100: #60d8f3;\n --spectrum-cyan-1200: #86e6fa;\n --spectrum-cyan-1300: #aaf2ff;\n --spectrum-cyan-1400: #cef9ff;\n --spectrum-blue-100: #002651;\n --spectrum-blue-200: #00326a;\n --spectrum-blue-300: #004087;\n --spectrum-blue-400: #004ea6;\n --spectrum-blue-500: #005cc8;\n --spectrum-blue-600: #066ce7;\n --spectrum-blue-700: #1d80f5;\n --spectrum-blue-800: #4096f3;\n --spectrum-blue-900: #5eaaf7;\n --spectrum-blue-1000: #7cbdfa;\n --spectrum-blue-1100: #98cefd;\n --spectrum-blue-1200: #b3defe;\n --spectrum-blue-1300: #ceeaff;\n --spectrum-blue-1400: #e3f3ff;\n --spectrum-indigo-100: #1a1d61;\n --spectrum-indigo-200: #23277d;\n --spectrum-indigo-300: #2e329e;\n --spectrum-indigo-400: #3a3fbd;\n --spectrum-indigo-500: #494ed8;\n --spectrum-indigo-600: #5a60eb;\n --spectrum-indigo-700: #6e73f6;\n --spectrum-indigo-800: #8488fd;\n --spectrum-indigo-900: #999dff;\n --spectrum-indigo-1000: #aeb1ff;\n --spectrum-indigo-1100: #c2c4ff;\n --spectrum-indigo-1200: #d4d5ff;\n --spectrum-indigo-1300: #e3e4ff;\n --spectrum-indigo-1400: #f0f0ff;\n --spectrum-purple-100: #321068;\n --spectrum-purple-200: #430d8c;\n --spectrum-purple-300: #5610ad;\n --spectrum-purple-400: #6a1dc8;\n --spectrum-purple-500: #7e31de;\n --spectrum-purple-600: #9146ec;\n --spectrum-purple-700: #a25ef6;\n --spectrum-purple-800: #b277fa;\n --spectrum-purple-900: #c08ffc;\n --spectrum-purple-1000: #cea6fd;\n --spectrum-purple-1100: #dbbcfe;\n --spectrum-purple-1200: #e6cfff;\n --spectrum-purple-1300: #f0e0ff;\n --spectrum-purple-1400: #f8edff;\n --spectrum-fuchsia-100: #460e44;\n --spectrum-fuchsia-200: #5d095c;\n --spectrum-fuchsia-300: #780078;\n --spectrum-fuchsia-400: #920093;\n --spectrum-fuchsia-500: #a913aa;\n --spectrum-fuchsia-600: #bf2bbf;\n --spectrum-fuchsia-700: #d341d5;\n --spectrum-fuchsia-800: #e45be5;\n --spectrum-fuchsia-900: #ef78ee;\n --spectrum-fuchsia-1000: #f695f3;\n --spectrum-fuchsia-1100: #fbaff6;\n --spectrum-fuchsia-1200: #fec7f8;\n --spectrum-fuchsia-1300: #ffdcfa;\n --spectrum-fuchsia-1400: #ffebfc;\n --spectrum-magenta-100: #530329;\n --spectrum-magenta-200: #6a0034;\n --spectrum-magenta-300: #850041;\n --spectrum-magenta-400: #a1004e;\n --spectrum-magenta-500: #ba165d;\n --spectrum-magenta-600: #d12b72;\n --spectrum-magenta-700: #e34589;\n --spectrum-magenta-800: #f1619c;\n --spectrum-magenta-900: #fc7cad;\n --spectrum-magenta-1000: #ff98bf;\n --spectrum-magenta-1100: #ffb3cf;\n --spectrum-magenta-1200: #ffcadd;\n --spectrum-magenta-1300: #ffdde9;\n --spectrum-magenta-1400: #ffecf3;\n --spectrum-legacy-color-celery-400: var(--spectrum-celery-800);\n --spectrum-legacy-color-celery-500: var(--spectrum-celery-900);\n --spectrum-legacy-color-celery-600: var(--spectrum-celery-1000);\n --spectrum-legacy-color-celery-700: var(--spectrum-celery-1100);\n --spectrum-legacy-color-chartreuse-400: var(--spectrum-chartreuse-900);\n --spectrum-legacy-color-chartreuse-500: var(--spectrum-chartreuse-1000);\n --spectrum-legacy-color-chartreuse-600: var(--spectrum-chartreuse-1100);\n --spectrum-legacy-color-chartreuse-700: var(--spectrum-chartreuse-1200);\n --spectrum-legacy-color-yellow-400: var(--spectrum-yellow-1000);\n --spectrum-legacy-color-yellow-500: var(--spectrum-yellow-1100);\n --spectrum-legacy-color-yellow-600: var(--spectrum-yellow-1200);\n --spectrum-legacy-color-yellow-700: var(--spectrum-yellow-1300);\n --spectrum-legacy-color-magenta-400: var(--spectrum-magenta-600);\n --spectrum-legacy-color-magenta-500: var(--spectrum-magenta-700);\n --spectrum-legacy-color-magenta-600: var(--spectrum-magenta-800);\n --spectrum-legacy-color-magenta-700: var(--spectrum-magenta-900);\n --spectrum-legacy-color-fuchsia-400: var(--spectrum-fuchsia-600);\n --spectrum-legacy-color-fuchsia-500: var(--spectrum-fuchsia-700);\n --spectrum-legacy-color-fuchsia-600: var(--spectrum-fuchsia-800);\n --spectrum-legacy-color-fuchsia-700: var(--spectrum-fuchsia-900);\n --spectrum-legacy-color-purple-400: var(--spectrum-purple-600);\n --spectrum-legacy-color-purple-500: var(--spectrum-purple-700);\n --spectrum-legacy-color-purple-600: var(--spectrum-purple-800);\n --spectrum-legacy-color-purple-700: var(--spectrum-purple-900);\n --spectrum-legacy-color-indigo-400: var(--spectrum-indigo-600);\n --spectrum-legacy-color-indigo-500: var(--spectrum-indigo-700);\n --spectrum-legacy-color-indigo-600: var(--spectrum-indigo-800);\n --spectrum-legacy-color-indigo-700: var(--spectrum-indigo-900);\n --spectrum-legacy-color-red-400: var(--spectrum-red-600);\n --spectrum-legacy-color-red-500: var(--spectrum-red-700);\n --spectrum-legacy-color-red-600: var(--spectrum-red-800);\n --spectrum-legacy-color-red-700: var(--spectrum-red-900);\n --spectrum-legacy-color-orange-400: var(--spectrum-orange-800);\n --spectrum-legacy-color-orange-500: var(--spectrum-orange-900);\n --spectrum-legacy-color-orange-600: var(--spectrum-orange-1000);\n --spectrum-legacy-color-orange-700: var(--spectrum-orange-1100);\n --spectrum-legacy-color-green-400: var(--spectrum-green-700);\n --spectrum-legacy-color-green-500: var(--spectrum-green-800);\n --spectrum-legacy-color-green-600: var(--spectrum-green-900);\n --spectrum-legacy-color-green-700: var(--spectrum-green-1000);\n --spectrum-legacy-color-blue-400: var(--spectrum-blue-700);\n --spectrum-legacy-color-blue-500: var(--spectrum-blue-800);\n --spectrum-legacy-color-blue-600: var(--spectrum-blue-900);\n --spectrum-legacy-color-blue-700: var(--spectrum-blue-1000);\n --spectrum-alias-background-color-modal-overlay: #0009;\n --spectrum-alias-dropshadow-color: #000c;\n --spectrum-alias-background-color-hover-overlay: #ffffff14;\n --spectrum-alias-highlight-hover: #ffffff14;\n --spectrum-alias-highlight-active: #efefef26;\n --spectrum-alias-highlight-selected: #4096f333;\n --spectrum-alias-highlight-selected-hover: #4096f34d;\n --spectrum-alias-highlight-invalid: #dd211826;\n --spectrum-alias-text-highlight-color: #4096f34d;\n --spectrum-alias-background-color-quickactions: #1d1d1de6;\n --spectrum-alias-radial-reaction-color-default: #ebebeb99;\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-50);\n --spectrum-colorarea-border-color: #efefef1a;\n --spectrum-colorarea-border-color-hover: #efefef1a;\n --spectrum-colorarea-border-color-down: #efefef1a;\n --spectrum-colorarea-border-color-key-focus: #efefef1a;\n --spectrum-colorslider-border-color: #efefef1a;\n --spectrum-colorslider-border-color-hover: #efefef1a;\n --spectrum-colorslider-border-color-down: #efefef1a;\n --spectrum-colorslider-border-color-key-focus: #efefef1a;\n --spectrum-colorslider-vertical-border-color: #efefef1a;\n --spectrum-colorslider-vertical-border-color-hover: #efefef1a;\n --spectrum-colorslider-vertical-border-color-down: #efefef1a;\n --spectrum-colorslider-vertical-border-color-key-focus: #efefef1a;\n --spectrum-colorwheel-border-color: #efefef1a;\n --spectrum-colorwheel-border-color-hover: #efefef1a;\n --spectrum-colorwheel-border-color-down: #efefef1a;\n --spectrum-colorwheel-border-color-key-focus: #efefef1a;\n --spectrum-miller-column-item-background-color-selected: #2680eb1a;\n --spectrum-miller-column-item-background-color-selected-hover: #2680eb33;\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: #ebebeb05;\n --spectrum-well-border-color: #efefef0d;\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-100);\n --react-spectrum-datepicker-placeholder-color: var(--spectrum-global-color-gray-600);\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-600);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-500);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-400);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-500);\n --spectrum-neutral-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-300);\n --spectrum-negative-background-color-default: var(--spectrum-red-600);\n --spectrum-negative-background-color-hover: var(--spectrum-red-500);\n --spectrum-negative-background-color-down: var(--spectrum-red-400);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-500);\n --spectrum-positive-background-color-default: var(--spectrum-green-600);\n --spectrum-positive-background-color-hover: var(--spectrum-green-500);\n --spectrum-positive-background-color-down: var(--spectrum-green-400);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-500);\n --spectrum-informative-background-color-default: var(--spectrum-blue-600);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-500);\n --spectrum-informative-background-color-down: var(--spectrum-blue-400);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-500);\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-700);\n --spectrum-orange-background-color-default: var(--spectrum-orange-800);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-1000);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-900);\n --spectrum-celery-background-color-default: var(--spectrum-celery-800);\n --spectrum-green-background-color-default: var(--spectrum-green-700);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-700);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-700);\n --spectrum-blue-background-color-default: var(--spectrum-blue-700);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-700);\n --spectrum-purple-background-color-default: var(--spectrum-purple-700);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-700);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-700);\n --spectrum-negative-visual-color: var(--spectrum-red-700);\n --spectrum-positive-visual-color: var(--spectrum-green-800);\n --spectrum-notice-visual-color: var(--spectrum-orange-900);\n --spectrum-informative-visual-color: var(--spectrum-blue-900);\n --spectrum-gray-visual-color: var(--spectrum-gray-600);\n --spectrum-red-visual-color: var(--spectrum-red-700);\n --spectrum-orange-visual-color: var(--spectrum-orange-900);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-1100);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-900);\n --spectrum-celery-visual-color: var(--spectrum-celery-800);\n --spectrum-green-visual-color: var(--spectrum-green-800);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-800);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-900);\n --spectrum-blue-visual-color: var(--spectrum-blue-900);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-900);\n --spectrum-purple-visual-color: var(--spectrum-purple-900);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-900);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-900);\n}\n\n.spectrum--medium_4b172c {\n --spectrum-global-dimension-scale-factor: 1;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 3px;\n --spectrum-global-dimension-size-50: 4px;\n --spectrum-global-dimension-size-65: 5px;\n --spectrum-global-dimension-size-75: 6px;\n --spectrum-global-dimension-size-85: 7px;\n --spectrum-global-dimension-size-100: 8px;\n --spectrum-global-dimension-size-115: 9px;\n --spectrum-global-dimension-size-125: 10px;\n --spectrum-global-dimension-size-130: 11px;\n --spectrum-global-dimension-size-150: 12px;\n --spectrum-global-dimension-size-160: 13px;\n --spectrum-global-dimension-size-175: 14px;\n --spectrum-global-dimension-size-200: 16px;\n --spectrum-global-dimension-size-225: 18px;\n --spectrum-global-dimension-size-250: 20px;\n --spectrum-global-dimension-size-275: 22px;\n --spectrum-global-dimension-size-300: 24px;\n --spectrum-global-dimension-size-325: 26px;\n --spectrum-global-dimension-size-350: 28px;\n --spectrum-global-dimension-size-400: 32px;\n --spectrum-global-dimension-size-450: 36px;\n --spectrum-global-dimension-size-500: 40px;\n --spectrum-global-dimension-size-550: 44px;\n --spectrum-global-dimension-size-600: 48px;\n --spectrum-global-dimension-size-675: 54px;\n --spectrum-global-dimension-size-700: 56px;\n --spectrum-global-dimension-size-800: 64px;\n --spectrum-global-dimension-size-900: 72px;\n --spectrum-global-dimension-size-1000: 80px;\n --spectrum-global-dimension-size-1200: 96px;\n --spectrum-global-dimension-size-1250: 100px;\n --spectrum-global-dimension-size-1600: 128px;\n --spectrum-global-dimension-size-1700: 136px;\n --spectrum-global-dimension-size-2000: 160px;\n --spectrum-global-dimension-size-2400: 192px;\n --spectrum-global-dimension-size-3000: 240px;\n --spectrum-global-dimension-size-3400: 272px;\n --spectrum-global-dimension-size-3600: 288px;\n --spectrum-global-dimension-size-4600: 368px;\n --spectrum-global-dimension-size-5000: 400px;\n --spectrum-global-dimension-size-6000: 480px;\n --spectrum-global-dimension-font-size-25: 10px;\n --spectrum-global-dimension-font-size-50: 11px;\n --spectrum-global-dimension-font-size-75: 12px;\n --spectrum-global-dimension-font-size-100: 14px;\n --spectrum-global-dimension-font-size-150: 15px;\n --spectrum-global-dimension-font-size-200: 16px;\n --spectrum-global-dimension-font-size-300: 18px;\n --spectrum-global-dimension-font-size-400: 20px;\n --spectrum-global-dimension-font-size-500: 22px;\n --spectrum-global-dimension-font-size-600: 25px;\n --spectrum-global-dimension-font-size-700: 28px;\n --spectrum-global-dimension-font-size-800: 32px;\n --spectrum-global-dimension-font-size-900: 36px;\n --spectrum-global-dimension-font-size-1000: 40px;\n --spectrum-global-dimension-font-size-1100: 45px;\n --spectrum-global-dimension-font-size-1200: 50px;\n --spectrum-global-dimension-font-size-1300: 60px;\n --spectrum-alias-avatar-size-100: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-avatar-size-400: var(--spectrum-global-dimension-size-350);\n --spectrum-alias-avatar-size-600: var(--spectrum-global-dimension-size-450);\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-barloader-large-border-radius: 3px;\n --spectrum-barloader-large-indeterminate-border-radius: 3px;\n --spectrum-barloader-large-over-background-border-radius: 3px;\n --spectrum-barloader-small-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-barloader-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-barloader-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-cta-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-circleloader-medium-border-size: 3px;\n --spectrum-circleloader-medium-over-background-border-size: 3px;\n --spectrum-circleloader-small-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-circleloader-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-150);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-size-2400);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-150);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-6000, 480px);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-6000, 480px);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-6000, 480px);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-6000, 480px);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-6000, 480px);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-icon-arrow-down-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-arrow-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-medium-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-medium-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-down-medium-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-left-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-right-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-right-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-cross-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-cross-large-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-dash-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-dash-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-left-width: 9px;\n --spectrum-icon-skip-left-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-right-width: 9px;\n --spectrum-icon-skip-right-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-triplegripper-width: var(--spectrum-global-dimension-size-125);\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65, 5px);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65, 5px);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65, 5px);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65, 5px);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-selectlist-option-padding-height: 7px;\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125, 10px);\n --spectrum-loader-bar-large-border-radius: 3px;\n --spectrum-loader-bar-large-over-background-border-radius: 3px;\n --spectrum-loader-bar-small-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-loader-bar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-loader-circle-medium-border-size: 3px;\n --spectrum-loader-circle-medium-over-background-border-size: 3px;\n --spectrum-loader-circle-small-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-loader-circle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-meter-large-border-radius: 3px;\n --spectrum-meter-small-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-pagination-page-button-line-height: 26px;\n --spectrum-overlay-positive-transform-distance: 6px;\n --spectrum-overlay-negative-transform-distance: -6px;\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-progressbar-large-border-radius: 3px;\n --spectrum-progressbar-large-indeterminate-border-radius: 3px;\n --spectrum-progressbar-large-over-background-border-radius: 3px;\n --spectrum-progressbar-small-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progressbar-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progressbar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progresscircle-medium-border-size: 3px;\n --spectrum-progresscircle-medium-over-background-border-size: 3px;\n --spectrum-progresscircle-small-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progresscircle-small-indeterminate-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progresscircle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-progresscircle-medium-indeterminate-border-size: 3px;\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-margin-bottom: 0px;\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-emphasized-margin-bottom: 0px;\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-radio-quiet-margin-bottom: 0px;\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-rating-icon-width: 24px;\n --spectrum-rating-indicator-width: 16px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-rating-emphasized-icon-width: 24px;\n --spectrum-rating-emphasized-indicator-width: 16px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-rating-quiet-icon-width: 24px;\n --spectrum-rating-quiet-indicator-width: 16px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-sidenav-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130, 11px);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-track-width: 26px;\n --spectrum-switch-handle-border-radius: 7px;\n --spectrum-switch-handle-transform-x-ltr: 12px;\n --spectrum-switch-handle-transform-x-rtl: -12px;\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130, 11px);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-emphasized-track-width: 26px;\n --spectrum-switch-emphasized-handle-border-radius: 7px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130, 11px);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115, 9px);\n --spectrum-switch-quiet-track-width: 26px;\n --spectrum-switch-quiet-handle-border-radius: 7px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-tabs-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-margin-left: -8px;\n --spectrum-tabs-compact-margin-right: -8px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-focus-ring-border-radius: 5px;\n --spectrum-tabs-margin-left: -8px;\n --spectrum-tabs-margin-right: -8px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-emphasized-margin-left: -8px;\n --spectrum-tabs-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-margin-left: -8px;\n --spectrum-tabs-quiet-margin-right: -8px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-margin-left: -8px;\n --spectrum-tabs-quiet-compact-margin-right: -8px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-vertical-focus-ring-border-radius: 5px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-tooltip-padding-bottom: 5px;\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n --spectrum-tooltip-info-padding-bottom: 5px;\n --spectrum-tooltip-info-content-max-width: 101px;\n --spectrum-tooltip-negative-padding-bottom: 5px;\n --spectrum-tooltip-negative-content-max-width: 101px;\n --spectrum-tooltip-positive-padding-bottom: 5px;\n --spectrum-tooltip-positive-content-max-width: 101px;\n}\n\n.spectrum--light_a40724 {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1;\n --spectrum-gray-50: #fff;\n --spectrum-gray-75: #fdfdfd;\n --spectrum-gray-100: #f8f8f8;\n --spectrum-gray-200: #e6e6e6;\n --spectrum-gray-300: #d5d5d5;\n --spectrum-gray-400: #b1b1b1;\n --spectrum-gray-500: #909090;\n --spectrum-gray-600: #6d6d6d;\n --spectrum-gray-700: #464646;\n --spectrum-gray-800: #222;\n --spectrum-gray-900: #000;\n --spectrum-red-100: #ffebe7;\n --spectrum-red-200: #ffddd6;\n --spectrum-red-300: #ffcdc3;\n --spectrum-red-400: #ffb7a9;\n --spectrum-red-500: #ff9b88;\n --spectrum-red-600: #ff7c65;\n --spectrum-red-700: #f75c46;\n --spectrum-red-800: #ea3829;\n --spectrum-red-900: #d31510;\n --spectrum-red-1000: #b40000;\n --spectrum-red-1100: #930000;\n --spectrum-red-1200: #740000;\n --spectrum-red-1300: #590000;\n --spectrum-red-1400: #430000;\n --spectrum-orange-100: #ffeccc;\n --spectrum-orange-200: #ffdfad;\n --spectrum-orange-300: #fdd291;\n --spectrum-orange-400: #ffbb63;\n --spectrum-orange-500: #ffa037;\n --spectrum-orange-600: #f68511;\n --spectrum-orange-700: #e46f00;\n --spectrum-orange-800: #cb5d00;\n --spectrum-orange-900: #b14c00;\n --spectrum-orange-1000: #953d00;\n --spectrum-orange-1100: #7a2f00;\n --spectrum-orange-1200: #612300;\n --spectrum-orange-1300: #491901;\n --spectrum-orange-1400: #351201;\n --spectrum-yellow-100: #fbf198;\n --spectrum-yellow-200: #f8e750;\n --spectrum-yellow-300: #f8d904;\n --spectrum-yellow-400: #e8c600;\n --spectrum-yellow-500: #d7b300;\n --spectrum-yellow-600: #c49f00;\n --spectrum-yellow-700: #b08c00;\n --spectrum-yellow-800: #9b7800;\n --spectrum-yellow-900: #856600;\n --spectrum-yellow-1000: #705300;\n --spectrum-yellow-1100: #5b4300;\n --spectrum-yellow-1200: #483300;\n --spectrum-yellow-1300: #362500;\n --spectrum-yellow-1400: #281a00;\n --spectrum-chartreuse-100: #dbfc6e;\n --spectrum-chartreuse-200: #cbf443;\n --spectrum-chartreuse-300: #bce92a;\n --spectrum-chartreuse-400: #aad816;\n --spectrum-chartreuse-500: #98c50a;\n --spectrum-chartreuse-600: #87b103;\n --spectrum-chartreuse-700: #769c00;\n --spectrum-chartreuse-800: #678800;\n --spectrum-chartreuse-900: #577400;\n --spectrum-chartreuse-1000: #486000;\n --spectrum-chartreuse-1100: #3a4d00;\n --spectrum-chartreuse-1200: #2c3b00;\n --spectrum-chartreuse-1300: #212c00;\n --spectrum-chartreuse-1400: #181f00;\n --spectrum-celery-100: #cdfcbf;\n --spectrum-celery-200: #aef69d;\n --spectrum-celery-300: #96ee85;\n --spectrum-celery-400: #72e06a;\n --spectrum-celery-500: #4ecf50;\n --spectrum-celery-600: #27bb36;\n --spectrum-celery-700: #07a721;\n --spectrum-celery-800: #009112;\n --spectrum-celery-900: #007c0f;\n --spectrum-celery-1000: #00670f;\n --spectrum-celery-1100: #00530d;\n --spectrum-celery-1200: #00400a;\n --spectrum-celery-1300: #003007;\n --spectrum-celery-1400: #002205;\n --spectrum-green-100: #cef8e0;\n --spectrum-green-200: #adf4ce;\n --spectrum-green-300: #89ecbc;\n --spectrum-green-400: #67dea8;\n --spectrum-green-500: #49cc93;\n --spectrum-green-600: #2fb880;\n --spectrum-green-700: #15a46e;\n --spectrum-green-800: #008f5d;\n --spectrum-green-900: #007a4d;\n --spectrum-green-1000: #00653e;\n --spectrum-green-1100: #005132;\n --spectrum-green-1200: #053f27;\n --spectrum-green-1300: #0a2e1d;\n --spectrum-green-1400: #0a2015;\n --spectrum-seafoam-100: #cef7f3;\n --spectrum-seafoam-200: #aaf1ea;\n --spectrum-seafoam-300: #8ce9e2;\n --spectrum-seafoam-400: #65dad2;\n --spectrum-seafoam-500: #3fc9c1;\n --spectrum-seafoam-600: #0fb5ae;\n --spectrum-seafoam-700: #00a19a;\n --spectrum-seafoam-800: #008c87;\n --spectrum-seafoam-900: #007772;\n --spectrum-seafoam-1000: #00635f;\n --spectrum-seafoam-1100: #0c4f4c;\n --spectrum-seafoam-1200: #123c3a;\n --spectrum-seafoam-1300: #122c2b;\n --spectrum-seafoam-1400: #0f1f1e;\n --spectrum-cyan-100: #c5f8ff;\n --spectrum-cyan-200: #a4f0ff;\n --spectrum-cyan-300: #88e7fa;\n --spectrum-cyan-400: #60d8f3;\n --spectrum-cyan-500: #33c5e8;\n --spectrum-cyan-600: #12b0da;\n --spectrum-cyan-700: #019cc8;\n --spectrum-cyan-800: #0086b4;\n --spectrum-cyan-900: #00719f;\n --spectrum-cyan-1000: #005d89;\n --spectrum-cyan-1100: #004a73;\n --spectrum-cyan-1200: #00395d;\n --spectrum-cyan-1300: #002a46;\n --spectrum-cyan-1400: #001e33;\n --spectrum-blue-100: #e0f2ff;\n --spectrum-blue-200: #cae8ff;\n --spectrum-blue-300: #b5deff;\n --spectrum-blue-400: #96cefd;\n --spectrum-blue-500: #78bbfa;\n --spectrum-blue-600: #59a7f6;\n --spectrum-blue-700: #3892f3;\n --spectrum-blue-800: #147af3;\n --spectrum-blue-900: #0265dc;\n --spectrum-blue-1000: #0054b6;\n --spectrum-blue-1100: #004491;\n --spectrum-blue-1200: #003571;\n --spectrum-blue-1300: #002754;\n --spectrum-blue-1400: #001c3c;\n --spectrum-indigo-100: #edeeff;\n --spectrum-indigo-200: #e0e2ff;\n --spectrum-indigo-300: #d3d5ff;\n --spectrum-indigo-400: #c1c4ff;\n --spectrum-indigo-500: #acafff;\n --spectrum-indigo-600: #9599ff;\n --spectrum-indigo-700: #7e84fc;\n --spectrum-indigo-800: #686df4;\n --spectrum-indigo-900: #5258e4;\n --spectrum-indigo-1000: #4046ca;\n --spectrum-indigo-1100: #3236a8;\n --spectrum-indigo-1200: #262986;\n --spectrum-indigo-1300: #1b1e64;\n --spectrum-indigo-1400: #141648;\n --spectrum-purple-100: #f6ebff;\n --spectrum-purple-200: #edf;\n --spectrum-purple-300: #e6d0ff;\n --spectrum-purple-400: #dbbbfe;\n --spectrum-purple-500: #cca4fd;\n --spectrum-purple-600: #bd8bfc;\n --spectrum-purple-700: #ae72f9;\n --spectrum-purple-800: #9d57f4;\n --spectrum-purple-900: #893de7;\n --spectrum-purple-1000: #7326d3;\n --spectrum-purple-1100: #5d13b7;\n --spectrum-purple-1200: #470c94;\n --spectrum-purple-1300: #33106a;\n --spectrum-purple-1400: #230f49;\n --spectrum-fuchsia-100: #ffe9fc;\n --spectrum-fuchsia-200: #ffdafa;\n --spectrum-fuchsia-300: #fec7f8;\n --spectrum-fuchsia-400: #fbaef6;\n --spectrum-fuchsia-500: #f592f3;\n --spectrum-fuchsia-600: #ed74ed;\n --spectrum-fuchsia-700: #e055e2;\n --spectrum-fuchsia-800: #cd3ace;\n --spectrum-fuchsia-900: #b622b7;\n --spectrum-fuchsia-1000: #9d039e;\n --spectrum-fuchsia-1100: #800081;\n --spectrum-fuchsia-1200: #640664;\n --spectrum-fuchsia-1300: #470e46;\n --spectrum-fuchsia-1400: #320d31;\n --spectrum-magenta-100: #ffeaf1;\n --spectrum-magenta-200: #ffdce8;\n --spectrum-magenta-300: #ffcadd;\n --spectrum-magenta-400: #ffb2ce;\n --spectrum-magenta-500: #ff95bd;\n --spectrum-magenta-600: #fa77aa;\n --spectrum-magenta-700: #ef5a98;\n --spectrum-magenta-800: #de3d82;\n --spectrum-magenta-900: #c82269;\n --spectrum-magenta-1000: #ad0955;\n --spectrum-magenta-1100: #8e0045;\n --spectrum-magenta-1200: #700037;\n --spectrum-magenta-1300: #54032a;\n --spectrum-magenta-1400: #3c061d;\n --spectrum-alias-background-color-modal-overlay: #0006;\n --spectrum-alias-dropshadow-color: #00000026;\n --spectrum-alias-background-color-hover-overlay: #0000000a;\n --spectrum-alias-highlight-hover: #0000000f;\n --spectrum-alias-highlight-active: #2c2c2c1a;\n --spectrum-alias-highlight-selected: #0265dc1a;\n --spectrum-alias-highlight-selected-hover: #0265dc33;\n --spectrum-alias-highlight-invalid: #d3151026;\n --spectrum-alias-text-highlight-color: #0265dc33;\n --spectrum-alias-background-color-quickactions: #f8f8f8e6;\n --spectrum-alias-radial-reaction-color-default: #2229;\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-300);\n --spectrum-colorarea-border-color: #2c2c2c1a;\n --spectrum-colorarea-border-color-hover: #2c2c2c1a;\n --spectrum-colorarea-border-color-down: #2c2c2c1a;\n --spectrum-colorarea-border-color-key-focus: #2c2c2c1a;\n --spectrum-colorslider-border-color: #2c2c2c1a;\n --spectrum-colorslider-border-color-hover: #2c2c2c1a;\n --spectrum-colorslider-border-color-down: #2c2c2c1a;\n --spectrum-colorslider-border-color-key-focus: #2c2c2c1a;\n --spectrum-colorslider-vertical-border-color: #2c2c2c1a;\n --spectrum-colorslider-vertical-border-color-hover: #2c2c2c1a;\n --spectrum-colorslider-vertical-border-color-down: #2c2c2c1a;\n --spectrum-colorslider-vertical-border-color-key-focus: #2c2c2c1a;\n --spectrum-colorwheel-border-color: #2c2c2c1a;\n --spectrum-colorwheel-border-color-hover: #2c2c2c1a;\n --spectrum-colorwheel-border-color-down: #2c2c2c1a;\n --spectrum-colorwheel-border-color-key-focus: #2c2c2c1a;\n --spectrum-miller-column-item-background-color-selected: #1473e61a;\n --spectrum-miller-column-item-background-color-selected-hover: #1473e633;\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: #22222205;\n --spectrum-well-border-color: #0000000d;\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-50);\n --react-spectrum-datepicker-placeholder-color: #767676;\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-900);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-1100);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-1000);\n --spectrum-neutral-background-color-default: var(--spectrum-gray-800);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-900);\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-600);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-700);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-800);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-700);\n --spectrum-negative-background-color-default: var(--spectrum-red-900);\n --spectrum-negative-background-color-hover: var(--spectrum-red-1000);\n --spectrum-negative-background-color-down: var(--spectrum-red-1100);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-1000);\n --spectrum-positive-background-color-default: var(--spectrum-green-900);\n --spectrum-positive-background-color-hover: var(--spectrum-green-1000);\n --spectrum-positive-background-color-down: var(--spectrum-green-1100);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-1000);\n --spectrum-informative-background-color-default: var(--spectrum-blue-900);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-1000);\n --spectrum-informative-background-color-down: var(--spectrum-blue-1100);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-600);\n --spectrum-orange-background-color-default: var(--spectrum-orange-600);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-400);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-500);\n --spectrum-celery-background-color-default: var(--spectrum-celery-600);\n --spectrum-green-background-color-default: var(--spectrum-green-900);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-900);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-900);\n --spectrum-blue-background-color-default: var(--spectrum-blue-900);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-900);\n --spectrum-purple-background-color-default: var(--spectrum-purple-900);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-900);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-900);\n --spectrum-negative-visual-color: var(--spectrum-red-800);\n --spectrum-positive-visual-color: var(--spectrum-green-700);\n --spectrum-notice-visual-color: var(--spectrum-orange-700);\n --spectrum-informative-visual-color: var(--spectrum-blue-800);\n --spectrum-gray-visual-color: var(--spectrum-gray-500);\n --spectrum-red-visual-color: var(--spectrum-red-800);\n --spectrum-orange-visual-color: var(--spectrum-orange-700);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-600);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-600);\n --spectrum-celery-visual-color: var(--spectrum-celery-700);\n --spectrum-green-visual-color: var(--spectrum-green-700);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-700);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-600);\n --spectrum-blue-visual-color: var(--spectrum-blue-800);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-800);\n --spectrum-purple-visual-color: var(--spectrum-purple-800);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-800);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-800);\n}\n\n.spectrum--large_c40598 {\n --spectrum-global-dimension-scale-factor: 1.25;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 4px;\n --spectrum-global-dimension-size-50: 5px;\n --spectrum-global-dimension-size-65: 6px;\n --spectrum-global-dimension-size-75: 8px;\n --spectrum-global-dimension-size-85: 9px;\n --spectrum-global-dimension-size-100: 10px;\n --spectrum-global-dimension-size-115: 11px;\n --spectrum-global-dimension-size-125: 13px;\n --spectrum-global-dimension-size-130: 14px;\n --spectrum-global-dimension-size-150: 15px;\n --spectrum-global-dimension-size-160: 16px;\n --spectrum-global-dimension-size-175: 18px;\n --spectrum-global-dimension-size-200: 20px;\n --spectrum-global-dimension-size-225: 22px;\n --spectrum-global-dimension-size-250: 25px;\n --spectrum-global-dimension-size-275: 28px;\n --spectrum-global-dimension-size-300: 30px;\n --spectrum-global-dimension-size-325: 32px;\n --spectrum-global-dimension-size-350: 35px;\n --spectrum-global-dimension-size-400: 40px;\n --spectrum-global-dimension-size-450: 45px;\n --spectrum-global-dimension-size-500: 50px;\n --spectrum-global-dimension-size-550: 56px;\n --spectrum-global-dimension-size-600: 60px;\n --spectrum-global-dimension-size-675: 68px;\n --spectrum-global-dimension-size-700: 70px;\n --spectrum-global-dimension-size-800: 80px;\n --spectrum-global-dimension-size-900: 90px;\n --spectrum-global-dimension-size-1000: 100px;\n --spectrum-global-dimension-size-1200: 120px;\n --spectrum-global-dimension-size-1250: 125px;\n --spectrum-global-dimension-size-1600: 160px;\n --spectrum-global-dimension-size-1700: 170px;\n --spectrum-global-dimension-size-2000: 200px;\n --spectrum-global-dimension-size-2400: 240px;\n --spectrum-global-dimension-size-3000: 300px;\n --spectrum-global-dimension-size-3400: 340px;\n --spectrum-global-dimension-size-3600: 360px;\n --spectrum-global-dimension-size-4600: 460px;\n --spectrum-global-dimension-size-5000: 500px;\n --spectrum-global-dimension-size-6000: 600px;\n --spectrum-global-dimension-font-size-25: 12px;\n --spectrum-global-dimension-font-size-50: 13px;\n --spectrum-global-dimension-font-size-75: 15px;\n --spectrum-global-dimension-font-size-100: 17px;\n --spectrum-global-dimension-font-size-150: 18px;\n --spectrum-global-dimension-font-size-200: 19px;\n --spectrum-global-dimension-font-size-300: 22px;\n --spectrum-global-dimension-font-size-400: 24px;\n --spectrum-global-dimension-font-size-500: 27px;\n --spectrum-global-dimension-font-size-600: 31px;\n --spectrum-global-dimension-font-size-700: 34px;\n --spectrum-global-dimension-font-size-800: 39px;\n --spectrum-global-dimension-font-size-900: 44px;\n --spectrum-global-dimension-font-size-1000: 49px;\n --spectrum-global-dimension-font-size-1100: 55px;\n --spectrum-global-dimension-font-size-1200: 62px;\n --spectrum-global-dimension-font-size-1300: 70px;\n --spectrum-alias-avatar-size-100: 26px;\n --spectrum-alias-avatar-size-400: 36px;\n --spectrum-alias-avatar-size-600: 46px;\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-barloader-large-border-radius: 4px;\n --spectrum-barloader-large-indeterminate-border-radius: 4px;\n --spectrum-barloader-large-over-background-border-radius: 4px;\n --spectrum-barloader-small-border-radius: 3px;\n --spectrum-barloader-small-indeterminate-border-radius: 3px;\n --spectrum-barloader-small-over-background-border-radius: 3px;\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-cta-min-width: 90px;\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-over-background-min-width: 90px;\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-primary-min-width: 90px;\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-over-background-min-width: 90px;\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-primary-min-width: 90px;\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-secondary-min-width: 90px;\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-warning-min-width: 90px;\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-250, 20px);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-secondary-min-width: 90px;\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-warning-min-width: 90px;\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-circleloader-medium-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-circleloader-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-circleloader-small-border-size: 3px;\n --spectrum-circleloader-small-over-background-border-size: 3px;\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-85);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-static-size-2600, 208px);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-85);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-5000, 400px);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-5000, 400px);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-5000, 400px);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-5000, 400px);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-5000, 400px);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-icon-arrow-down-small-height: 12px;\n --spectrum-icon-arrow-left-medium-height: 12px;\n --spectrum-icon-checkmark-medium-width: 16px;\n --spectrum-icon-checkmark-medium-height: 16px;\n --spectrum-icon-checkmark-small-width: 12px;\n --spectrum-icon-checkmark-small-height: 12px;\n --spectrum-icon-chevron-down-medium-width: 12px;\n --spectrum-icon-chevron-left-large-width: 16px;\n --spectrum-icon-chevron-left-medium-height: 12px;\n --spectrum-icon-chevron-right-large-width: 16px;\n --spectrum-icon-chevron-right-medium-height: 12px;\n --spectrum-icon-cross-large-width: 16px;\n --spectrum-icon-cross-large-height: 16px;\n --spectrum-icon-dash-small-width: 12px;\n --spectrum-icon-dash-small-height: 12px;\n --spectrum-icon-skip-left-width: 10px;\n --spectrum-icon-skip-left-height: 12px;\n --spectrum-icon-skip-right-width: 10px;\n --spectrum-icon-skip-right-height: 12px;\n --spectrum-icon-triplegripper-width: 12px;\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-selectlist-option-padding-height: var(--spectrum-global-dimension-static-size-160, 13px);\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-loader-bar-large-border-radius: 4px;\n --spectrum-loader-bar-large-over-background-border-radius: 4px;\n --spectrum-loader-bar-small-border-radius: 3px;\n --spectrum-loader-bar-small-over-background-border-radius: 3px;\n --spectrum-loader-circle-medium-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-loader-circle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-loader-circle-small-border-size: 3px;\n --spectrum-loader-circle-small-over-background-border-size: 3px;\n --spectrum-meter-large-border-radius: 4px;\n --spectrum-meter-small-border-radius: 3px;\n --spectrum-pagination-page-button-line-height: 32px;\n --spectrum-overlay-positive-transform-distance: 8px;\n --spectrum-overlay-negative-transform-distance: -8px;\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-progressbar-large-border-radius: 4px;\n --spectrum-progressbar-large-indeterminate-border-radius: 4px;\n --spectrum-progressbar-large-over-background-border-radius: 4px;\n --spectrum-progressbar-small-border-radius: 3px;\n --spectrum-progressbar-small-indeterminate-border-radius: 3px;\n --spectrum-progressbar-small-over-background-border-radius: 3px;\n --spectrum-progresscircle-medium-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-progresscircle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-progresscircle-small-border-size: 3px;\n --spectrum-progresscircle-small-indeterminate-border-size: 3px;\n --spectrum-progresscircle-small-over-background-border-size: 3px;\n --spectrum-progresscircle-medium-indeterminate-border-size: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-margin-bottom: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-emphasized-margin-bottom: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-radio-quiet-margin-bottom: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-rating-icon-width: 30px;\n --spectrum-rating-indicator-width: 20px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-rating-emphasized-icon-width: 30px;\n --spectrum-rating-emphasized-indicator-width: 20px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-rating-quiet-icon-width: 30px;\n --spectrum-rating-quiet-indicator-width: 20px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-sidenav-item-touch-hit-bottom: 3px;\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: 3px;\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175, 14px);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160, 13px);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-track-width: var(--spectrum-global-dimension-static-size-450, 36px);\n --spectrum-switch-handle-border-radius: 9px;\n --spectrum-switch-handle-transform-x-ltr: 18px;\n --spectrum-switch-handle-transform-x-rtl: -18px;\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160, 13px);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-emphasized-track-width: var(--spectrum-global-dimension-static-size-450, 36px);\n --spectrum-switch-emphasized-handle-border-radius: 9px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160, 13px);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-switch-quiet-track-width: var(--spectrum-global-dimension-static-size-450, 36px);\n --spectrum-switch-quiet-handle-border-radius: 9px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-tabs-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-margin-left: -11px;\n --spectrum-tabs-compact-margin-right: -11px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-focus-ring-border-radius: 6px;\n --spectrum-tabs-margin-left: -11px;\n --spectrum-tabs-margin-right: -11px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-emphasized-margin-left: -11px;\n --spectrum-tabs-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-margin-left: -11px;\n --spectrum-tabs-quiet-margin-right: -11px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-margin-left: -11px;\n --spectrum-tabs-quiet-compact-margin-right: -11px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-vertical-focus-ring-border-radius: 6px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-tooltip-padding-bottom: 6px;\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n --spectrum-tooltip-info-padding-bottom: 6px;\n --spectrum-tooltip-info-content-max-width: 126px;\n --spectrum-tooltip-negative-padding-bottom: 6px;\n --spectrum-tooltip-negative-content-max-width: 126px;\n --spectrum-tooltip-positive-padding-bottom: 6px;\n --spectrum-tooltip-positive-content-max-width: 126px;\n}\n\n.spectrum_9e130c {\n --spectrum-global-animation-duration-0: 0s;\n --spectrum-global-animation-duration-100: .13s;\n --spectrum-global-animation-duration-200: .16s;\n --spectrum-global-animation-duration-300: .19s;\n --spectrum-global-animation-duration-400: .22s;\n --spectrum-global-animation-duration-500: .25s;\n --spectrum-global-animation-duration-600: .3s;\n --spectrum-global-animation-duration-700: .35s;\n --spectrum-global-animation-duration-800: .4s;\n --spectrum-global-animation-duration-900: .45s;\n --spectrum-global-animation-duration-1000: .5s;\n --spectrum-global-animation-duration-2000: 1s;\n --spectrum-global-animation-duration-4000: 2s;\n --spectrum-global-animation-ease-in-out: cubic-bezier(.45, 0, .4, 1);\n --spectrum-global-animation-ease-in: cubic-bezier(.5, 0, 1, 1);\n --spectrum-global-animation-ease-out: cubic-bezier(0, 0, .4, 1);\n --spectrum-global-animation-linear: cubic-bezier(0, 0, 1, 1);\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1;\n --spectrum-global-color-static-black: #000;\n --spectrum-global-color-static-white: #fff;\n --spectrum-global-color-static-blue: #0057bf;\n --spectrum-global-color-static-gray-50: #fff;\n --spectrum-global-color-static-gray-75: #fff;\n --spectrum-global-color-static-gray-100: #fff;\n --spectrum-global-color-static-gray-200: #ebebeb;\n --spectrum-global-color-static-gray-300: #d9d9d9;\n --spectrum-global-color-static-gray-400: #b3b3b3;\n --spectrum-global-color-static-gray-500: #929292;\n --spectrum-global-color-static-gray-600: #6e6e6e;\n --spectrum-global-color-static-gray-700: #474747;\n --spectrum-global-color-static-gray-800: #222;\n --spectrum-global-color-static-gray-900: #000;\n --spectrum-global-color-static-blue-200: #82c1fb;\n --spectrum-global-color-static-blue-300: #62adf7;\n --spectrum-global-color-static-blue-400: #4297f4;\n --spectrum-global-color-static-blue-500: #1b7ff5;\n --spectrum-global-color-static-blue-600: #0469e3;\n --spectrum-global-color-static-blue-700: #0057be;\n --spectrum-global-color-static-blue-800: #004899;\n --spectrum-global-color-static-red-400: #ed4030;\n --spectrum-global-color-static-red-500: #d91c15;\n --spectrum-global-color-static-red-600: #bb0202;\n --spectrum-global-color-static-red-700: #9a0000;\n --spectrum-global-color-static-orange-400: #fa8b1a;\n --spectrum-global-color-static-orange-500: #e97500;\n --spectrum-global-color-static-orange-600: #d16100;\n --spectrum-global-color-static-orange-700: #b65000;\n --spectrum-global-color-static-green-400: #1da973;\n --spectrum-global-color-static-green-500: #009461;\n --spectrum-global-color-static-green-600: #007e50;\n --spectrum-global-color-static-green-700: #006941;\n --spectrum-global-color-static-celery-200: #7ee572;\n --spectrum-global-color-static-celery-300: #57d456;\n --spectrum-global-color-static-celery-400: #30c13d;\n --spectrum-global-color-static-celery-500: #0fac26;\n --spectrum-global-color-static-celery-600: #009614;\n --spectrum-global-color-static-celery-700: #00800f;\n --spectrum-global-color-static-chartreuse-300: #b0de1b;\n --spectrum-global-color-static-chartreuse-400: #9dcb0d;\n --spectrum-global-color-static-chartreuse-500: #8bb604;\n --spectrum-global-color-static-chartreuse-600: #7aa200;\n --spectrum-global-color-static-chartreuse-700: #6a8d00;\n --spectrum-global-color-static-yellow-200: #faed7b;\n --spectrum-global-color-static-yellow-300: #fae017;\n --spectrum-global-color-static-yellow-400: #eecd00;\n --spectrum-global-color-static-yellow-500: #ddb900;\n --spectrum-global-color-static-yellow-600: #c9a400;\n --spectrum-global-color-static-yellow-700: #b59000;\n --spectrum-global-color-static-magenta-200: #fd7faf;\n --spectrum-global-color-static-magenta-300: #f2629d;\n --spectrum-global-color-static-magenta-400: #e24487;\n --spectrum-global-color-static-magenta-500: #cd286f;\n --spectrum-global-color-static-magenta-600: #b30f59;\n --spectrum-global-color-static-magenta-700: #950048;\n --spectrum-global-color-static-fuchsia-400: #e45de6;\n --spectrum-global-color-static-fuchsia-500: #d33fd4;\n --spectrum-global-color-static-fuchsia-600: #bc27bb;\n --spectrum-global-color-static-fuchsia-700: #a30aa3;\n --spectrum-global-color-static-purple-400: #b279fa;\n --spectrum-global-color-static-purple-500: #a15df6;\n --spectrum-global-color-static-purple-600: #8e43ea;\n --spectrum-global-color-static-purple-700: #782bd8;\n --spectrum-global-color-static-purple-800: #6217be;\n --spectrum-global-color-static-indigo-200: #b2b5ff;\n --spectrum-global-color-static-indigo-300: #9b9fff;\n --spectrum-global-color-static-indigo-400: #8489fd;\n --spectrum-global-color-static-indigo-500: #6d73f6;\n --spectrum-global-color-static-indigo-600: #575de8;\n --spectrum-global-color-static-indigo-700: #444ad0;\n --spectrum-global-color-static-seafoam-200: #4bcec7;\n --spectrum-global-color-static-seafoam-300: #20bbb4;\n --spectrum-global-color-static-seafoam-400: #00a6a0;\n --spectrum-global-color-static-seafoam-500: #00918b;\n --spectrum-global-color-static-seafoam-600: #007c76;\n --spectrum-global-color-static-seafoam-700: #006763;\n --spectrum-global-color-opacity-100: 1;\n --spectrum-global-color-opacity-90: .9;\n --spectrum-global-color-opacity-80: .8;\n --spectrum-global-color-opacity-60: .6;\n --spectrum-global-color-opacity-50: .5;\n --spectrum-global-color-opacity-42: .42;\n --spectrum-global-color-opacity-40: .4;\n --spectrum-global-color-opacity-30: .3;\n --spectrum-global-color-opacity-25: .25;\n --spectrum-global-color-opacity-20: .2;\n --spectrum-global-color-opacity-15: .15;\n --spectrum-global-color-opacity-10: .1;\n --spectrum-global-color-opacity-8: .08;\n --spectrum-global-color-opacity-7: .07;\n --spectrum-global-color-opacity-6: .06;\n --spectrum-global-color-opacity-5: .05;\n --spectrum-global-color-opacity-4: .04;\n --spectrum-global-color-celery-400: var(--spectrum-celery-600);\n --spectrum-global-color-celery-500: var(--spectrum-celery-700);\n --spectrum-global-color-celery-600: var(--spectrum-celery-800);\n --spectrum-global-color-celery-700: var(--spectrum-celery-900);\n --spectrum-global-color-chartreuse-400: var(--spectrum-chartreuse-500);\n --spectrum-global-color-chartreuse-500: var(--spectrum-chartreuse-600);\n --spectrum-global-color-chartreuse-600: var(--spectrum-chartreuse-700);\n --spectrum-global-color-chartreuse-700: var(--spectrum-chartreuse-800);\n --spectrum-global-color-yellow-400: var(--spectrum-yellow-400);\n --spectrum-global-color-yellow-500: var(--spectrum-yellow-500);\n --spectrum-global-color-yellow-600: var(--spectrum-yellow-600);\n --spectrum-global-color-yellow-700: var(--spectrum-yellow-700);\n --spectrum-global-color-magenta-400: var(--spectrum-magenta-800);\n --spectrum-global-color-magenta-500: var(--spectrum-magenta-900);\n --spectrum-global-color-magenta-600: var(--spectrum-magenta-1000);\n --spectrum-global-color-magenta-700: var(--spectrum-magenta-1100);\n --spectrum-global-color-fuchsia-400: var(--spectrum-fuchsia-800);\n --spectrum-global-color-fuchsia-500: var(--spectrum-fuchsia-900);\n --spectrum-global-color-fuchsia-600: var(--spectrum-fuchsia-1000);\n --spectrum-global-color-fuchsia-700: var(--spectrum-fuchsia-1100);\n --spectrum-global-color-purple-400: var(--spectrum-purple-800);\n --spectrum-global-color-purple-500: var(--spectrum-purple-900);\n --spectrum-global-color-purple-600: var(--spectrum-purple-1000);\n --spectrum-global-color-purple-700: var(--spectrum-purple-1100);\n --spectrum-global-color-indigo-400: var(--spectrum-indigo-800);\n --spectrum-global-color-indigo-500: var(--spectrum-indigo-900);\n --spectrum-global-color-indigo-600: var(--spectrum-indigo-1000);\n --spectrum-global-color-indigo-700: var(--spectrum-indigo-1100);\n --spectrum-global-color-seafoam-400: var(--spectrum-seafoam-700);\n --spectrum-global-color-seafoam-500: var(--spectrum-seafoam-800);\n --spectrum-global-color-seafoam-600: var(--spectrum-seafoam-900);\n --spectrum-global-color-seafoam-700: var(--spectrum-seafoam-1000);\n --spectrum-global-color-red-400: var(--spectrum-red-800);\n --spectrum-global-color-red-500: var(--spectrum-red-900);\n --spectrum-global-color-red-600: var(--spectrum-red-1000);\n --spectrum-global-color-red-700: var(--spectrum-red-1100);\n --spectrum-global-color-orange-400: var(--spectrum-orange-600);\n --spectrum-global-color-orange-500: var(--spectrum-orange-700);\n --spectrum-global-color-orange-600: var(--spectrum-orange-800);\n --spectrum-global-color-orange-700: var(--spectrum-orange-900);\n --spectrum-global-color-green-400: var(--spectrum-green-800);\n --spectrum-global-color-green-500: var(--spectrum-green-900);\n --spectrum-global-color-green-600: var(--spectrum-green-1000);\n --spectrum-global-color-green-700: var(--spectrum-green-1100);\n --spectrum-global-color-blue-400: var(--spectrum-blue-800);\n --spectrum-global-color-blue-500: var(--spectrum-blue-900);\n --spectrum-global-color-blue-600: var(--spectrum-blue-1000);\n --spectrum-global-color-blue-700: var(--spectrum-blue-1100);\n --spectrum-global-color-gray-50: var(--spectrum-gray-50);\n --spectrum-global-color-gray-75: var(--spectrum-gray-75);\n --spectrum-global-color-gray-100: var(--spectrum-gray-100);\n --spectrum-global-color-gray-200: var(--spectrum-gray-200);\n --spectrum-global-color-gray-300: var(--spectrum-gray-300);\n --spectrum-global-color-gray-400: var(--spectrum-gray-400);\n --spectrum-global-color-gray-500: var(--spectrum-gray-500);\n --spectrum-global-color-gray-600: var(--spectrum-gray-600);\n --spectrum-global-color-gray-700: var(--spectrum-gray-700);\n --spectrum-global-color-gray-800: var(--spectrum-gray-800);\n --spectrum-global-color-gray-900: var(--spectrum-gray-900);\n --spectrum-accent-color-100: var(--spectrum-blue-100);\n --spectrum-accent-color-200: var(--spectrum-blue-200);\n --spectrum-accent-color-300: var(--spectrum-blue-300);\n --spectrum-accent-color-400: var(--spectrum-blue-400);\n --spectrum-accent-color-500: var(--spectrum-blue-500);\n --spectrum-accent-color-600: var(--spectrum-blue-600);\n --spectrum-accent-color-700: var(--spectrum-blue-700);\n --spectrum-accent-color-800: var(--spectrum-blue-800);\n --spectrum-accent-color-900: var(--spectrum-blue-900);\n --spectrum-accent-color-1000: var(--spectrum-blue-1000);\n --spectrum-accent-color-1100: var(--spectrum-blue-1100);\n --spectrum-accent-color-1200: var(--spectrum-blue-1200);\n --spectrum-accent-color-1300: var(--spectrum-blue-1300);\n --spectrum-accent-color-1400: var(--spectrum-blue-1400);\n --spectrum-semantic-negative-color-background: var(--spectrum-negative-background-color-default);\n --spectrum-semantic-negative-color-default: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-hover: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-dark: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-border: var(--spectrum-red-800);\n --spectrum-semantic-negative-color-icon: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-status: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-text-large: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-text-small: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-down: var(--spectrum-red-1100);\n --spectrum-semantic-negative-color-state-focus: var(--spectrum-red-1000);\n --spectrum-semantic-notice-color-background: var(--spectrum-global-color-static-orange-600, #da7b11);\n --spectrum-semantic-notice-color-default: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-dark: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-border: var(--spectrum-orange-600);\n --spectrum-semantic-notice-color-icon: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-status: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-text-large: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-text-small: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-state-down: var(--spectrum-orange-900);\n --spectrum-semantic-notice-color-state-focus: var(--spectrum-orange-600);\n --spectrum-semantic-positive-color-background: var(--spectrum-positive-background-color-default);\n --spectrum-semantic-positive-color-default: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-dark: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-border: var(--spectrum-green-800);\n --spectrum-semantic-positive-color-icon: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-status: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-text-large: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-text-small: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-state-down: var(--spectrum-green-1100);\n --spectrum-semantic-positive-color-state-focus: var(--spectrum-green-800);\n --spectrum-semantic-informative-color-background: var(--spectrum-informative-background-color-default);\n --spectrum-semantic-informative-color-default: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-dark: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-border: var(--spectrum-blue-800);\n --spectrum-semantic-informative-color-icon: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-status: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-text-large: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-text-small: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-state-down: var(--spectrum-blue-1100);\n --spectrum-semantic-informative-color-state-focus: var(--spectrum-blue-800);\n --spectrum-semantic-cta-color-background-default: var(--spectrum-accent-background-color-default);\n --spectrum-semantic-cta-color-background-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-semantic-cta-color-background-down: var(--spectrum-accent-background-color-down);\n --spectrum-semantic-cta-color-background-key-focus: var(--spectrum-accent-background-color-key-focus);\n --spectrum-semantic-background-color-key-focus: var(--spectrum-global-color-static-blue-600, #1473e6);\n --spectrum-semantic-neutral-color-background: var(--spectrum-neutral-subdued-background-color-default);\n --spectrum-semantic-presence-color-1: var(--spectrum-global-color-static-red-500, #e34850);\n --spectrum-semantic-presence-color-2: var(--spectrum-global-color-static-orange-400, #f29423);\n --spectrum-semantic-presence-color-3: var(--spectrum-global-color-static-yellow-400, #edcc00);\n --spectrum-semantic-presence-color-4: #4bcca2;\n --spectrum-semantic-presence-color-5: #00c7ff;\n --spectrum-semantic-presence-color-6: #008cb8;\n --spectrum-semantic-presence-color-7: #7e4bf3;\n --spectrum-semantic-presence-color-8: var(--spectrum-global-color-static-fuchsia-600, #b130bd);\n --spectrum-global-dimension-static-size-0: 0px;\n --spectrum-global-dimension-static-size-10: 1px;\n --spectrum-global-dimension-static-size-25: 2px;\n --spectrum-global-dimension-static-size-50: 4px;\n --spectrum-global-dimension-static-size-40: 3px;\n --spectrum-global-dimension-static-size-65: 5px;\n --spectrum-global-dimension-static-size-100: 8px;\n --spectrum-global-dimension-static-size-115: 9px;\n --spectrum-global-dimension-static-size-125: 10px;\n --spectrum-global-dimension-static-size-130: 11px;\n --spectrum-global-dimension-static-size-150: 12px;\n --spectrum-global-dimension-static-size-160: 13px;\n --spectrum-global-dimension-static-size-175: 14px;\n --spectrum-global-dimension-static-size-200: 16px;\n --spectrum-global-dimension-static-size-225: 18px;\n --spectrum-global-dimension-static-size-250: 20px;\n --spectrum-global-dimension-static-size-300: 24px;\n --spectrum-global-dimension-static-size-400: 32px;\n --spectrum-global-dimension-static-size-450: 36px;\n --spectrum-global-dimension-static-size-500: 40px;\n --spectrum-global-dimension-static-size-550: 44px;\n --spectrum-global-dimension-static-size-600: 48px;\n --spectrum-global-dimension-static-size-700: 56px;\n --spectrum-global-dimension-static-size-800: 64px;\n --spectrum-global-dimension-static-size-900: 72px;\n --spectrum-global-dimension-static-size-1000: 80px;\n --spectrum-global-dimension-static-size-1200: 96px;\n --spectrum-global-dimension-static-size-1700: 136px;\n --spectrum-global-dimension-static-size-2400: 192px;\n --spectrum-global-dimension-static-size-2600: 208px;\n --spectrum-global-dimension-static-size-3400: 272px;\n --spectrum-global-dimension-static-size-3600: 288px;\n --spectrum-global-dimension-static-size-4600: 368px;\n --spectrum-global-dimension-static-size-5000: 400px;\n --spectrum-global-dimension-static-size-6000: 480px;\n --spectrum-global-dimension-static-font-size-50: 11px;\n --spectrum-global-dimension-static-font-size-75: 12px;\n --spectrum-global-dimension-static-font-size-100: 14px;\n --spectrum-global-dimension-static-font-size-150: 15px;\n --spectrum-global-dimension-static-font-size-200: 16px;\n --spectrum-global-dimension-static-font-size-300: 18px;\n --spectrum-global-dimension-static-font-size-400: 20px;\n --spectrum-global-dimension-static-font-size-500: 22px;\n --spectrum-global-dimension-static-font-size-600: 25px;\n --spectrum-global-dimension-static-font-size-700: 28px;\n --spectrum-global-dimension-static-font-size-800: 32px;\n --spectrum-global-dimension-static-font-size-900: 36px;\n --spectrum-global-dimension-static-font-size-1000: 40px;\n --spectrum-global-dimension-static-percent-50: 50%;\n --spectrum-global-dimension-static-percent-100: 100%;\n --spectrum-global-dimension-static-breakpoint-xsmall: 304px;\n --spectrum-global-dimension-static-breakpoint-small: 768px;\n --spectrum-global-dimension-static-breakpoint-medium: 1280px;\n --spectrum-global-dimension-static-breakpoint-large: 1768px;\n --spectrum-global-dimension-static-breakpoint-xlarge: 2160px;\n --spectrum-global-dimension-static-grid-columns: 12;\n --spectrum-global-dimension-static-grid-fluid-width: 100%;\n --spectrum-global-dimension-static-grid-fixed-max-width: 1280px;\n --spectrum-global-font-family-base: adobe-clean, \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Ubuntu, \"Trebuchet MS\", \"Lucida Grande\", sans-serif;\n --spectrum-global-font-family-serif: adobe-clean-serif, \"Source Serif Pro\", Georgia, serif;\n --spectrum-global-font-family-code: \"Source Code Pro\", Monaco, monospace;\n --spectrum-global-font-weight-thin: 100;\n --spectrum-global-font-weight-ultra-light: 200;\n --spectrum-global-font-weight-light: 300;\n --spectrum-global-font-weight-regular: 400;\n --spectrum-global-font-weight-medium: 500;\n --spectrum-global-font-weight-semi-bold: 600;\n --spectrum-global-font-weight-bold: 700;\n --spectrum-global-font-weight-extra-bold: 800;\n --spectrum-global-font-weight-black: 900;\n --spectrum-global-font-style-regular: normal;\n --spectrum-global-font-style-italic: italic;\n --spectrum-global-font-letter-spacing-none: 0;\n --spectrum-global-font-letter-spacing-small: .0125em;\n --spectrum-global-font-letter-spacing-han: .05em;\n --spectrum-global-font-letter-spacing-medium: .06em;\n --spectrum-global-font-line-height-large: 1.7;\n --spectrum-global-font-line-height-medium: 1.5;\n --spectrum-global-font-line-height-small: 1.3;\n --spectrum-global-font-multiplier-25: .25em;\n --spectrum-global-font-multiplier-75: .75em;\n --spectrum-alias-border-size-thin: var(--spectrum-global-dimension-static-size-10, 1px);\n --spectrum-alias-border-size-thick: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-alias-border-size-thicker: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-alias-border-size-thickest: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-alias-input-border-size: var(--spectrum-global-dimension-static-size-10, 1px);\n --spectrum-alias-border-offset-thin: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-alias-border-offset-thick: var(--spectrum-global-dimension-static-size-50, 4px);\n --spectrum-alias-border-offset-thicker: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-alias-border-offset-thickest: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-alias-grid-baseline: var(--spectrum-global-dimension-static-size-100, 8px);\n --spectrum-alias-grid-gutter-xsmall: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-alias-grid-gutter-small: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-alias-grid-gutter-medium: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-alias-grid-gutter-large: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-alias-grid-gutter-xlarge: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-alias-grid-margin-xsmall: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-alias-grid-margin-small: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-alias-grid-margin-medium: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-alias-grid-margin-large: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-alias-grid-margin-xlarge: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-alias-grid-layout-region-margin-bottom-xsmall: var(--spectrum-global-dimension-static-size-200, 16px);\n --spectrum-alias-grid-layout-region-margin-bottom-small: var(--spectrum-global-dimension-static-size-300, 24px);\n --spectrum-alias-grid-layout-region-margin-bottom-medium: var(--spectrum-global-dimension-static-size-400, 32px);\n --spectrum-alias-grid-layout-region-margin-bottom-large: var(--spectrum-global-dimension-static-size-500, 40px);\n --spectrum-alias-grid-layout-region-margin-bottom-xlarge: var(--spectrum-global-dimension-static-size-600, 48px);\n --spectrum-alias-radial-reaction-size-default: var(--spectrum-global-dimension-static-size-550, 44px);\n --spectrum-alias-font-family-ar: var(--spectrum-global-font-font-family-ar);\n --spectrum-alias-font-family-he: var(--spectrum-global-font-font-family-he);\n --spectrum-alias-font-family-zh: var(--spectrum-global-font-font-family-zh);\n --spectrum-alias-font-family-zhhans: var(--spectrum-global-font-font-family-zhhans);\n --spectrum-alias-font-family-ko: var(--spectrum-global-font-font-family-ko);\n --spectrum-alias-font-family-ja: var(--spectrum-global-font-font-family-ja);\n --spectrum-alias-font-family-condensed: var(--spectrum-global-font-font-family-condensed);\n --spectrum-alias-line-height-body: var(--spectrum-global-font-line-height-medium, 1.5);\n --spectrum-alias-line-height-title: var(--spectrum-global-font-line-height-small, 1.3);\n --spectrum-alias-body-han-text-line-height: var(--spectrum-global-font-line-height-large, 1.7);\n --spectrum-alias-body-text-font-family: var(--spectrum-global-font-family-base, adobe-clean, \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Ubuntu, \"Trebuchet MS\", \"Lucida Grande\", sans-serif);\n --spectrum-alias-body-text-line-height: var(--spectrum-global-font-line-height-medium, 1.5);\n --spectrum-alias-body-text-font-weight: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-body-text-font-weight-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-button-text-line-height: var(--spectrum-global-font-line-height-small, 1.3);\n --spectrum-alias-heading-han-text-line-height: var(--spectrum-global-font-line-height-medium, 1.5);\n --spectrum-alias-heading-text-line-height: var(--spectrum-global-font-line-height-small, 1.3);\n --spectrum-alias-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light, 300);\n --spectrum-alias-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-subheading-text-font-weight: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-detail-text-font-weight: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-detail-text-font-weight-light: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-serif-text-font-family: var(--spectrum-global-font-family-serif, adobe-clean-serif, \"Source Serif Pro\", Georgia, serif);\n --spectrum-alias-article-text-font-family: var(--spectrum-global-font-family-serif, adobe-clean-serif, \"Source Serif Pro\", Georgia, serif);\n --spectrum-alias-article-body-text-font-weight: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-article-body-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-article-heading-text-font-weight: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-article-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-article-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-article-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-article-subheading-text-font-weight: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-article-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-article-detail-text-font-weight: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-article-detail-text-font-weight-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-code-text-font-family: var(--spectrum-global-font-family-code, \"Source Code Pro\", Monaco, monospace);\n --spectrum-alias-han-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-heading-text-font-weight-regular-emphasis: var(--spectrum-global-font-weight-extra-bold, 800);\n --spectrum-alias-han-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light, 300);\n --spectrum-alias-han-heading-text-font-weight-quiet-emphasis: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-han-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-heading-text-font-weight-light: var(--spectrum-global-font-weight-light, 300);\n --spectrum-alias-han-heading-text-font-weight-light-emphasis: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-han-heading-text-font-weight-light-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-strong-emphasis: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-heavy: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-heavy-emphasis: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-heading-text-font-weight-heavy-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-body-text-font-weight-regular: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-han-body-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-body-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-subheading-text-font-weight-regular: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-subheading-text-font-weight-emphasis: var(--spectrum-global-font-weight-extra-bold, 800);\n --spectrum-alias-han-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-han-detail-text-font-weight: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-han-detail-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-han-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black, 900);\n --spectrum-alias-code-text-font-weight-regular: var(--spectrum-global-font-weight-regular, 400);\n --spectrum-alias-code-text-font-weight-strong: var(--spectrum-global-font-weight-bold, 700);\n --spectrum-alias-code-text-line-height: var(--spectrum-global-font-line-height-medium, 1.5);\n --spectrum-alias-heading-margin-bottom: var(--spectrum-global-font-multiplier-25, .25em);\n --spectrum-alias-body-margin-bottom: var(--spectrum-global-font-multiplier-75, .75em);\n --spectrum-alias-focus-ring-gap: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-alias-input-focusring-gap: var(--spectrum-global-dimension-static-size-0, 0px);\n --spectrum-alias-focus-ring-size: var(--spectrum-global-dimension-static-size-25, 2px);\n --spectrum-alias-input-focusring-size: var(--spectrum-global-dimension-static-size-10, 1px);\n --spectrum-alias-loupe-entry-animation-duration: var(--spectrum-global-animation-duration-300, .19s);\n --spectrum-alias-loupe-exit-animation-duration: var(--spectrum-global-animation-duration-300, .19s);\n}\n\n.spectrum--medium_9e130c, .spectrum--large_9e130c {\n --spectrum-alias-dropshadow-blur: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-dropshadow-offset-y: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-font-size-default: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-line-height-small: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-line-height-medium: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-line-height-large: var(--spectrum-global-dimension-size-300);\n --spectrum-alias-line-height-xlarge: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-line-height-xxlarge: var(--spectrum-global-dimension-size-600);\n --spectrum-alias-layout-label-gap-size: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-pill-button-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-pill-button-text-baseline: var(--spectrum-global-dimension-static-size-150, 12px);\n --spectrum-alias-border-radius-xsmall: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-border-radius-small: var(--spectrum-global-dimension-size-25);\n --spectrum-alias-border-radius-regular: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-border-radius-medium: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-border-radius-large: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-single-line-height: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-single-line-width: var(--spectrum-global-dimension-size-2400);\n --spectrum-alias-workflow-icon-size: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-heading-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-han-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display2-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-xxl-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-display2-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xxl-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-xxl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xxl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading1-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-xl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xl-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-han-xl-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-l-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-l-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-han-l-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-han-l-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-m-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-m-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-han-m-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-han-m-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-s-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-s-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-xs-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xs-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xxs-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-heading-xxs-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-avatar-size-50: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-avatar-size-75: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-avatar-size-200: var(--spectrum-global-dimension-size-275);\n --spectrum-alias-avatar-size-300: var(--spectrum-global-dimension-size-325);\n --spectrum-alias-avatar-size-500: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-avatar-size-700: var(--spectrum-global-dimension-size-500);\n}\n\n.spectrum--darkest_9e130c, .spectrum--dark_9e130c, .spectrum--light_9e130c, .spectrum--lightest_9e130c {\n --spectrum-alias-background-color-default: var(--spectrum-gray-100);\n --spectrum-alias-background-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-background-color-transparent: transparent;\n --spectrum-alias-background-color-label-gray: #707070;\n --spectrum-alias-background-color-quickactions-overlay: #0003;\n --spectrum-alias-placeholder-text-color: var(--spectrum-gray-800);\n --spectrum-alias-placeholder-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-selected: var(--spectrum-gray-800);\n --spectrum-alias-label-text-color: var(--spectrum-gray-700);\n --spectrum-alias-text-color: var(--spectrum-gray-800);\n --spectrum-alias-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-text-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-mouse-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-text-color-invalid: var(--spectrum-red-900);\n --spectrum-alias-text-color-selected: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-title-text-color: var(--spectrum-gray-900);\n --spectrum-alias-heading-text-color: var(--spectrum-gray-900);\n --spectrum-alias-border-color: var(--spectrum-gray-500);\n --spectrum-alias-border-color-hover: var(--spectrum-gray-600);\n --spectrum-alias-border-color-down: var(--spectrum-gray-600);\n --spectrum-alias-border-color-focus: var(--spectrum-blue-800);\n --spectrum-alias-input-border-color-key-focus: var(--spectrum-alias-border-color-focus, var(--spectrum-global-color-blue-400));\n --spectrum-alias-border-color-mouse-focus: var(--spectrum-blue-900);\n --spectrum-alias-border-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-border-color-extralight: var(--spectrum-gray-100);\n --spectrum-alias-border-color-light: var(--spectrum-gray-200);\n --spectrum-alias-border-color-mid: var(--spectrum-gray-300);\n --spectrum-alias-border-color-dark: var(--spectrum-gray-400);\n --spectrum-alias-border-color-transparent: transparent;\n --spectrum-alias-border-color-translucent-dark: #0000000d;\n --spectrum-alias-border-color-translucent-darker: #0000001a;\n --spectrum-alias-focus-color: var(--spectrum-blue-800);\n --spectrum-alias-focus-ring-color: var(--spectrum-alias-focus-color, var(--spectrum-global-color-blue-400));\n --spectrum-alias-track-color-default: var(--spectrum-gray-300);\n --spectrum-alias-track-color-disabled: var(--spectrum-gray-300);\n --spectrum-alias-track-color-over-background: #fff3;\n --spectrum-alias-icon-color: var(--spectrum-gray-700);\n --spectrum-alias-icon-color-over-background: var(--spectrum-global-color-static-white, #fff);\n --spectrum-alias-icon-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-down: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-focus: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-icon-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-selected: var(--spectrum-blue-900);\n --spectrum-alias-icon-color-selected-hover: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-selected-down: var(--spectrum-blue-1100);\n --spectrum-alias-icon-color-selected-focus: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-error: var(--spectrum-red-800);\n --spectrum-alias-toolbar-background-color: var(--spectrum-gray-100);\n --spectrum-alias-colorhandle-outer-border-color: #0000006b;\n --spectrum-alias-categorical-color-1: var(--spectrum-global-color-static-seafoam-200, #26c0c7);\n --spectrum-alias-categorical-color-2: var(--spectrum-global-color-static-indigo-700, #5151d3);\n --spectrum-alias-categorical-color-3: var(--spectrum-global-color-static-orange-500, #e68619);\n --spectrum-alias-categorical-color-4: var(--spectrum-global-color-static-magenta-500, #d83790);\n --spectrum-alias-categorical-color-5: var(--spectrum-global-color-static-indigo-200, #9090fa);\n --spectrum-alias-categorical-color-6: var(--spectrum-global-color-static-celery-200, #58e06f);\n --spectrum-alias-categorical-color-7: var(--spectrum-global-color-static-blue-500, #2680eb);\n --spectrum-alias-categorical-color-8: var(--spectrum-global-color-static-purple-800, #6f38b1);\n --spectrum-alias-categorical-color-9: var(--spectrum-global-color-static-yellow-500, #dfbf00);\n --spectrum-alias-categorical-color-10: var(--spectrum-global-color-static-orange-700, #cb6f10);\n --spectrum-alias-categorical-color-11: var(--spectrum-global-color-static-green-600, #268e6c);\n --spectrum-alias-categorical-color-12: var(--spectrum-global-color-static-chartreuse-300, #9bec54);\n --spectrum-alias-categorical-color-13: var(--spectrum-global-color-static-blue-200, #5aa9fa);\n --spectrum-alias-categorical-color-14: var(--spectrum-global-color-static-fuchsia-500, #c038cc);\n --spectrum-alias-categorical-color-15: var(--spectrum-global-color-static-magenta-200, #f56bb7);\n --spectrum-alias-categorical-color-16: var(--spectrum-global-color-static-yellow-200, #ffe22e);\n --spectrum-alias-toggle-color-default: var(--spectrum-gray-600);\n --spectrum-alias-toggle-color-hover: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-key-focus: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected-hover: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-key-focus: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-down: var(--spectrum-gray-900);\n --spectrum-actionbutton-background-color-disabled: transparent;\n --spectrum-actionbutton-border-color-disabled: var(--spectrum-gray-300);\n --spectrum-actionbutton-quiet-background-color-hover: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-key-focus: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-down: var(--spectrum-gray-300);\n --spectrum-actionbutton-static-black-border-color: #0006;\n --spectrum-actionbutton-static-black-border-color-hover: #0000008c;\n --spectrum-actionbutton-static-black-border-color-key-focus: #0000008c;\n --spectrum-actionbutton-static-black-border-color-down: #000000b3;\n --spectrum-actionbutton-static-black-border-color-disabled: #00000040;\n --spectrum-actionbutton-static-black-border-color-selected-disabled: #0000001a;\n --spectrum-actionbutton-static-black-background-color: transparent;\n --spectrum-actionbutton-static-black-background-color-disabled: transparent;\n --spectrum-actionbutton-static-white-border-color: #fff6;\n --spectrum-actionbutton-static-white-border-color-hover: #ffffff8c;\n --spectrum-actionbutton-static-white-border-color-key-focus: #ffffff8c;\n --spectrum-actionbutton-static-white-border-color-down: #ffffffb3;\n --spectrum-actionbutton-static-white-border-color-disabled: #ffffff40;\n --spectrum-actionbutton-static-white-border-color-selected-disabled: #ffffff1a;\n --spectrum-actionbutton-static-white-background-color: transparent;\n --spectrum-actionbutton-static-white-background-color-disabled: transparent;\n --spectrum-combobox-fieldbutton-inset: 0;\n --spectrum-combobox-fieldbutton-border-left-width: var(--spectrum-alias-input-border-size);\n --spectrum-combobox-fieldbutton-focus-ring-border-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius, 0);\n --spectrum-combobox-fieldbutton-start-border-radius: 0;\n --spectrum-combobox-fieldbutton-end-border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n --spectrum-actiongroup-compact-button-gap: calc(-1 * var(--spectrum-actionbutton-border-size, var(--spectrum-alias-border-size-thin)));\n --spectrum-tooltip-background-color: var(--spectrum-neutral-subdued-background-color-default);\n}\n\n.flex-container_e15493, .flex_e15493 {\n display: flex;\n}\n\n.flex-gap_e15493 {\n --gap: 0px;\n --column-gap: var(--gap);\n --row-gap: var(--gap);\n margin: calc(var(--row-gap) / -2) calc(var(--column-gap) / -2);\n width: calc(100% + var(--column-gap) + 1px);\n height: calc(100% + var(--row-gap));\n}\n\n.flex-container_e15493 .flex-gap_e15493 > * {\n margin: calc(var(--row-gap) / 2) calc(var(--column-gap) / 2);\n}\n\n.spectrum-Popover_38efea.react-spectrum-Popover_38efea {\n visibility: visible;\n}\n\n.spectrum-Popover_38efea .spectrum-Dialog-content_38efea {\n max-height: initial;\n}\n\n.spectrum-Modal-wrapper_38efea.react-spectrum-Modal-wrapper_38efea, .spectrum-Modal_38efea.react-spectrum-Modal_38efea, .spectrum-Tray_38efea.react-spectrum-Tray_38efea {\n visibility: visible;\n}\n\n.spectrum-Tray_23bf66 {\n visibility: hidden;\n opacity: 0;\n transition: transform var(--spectrum-global-animation-duration-100, .13s) ease-in-out, opacity var(--spectrum-global-animation-duration-100, .13s) ease-in-out, visibility 0s linear var(--spectrum-global-animation-duration-100, .13s);\n pointer-events: none;\n}\n\n.spectrum-Tray_23bf66.is-open_23bf66 {\n visibility: visible;\n opacity: .9999;\n pointer-events: auto;\n transition-delay: 0s;\n}\n\n[dir=\"ltr\"] .spectrum-Tray-wrapper_23bf66 {\n left: 0;\n}\n\n[dir=\"rtl\"] .spectrum-Tray-wrapper_23bf66 {\n right: 0;\n}\n\n.spectrum-Tray-wrapper_23bf66 {\n width: 100%;\n height: 100vh;\n pointer-events: none;\n z-index: 2;\n justify-content: center;\n display: flex;\n position: fixed;\n top: 0;\n}\n\n.spectrum-Tray_23bf66 {\n --spectrum-tray-margin-top: 64px;\n --spectrum-tray-max-width: 450px;\n width: var(--spectrum-tray-width, 100%);\n max-width: var(--spectrum-tray-max-width, 375px);\n min-height: var(--spectrum-tray-min-height, var(--spectrum-global-dimension-static-size-800));\n max-height: calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));\n padding-bottom: max(calc(100vh - var(--spectrum-visual-viewport-height)), env(safe-area-inset-bottom));\n border-radius: var(--spectrum-tray-full-width-border-radius, var(--spectrum-alias-border-radius-regular)) var(--spectrum-tray-full-width-border-radius, var(--spectrum-alias-border-radius-regular)) var(--spectrum-tray-border-radius, 0px) var(--spectrum-tray-border-radius, 0px);\n transition: opacity var(--spectrum-dialog-exit-animation-duration, var(--spectrum-global-animation-duration-100)) cubic-bezier(.5, 0, 1, 1) 0s, transform var(--spectrum-dialog-exit-animation-duration, var(--spectrum-global-animation-duration-100)) cubic-bezier(.5, 0, 1, 1) 0s;\n outline: none;\n flex-direction: column;\n display: flex;\n position: absolute;\n bottom: 0;\n transform: translateY(100%);\n}\n\n.spectrum-Tray_23bf66.is-open_23bf66 {\n transition: transform var(--spectrum-dialog-entry-animation-duration, var(--spectrum-global-animation-duration-500)) cubic-bezier(0, 0, .4, 1) var(--spectrum-dialog-entry-animation-delay, var(--spectrum-global-animation-duration-200)), opacity var(--spectrum-dialog-entry-animation-duration, var(--spectrum-global-animation-duration-500)) cubic-bezier(0, 0, .4, 1) var(--spectrum-dialog-entry-animation-delay, var(--spectrum-global-animation-duration-200));\n transform: translateY(0);\n}\n\n.spectrum-Tray--fixedHeight_23bf66 {\n height: calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));\n top: var(--spectrum-tray-margin-top);\n}\n\n@media (max-width: 450px) {\n .spectrum-Tray_23bf66 {\n border-radius: var(--spectrum-tray-border-radius, 0px);\n }\n}\n\n.spectrum-Tray_23bf66 {\n background-color: var(--spectrum-tray-background-color);\n}\n\n.spectrum-Modal_f81956 {\n visibility: hidden;\n opacity: 0;\n transition: transform var(--spectrum-global-animation-duration-100, .13s) ease-in-out, opacity var(--spectrum-global-animation-duration-100, .13s) ease-in-out, visibility 0s linear var(--spectrum-global-animation-duration-100, .13s);\n pointer-events: none;\n}\n\n.spectrum-Modal_f81956.is-open_f81956 {\n visibility: visible;\n opacity: .9999;\n pointer-events: auto;\n transition-delay: 0s;\n}\n\n.spectrum-Modal-wrapper_f81956 {\n box-sizing: border-box;\n width: 100vw;\n height: var(--spectrum-visual-viewport-height);\n visibility: hidden;\n pointer-events: none;\n z-index: 2;\n transition: visibility 0s linear var(--spectrum-global-animation-duration-100, .13s);\n justify-content: center;\n align-items: center;\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n}\n\n.spectrum-Modal-wrapper_f81956.is-open_f81956 {\n visibility: visible;\n}\n\n.spectrum-Modal_f81956 {\n transform: translateY(var(--spectrum-dialog-entry-animation-distance, var(--spectrum-global-dimension-size-250)));\n z-index: 2;\n max-height: calc(var(--spectrum-visual-viewport-height) * .9);\n max-width: 90vw;\n min-width: var(--spectrum-dialog-min-width, var(--spectrum-global-dimension-static-size-3600));\n border-radius: var(--spectrum-dialog-border-radius, var(--spectrum-global-dimension-size-50));\n pointer-events: auto;\n transition: opacity var(--spectrum-dialog-exit-animation-duration, var(--spectrum-global-animation-duration-100)) cubic-bezier(.5, 0, 1, 1) 0s, visibility 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration, var(--spectrum-global-animation-duration-100))), transform 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration, var(--spectrum-global-animation-duration-100)));\n outline: none;\n}\n\n.spectrum-Modal_f81956.is-open_f81956 {\n transition: transform var(--spectrum-dialog-entry-animation-duration, var(--spectrum-global-animation-duration-500)) cubic-bezier(0, 0, .4, 1) var(--spectrum-dialog-entry-animation-delay, var(--spectrum-global-animation-duration-200)), opacity var(--spectrum-dialog-entry-animation-duration, var(--spectrum-global-animation-duration-500)) cubic-bezier(0, 0, .4, 1) var(--spectrum-dialog-entry-animation-delay, var(--spectrum-global-animation-duration-200));\n transform: translateY(0);\n}\n\n@media only screen and (max-device-width: 400px), only screen and (max-device-height: 350px) {\n .spectrum-Modal--responsive_f81956 {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n border-radius: 0;\n }\n\n .spectrum-Modal-wrapper_f81956 .spectrum-Modal--responsive_f81956 {\n margin-top: 0;\n }\n}\n\n.spectrum-Modal--fullscreen_f81956 {\n max-width: none;\n max-height: none;\n width: calc(100% - 80px);\n height: calc(100% - 80px);\n position: fixed;\n inset: 40px;\n}\n\n.spectrum-Modal--fullscreenTakeover_f81956 {\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n border: none;\n border-radius: 0;\n position: fixed;\n inset: 0;\n}\n\n.spectrum-Modal--fullscreenTakeover_f81956, .spectrum-Modal--fullscreenTakeover_f81956.is-open_f81956 {\n transform: none;\n}\n\n.spectrum-Modal_f81956 {\n background: var(--spectrum-dialog-background-color, var(--spectrum-alias-background-color-default));\n}\n\n.spectrum-Underlay_eb7615 {\n visibility: hidden;\n opacity: 0;\n transition: transform var(--spectrum-global-animation-duration-100, .13s) ease-in-out, opacity var(--spectrum-global-animation-duration-100, .13s) ease-in-out, visibility 0s linear var(--spectrum-global-animation-duration-100, .13s);\n pointer-events: none;\n}\n\n.spectrum-Underlay_eb7615.is-open_eb7615 {\n visibility: visible;\n opacity: .9999;\n pointer-events: auto;\n transition-delay: 0s;\n}\n\n.spectrum-Underlay_eb7615 {\n z-index: 1;\n transition: opacity var(--spectrum-dialog-background-exit-animation-duration, var(--spectrum-global-animation-duration-300)) cubic-bezier(.5, 0, 1, 1) var(--spectrum-dialog-background-exit-animation-delay, var(--spectrum-global-animation-duration-200)), visibility 0s linear calc(var(--spectrum-dialog-background-exit-animation-delay, var(--spectrum-global-animation-duration-200)) + var(--spectrum-dialog-background-exit-animation-duration, var(--spectrum-global-animation-duration-300)));\n position: fixed;\n inset: 0;\n overflow: hidden;\n}\n\n.spectrum-Underlay_eb7615.spectrum-Underlay--transparent_eb7615 {\n background: none;\n transition: none;\n}\n\n.spectrum-Underlay_eb7615.is-open_eb7615 {\n transition: opacity var(--spectrum-dialog-background-entry-animation-duration, var(--spectrum-global-animation-duration-600)) cubic-bezier(0, 0, .4, 1) 0s;\n}\n\n.spectrum-Underlay_eb7615 {\n background: var(--spectrum-dialog-underlay-background-color, var(--spectrum-alias-background-color-modal-overlay));\n}\n\n.spectrum-Popover_6115b8 {\n visibility: hidden;\n opacity: 0;\n transition: transform var(--spectrum-global-animation-duration-100, .13s) ease-in-out, opacity var(--spectrum-global-animation-duration-100, .13s) ease-in-out, visibility 0s linear var(--spectrum-global-animation-duration-100, .13s);\n pointer-events: none;\n}\n\n.spectrum-Popover_6115b8.is-open_6115b8 {\n visibility: visible;\n opacity: .9999;\n pointer-events: auto;\n transition-delay: 0s;\n}\n\n.spectrum-Popover--bottom_6115b8.is-open_6115b8 {\n transform: translateY(var(--spectrum-overlay-positive-transform-distance));\n}\n\n.spectrum-Popover--top_6115b8.is-open_6115b8 {\n transform: translateY(var(--spectrum-overlay-negative-transform-distance));\n}\n\n.spectrum-Popover--right_6115b8.is-open_6115b8 {\n transform: translateX(var(--spectrum-overlay-positive-transform-distance));\n}\n\n.spectrum-Popover--left_6115b8.is-open_6115b8 {\n transform: translateX(var(--spectrum-overlay-negative-transform-distance));\n}\n\n.spectrum-Popover_6115b8 {\n box-sizing: border-box;\n min-width: var(--spectrum-global-dimension-size-400);\n min-height: var(--spectrum-global-dimension-size-400);\n border-style: solid;\n border-width: var(--spectrum-popover-border-size, var(--spectrum-alias-border-size-thin));\n border-radius: var(--spectrum-popover-border-radius, var(--spectrum-alias-border-radius-regular));\n outline: none;\n flex-direction: column;\n display: inline-flex;\n position: absolute;\n}\n\n.spectrum-Popover-tip_6115b8 {\n --spectrum-popover-tip-size: var(--spectrum-popover-tip-width, var(--spectrum-global-dimension-size-250));\n --spectrum-popover-tip-borderWidth: var(--spectrum-popover-border-size, var(--spectrum-alias-border-size-thin));\n position: absolute;\n -webkit-transform: translate(0);\n}\n\n.spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8 {\n stroke-linecap: square;\n stroke-linejoin: miter;\n stroke-width: var(--spectrum-popover-border-size, var(--spectrum-alias-border-size-thin));\n}\n\n.spectrum-Popover--dialog_6115b8 {\n min-width: 270px;\n padding: 30px 29px;\n}\n\n.spectrum-Popover--left_6115b8.spectrum-Popover--withTip_6115b8 {\n margin-right: 13px;\n}\n\n.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8 {\n left: 100%;\n}\n\n.spectrum-Popover--right_6115b8.spectrum-Popover--withTip_6115b8 {\n margin-left: 13px;\n}\n\n.spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8 {\n right: 100%;\n transform: scaleX(-1);\n}\n\n.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8, .spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8 {\n margin-top: calc(var(--spectrum-global-dimension-size-150) * -1);\n top: 50%;\n}\n\n.spectrum-Popover--bottom_6115b8.spectrum-Popover--withTip_6115b8 {\n margin-top: 13px;\n}\n\n.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8 {\n bottom: 100%;\n transform: scaleY(-1);\n}\n\n.spectrum-Popover--top_6115b8.spectrum-Popover--withTip_6115b8 {\n margin-bottom: 13px;\n}\n\n.spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8 {\n top: 100%;\n}\n\n.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8, .spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8 {\n margin-left: calc(var(--spectrum-global-dimension-size-150) * -1);\n left: 50%;\n}\n\n.spectrum-Popover_6115b8 {\n background-color: var(--spectrum-popover-background-color, var(--spectrum-global-color-gray-50));\n border-color: var(--spectrum-popover-border-color, var(--spectrum-alias-border-color-dark));\n filter: drop-shadow(0 var(--spectrum-popover-shadow-offset-y, var(--spectrum-alias-dropshadow-offset-y)) var(--spectrum-popover-shadow-blur, var(--spectrum-alias-dropshadow-blur)) var(--spectrum-popover-shadow-color, var(--spectrum-alias-dropshadow-color)));\n -webkit-filter: drop-shadow(0 var(--spectrum-popover-shadow-offset-y, var(--spectrum-alias-dropshadow-offset-y)) var(--spectrum-popover-shadow-blur, var(--spectrum-alias-dropshadow-blur)) var(--spectrum-popover-shadow-color, var(--spectrum-alias-dropshadow-color)));\n will-change: filter;\n clip-path: inset(-30px);\n}\n\n.spectrum-Popover_6115b8 .spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8 {\n fill: var(--spectrum-popover-background-color, var(--spectrum-global-color-gray-50));\n stroke: var(--spectrum-popover-border-color, var(--spectrum-alias-border-color-dark));\n}\n\n.spectrum-Menu-popover_7ea47c {\n max-width: 320px;\n}\n\n[dir=\"ltr\"] .spectrum-Menu_7ea47c {\n text-align: left;\n}\n\n[dir=\"rtl\"] .spectrum-Menu_7ea47c {\n text-align: right;\n}\n\n.spectrum-Menu_7ea47c {\n box-sizing: border-box;\n padding: var(--spectrum-popover-padding-y, var(--spectrum-global-dimension-size-50)) 0;\n -webkit-user-select: none;\n user-select: none;\n margin: 0;\n list-style-type: none;\n display: block;\n overflow-y: auto;\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c {\n margin-top: var(--spectrum-global-dimension-size-75);\n margin-bottom: var(--spectrum-global-dimension-size-40);\n}\n\n.spectrum-Menu_7ea47c:focus {\n outline: none;\n}\n\n.spectrum-Menu-checkmark_7ea47c {\n opacity: 1;\n padding-top: calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));\n transform: scale(1);\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c {\n border-left: var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25)) solid transparent;\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c {\n border-right: var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25)) solid transparent;\n}\n\n.spectrum-Menu-item_7ea47c {\n cursor: default;\n box-sizing: border-box;\n font-size: var(--spectrum-selectlist-option-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-selectlist-option-text-font-weight, var(--spectrum-global-font-weight-regular));\n margin: 0;\n font-style: normal;\n text-decoration: none;\n position: relative;\n}\n\n.spectrum-Menu-item_7ea47c:focus {\n outline: none;\n}\n\n.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n display: block;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c + .spectrum-Menu-itemLabel_7ea47c, [dir=\"ltr\"] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c + .spectrum-Menu-itemLabel_7ea47c {\n margin-left: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c + .spectrum-Menu-itemLabel_7ea47c, [dir=\"rtl\"] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c + .spectrum-Menu-itemLabel_7ea47c {\n margin-right: var(--spectrum-selectlist-thumbnail-image-padding-x, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Menu-itemLabel_7ea47c {\n line-height: var(--spectrum-global-font-line-height-small, 1.3);\n word-break: break-word;\n grid-area: text;\n}\n\n.spectrum-Menu-itemLabel--wrapping_7ea47c {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.spectrum-Menu-checkmark_7ea47c {\n grid-area: checkmark;\n place-self: flex-start end;\n display: none;\n}\n\n.spectrum-Menu-divider_7ea47c {\n box-sizing: content-box;\n height: var(--spectrum-selectlist-divider-size, var(--spectrum-alias-border-size-thick));\n margin: calc(var(--spectrum-selectlist-divider-padding, 3px) / 2) var(--spectrum-global-dimension-size-150);\n border: none;\n padding: 0;\n overflow: visible;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"ltr\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-450);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-sectionHeading_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-450);\n}\n\n.spectrum-Menu-sectionHeading_7ea47c {\n margin: var(--spectrum-global-dimension-size-75) 0 0 0;\n font-size: var(--spectrum-global-dimension-font-size-100);\n font-weight: var(--spectrum-global-font-weight-bold, 700);\n line-height: var(--spectrum-alias-line-height-medium, var(--spectrum-global-dimension-size-250));\n padding-top: 0;\n padding-bottom: 0;\n display: block;\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c {\n margin: 0;\n display: block;\n}\n\n.spectrum-Menu-itemGrid_7ea47c {\n display: -ms-grid;\n -ms-grid-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);\n grid-template-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);\n -ms-grid-rows: var(--spectrum-selectlist-option-padding-height) 1fr auto var(--spectrum-selectlist-option-padding-height);\n grid-template-rows: var(--spectrum-selectlist-option-padding-height) 1fr auto var(--spectrum-selectlist-option-padding-height);\n grid-template-areas: \". . . . . . .\"\n \". icon text checkmark end keyboard .\"\n \". icon description checkmark end keyboard .\"\n \". . . . . . .\";\n display: grid;\n}\n\n.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c {\n -ms-grid-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x, var(--spectrum-global-dimension-size-150))) auto auto var(--spectrum-global-dimension-size-150);\n grid-template-columns: calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus, var(--spectrum-global-dimension-static-size-25))) auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x, var(--spectrum-global-dimension-size-150))) auto auto var(--spectrum-global-dimension-size-150);\n}\n\n[dir=\"ltr\"] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-125);\n}\n\n[dir=\"rtl\"] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-125);\n}\n\n.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c {\n grid-area: end;\n place-self: flex-start end;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-icon_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-100);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-icon_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-100);\n}\n\n.spectrum-Menu-icon_7ea47c {\n padding-top: var(--spectrum-global-dimension-size-10);\n grid-area: icon;\n}\n\n.spectrum-Menu-description_7ea47c {\n line-height: var(--spectrum-global-font-line-height-small, 1.3);\n font-size: var(--spectrum-global-dimension-size-150);\n grid-area: description;\n}\n\n[dir=\"ltr\"] .spectrum-Menu-keyboard_7ea47c {\n padding-left: var(--spectrum-global-dimension-size-125);\n}\n\n[dir=\"rtl\"] .spectrum-Menu-keyboard_7ea47c {\n padding-right: var(--spectrum-global-dimension-size-125);\n}\n\n.spectrum-Menu-keyboard_7ea47c {\n grid-area: keyboard;\n align-self: flex-start;\n font-family: adobe-clean-ux, adobe-clean, Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Menu_7ea47c {\n --spectrum-heading-subtitle3-text-color: var(--spectrum-global-color-gray-900);\n background-color: var(--spectrum-selectlist-background-color, var(--spectrum-alias-background-color-transparent));\n}\n\n.spectrum-Menu-item_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-selectlist-option-text-color, var(--spectrum-alias-text-color));\n}\n\n[dir=\"ltr\"] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, [dir=\"ltr\"] .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n border-left-color: var(--spectrum-selectlist-option-focus-indicator-color, var(--spectrum-alias-border-color-focus));\n}\n\n[dir=\"rtl\"] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, [dir=\"rtl\"] .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n border-right-color: var(--spectrum-selectlist-option-focus-indicator-color, var(--spectrum-alias-border-color-focus));\n}\n\n.spectrum-Menu-item_7ea47c.focus-ring_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Menu-item_7ea47c.is-hovered_7ea47c, .spectrum-Menu-item_7ea47c:focus, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-hover, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-hover, var(--spectrum-alias-text-color));\n}\n\n.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n color: var(--spectrum-selectlist-option-icon-color-selected, var(--spectrum-alias-icon-color-selected));\n}\n\n.spectrum-Menu-item_7ea47c .is-active_7ea47c, .spectrum-Menu-item_7ea47c:active {\n background-color: var(--spectrum-selectlist-option-background-color-down, var(--spectrum-alias-background-color-hover-overlay));\n}\n\n.spectrum-Menu-item_7ea47c.is-disabled_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-disabled, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-selectlist-option-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n cursor: default;\n background-image: none;\n}\n\n.spectrum-Menu-sectionHeading_7ea47c {\n color: var(--spectrum-heading-subtitle3-text-color, var(--spectrum-global-color-gray-700));\n}\n\n.spectrum-Menu-divider_7ea47c {\n background-color: var(--spectrum-global-color-gray-300);\n}\n\n.spectrum-Menu-description_7ea47c {\n color: var(--spectrum-global-color-gray-700);\n}\n\n@media (forced-colors: active) {\n .spectrum-Menu-divider_7ea47c {\n background-color: CanvasText;\n forced-color-adjust: none;\n }\n\n .spectrum-Menu-item_7ea47c {\n forced-color-adjust: none;\n --spectrum-heading-subtitle3-text-color: ButtonText;\n --spectrum-selectlist-background-color: ButtonFace;\n --spectrum-selectlist-divider-color: ButtonText;\n --spectrum-selectlist-option-background-color: ButtonFace;\n --spectrum-selectlist-option-background-color-disabled: ButtonFace;\n --spectrum-selectlist-option-background-color-down: ButtonFace;\n --spectrum-selectlist-option-background-color-hover: Highlight;\n --spectrum-selectlist-option-background-color-key-focus: Highlight;\n --spectrum-selectlist-option-focus-indicator-color: Highlight;\n --spectrum-selectlist-option-icon-color-selected: Highlight;\n --spectrum-selectlist-option-text-color: ButtonText;\n --spectrum-selectlist-option-text-color-disabled: GrayText;\n --spectrum-selectlist-option-text-color-hover: HighlightText;\n --spectrum-selectlist-option-text-color-key-focus: HighlightText;\n --spectrum-alias-border-color-focus: Highlight;\n }\n\n .spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c {\n color: var(--spectrum-selectlist-option-text-color, var(--spectrum-alias-text-color));\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c, .spectrum-Menu-item_7ea47c:focus, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c {\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c {\n color: HighlightText;\n }\n\n .spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c, .spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c {\n color: var(--spectrum-selectlist-option-text-color-key-focus, var(--spectrum-alias-text-color));\n background-color: var(--spectrum-selectlist-option-background-color-key-focus, var(--spectrum-alias-background-color-hover-overlay));\n }\n}\n\n.spectrum-Breadcrumbs_3fe6e8 {\n flex-wrap: nowrap;\n flex: 1 0;\n justify-content: flex-start;\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n}\n\n.spectrum-Breadcrumbs-itemSeparator_3fe6e8 {\n top: var(--spectrum-global-dimension-size-10);\n width: var(--spectrum-breadcrumb-ui-icon-width, var(--spectrum-global-dimension-size-75));\n height: var(--spectrum-breadcrumb-ui-icon-height, var(--spectrum-global-dimension-size-100));\n opacity: 1;\n position: relative;\n transform: scale(1);\n}\n\n.spectrum-Breadcrumbs-itemSeparator_3fe6e8.is-reversed_3fe6e8 {\n transform: scale(-1);\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 {\n box-sizing: border-box;\n height: var(--spectrum-breadcrumb-list-height, var(--spectrum-global-dimension-size-400));\n white-space: nowrap;\n font-size: var(--spectrum-breadcrumb-item-text-size, var(--spectrum-global-dimension-font-size-200));\n font-weight: var(--spectrum-breadcrumb-item-text-font-weight, var(--spectrum-alias-body-text-font-weight));\n line-height: var(--spectrum-breadcrumb-item-text-line-height, var(--spectrum-alias-body-text-line-height));\n justify-content: flex-start;\n align-items: center;\n display: inline-flex;\n position: relative;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8:last-of-type {\n font-weight: var(--spectrum-breadcrumb-title-text-font-weight, var(--spectrum-alias-body-text-font-weight-strong));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemSeparator_3fe6e8 {\n display: none;\n}\n\n[dir=\"ltr\"] .spectrum-Breadcrumbs-item_3fe6e8 > .spectrum-ActionButton_3fe6e8 {\n margin-right: var(--spectrum-breadcrumb-button-gap, var(--spectrum-global-dimension-static-size-10));\n}\n\n[dir=\"rtl\"] .spectrum-Breadcrumbs-item_3fe6e8 > .spectrum-ActionButton_3fe6e8 {\n margin-left: var(--spectrum-breadcrumb-button-gap, var(--spectrum-global-dimension-static-size-10));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8:last-child {\n overflow: hidden;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8:last-child .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n[dir=\"ltr\"] .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n margin-right: var(--spectrum-breadcrumb-item-margin-right, var(--spectrum-global-dimension-static-size-10));\n}\n\n[dir=\"rtl\"] .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n margin-left: var(--spectrum-breadcrumb-item-margin-right, var(--spectrum-global-dimension-static-size-10));\n}\n\n.spectrum-Breadcrumbs-itemLink_3fe6e8 {\n cursor: default;\n line-height: var(--spectrum-breadcrumb-list-height, var(--spectrum-global-dimension-size-400));\n vertical-align: middle;\n padding: 0 var(--spectrum-breadcrumb-item-padding-x, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-breadcrumb-list-height, var(--spectrum-global-dimension-size-400));\n border-radius: var(--spectrum-breadcrumb-item-border-radius, var(--spectrum-alias-border-radius-regular));\n font-size: inherit;\n outline: none;\n margin-top: 0;\n margin-bottom: 0;\n text-decoration: none;\n position: relative;\n}\n\n.spectrum-Breadcrumbs-itemLink_3fe6e8[href], .spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"] {\n cursor: pointer;\n}\n\n.spectrum-Breadcrumbs-itemLink_3fe6e8[href].is-hovered_3fe6e8, .spectrum-Breadcrumbs-itemLink_3fe6e8[href].focus-ring_3fe6e8, .spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"].is-hovered_3fe6e8, .spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"].focus-ring_3fe6e8 {\n text-decoration: underline;\n}\n\n[dir=\"ltr\"] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before, [dir=\"ltr\"] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before {\n left: 0;\n}\n\n[dir=\"rtl\"] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before, [dir=\"rtl\"] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before {\n right: 0;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before, .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-width: var(--spectrum-breadcrumb-item-border-size-key-focus, var(--spectrum-alias-border-size-thick));\n border-radius: var(--spectrum-breadcrumb-item-border-radius, var(--spectrum-alias-border-radius-regular));\n content: \"\";\n pointer-events: none;\n border-style: solid;\n display: block;\n position: absolute;\n top: 0;\n}\n\n.spectrum-Breadcrumbs--small_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8 {\n font-size: var(--spectrum-breadcrumb-multiline-item-text-size, var(--spectrum-global-dimension-font-size-75));\n}\n\n.spectrum-Breadcrumbs--medium_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8 {\n font-size: var(--spectrum-breadcrumb-compact-item-text-size, var(--spectrum-global-dimension-font-size-100));\n}\n\n.spectrum-Breadcrumbs--multiline_3fe6e8 {\n flex-wrap: wrap;\n}\n\n.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type {\n height: auto;\n margin-top: var(--spectrum-breadcrumb-multiline-title-margin-top, var(--spectrum-global-dimension-static-size-0));\n font-size: var(--spectrum-breadcrumb-multiline-title-text-size, var(--spectrum-global-dimension-font-size-300));\n font-weight: var(--spectrum-breadcrumb-multiline-title-text-font-weight, var(--spectrum-alias-body-text-font-weight-strong));\n line-height: var(--spectrum-breadcrumb-multiline-title-text-line-height, var(--spectrum-alias-heading-text-line-height));\n flex: 0 100%;\n}\n\n.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n height: auto;\n text-decoration: none;\n}\n\n.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Heading--pageTitle_3fe6e8 {\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 {\n color: var(--spectrum-breadcrumb-text-color, var(--spectrum-alias-label-text-color));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n color: var(--spectrum-breadcrumb-item-text-color-drop, var(--spectrum-alias-text-color-hover));\n background-color: var(--spectrum-breadcrumb-item-background-color-drop, var(--spectrum-alias-highlight-selected));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before {\n border-color: var(--spectrum-breadcrumb-item-border-color-drop, var(--spectrum-global-color-blue-500));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemSeparator_3fe6e8 {\n color: var(--spectrum-breadcrumb-ui-icon-color, var(--spectrum-global-color-gray-500));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8 {\n color: inherit;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8 {\n color: var(--spectrum-breadcrumb-text-color-hover, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8 {\n color: var(--spectrum-breadcrumb-text-color-key-focus, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before {\n border-color: var(--spectrum-breadcrumb-item-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active {\n color: var(--spectrum-breadcrumb-text-color-down, var(--spectrum-alias-text-color-down));\n border-bottom: 0;\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8 {\n color: var(--spectrum-label-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8, .spectrum-Breadcrumbs-item_3fe6e8:last-of-type {\n color: var(--spectrum-breadcrumb-text-color-down, var(--spectrum-alias-text-color-down));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 ~ .spectrum-Breadcrumb_3fe6e8:last-of-type {\n color: var(--spectrum-breadcrumb-text-color, var(--spectrum-alias-label-text-color));\n}\n\n.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8 {\n color: var(--spectrum-breadcrumb-text-color-down, var(--spectrum-alias-text-color-down));\n border-bottom: 0;\n}\n\n@media (forced-colors: active) {\n .spectrum-Breadcrumbs-item_3fe6e8 {\n --spectrum-breadcrumb-item-border-color-drop: LinkText;\n --spectrum-breadcrumb-item-border-color-key-focus: CanvasText;\n --spectrum-breadcrumb-item-text-color-drop: LinkText;\n --spectrum-breadcrumb-text-color: LinkText;\n --spectrum-breadcrumb-text-color-down: CanvasText;\n --spectrum-breadcrumb-text-color-hover: LinkText;\n --spectrum-breadcrumb-text-color-key-focus: LinkText;\n --spectrum-breadcrumb-ui-icon-color: CanvasText;\n --spectrum-label-text-color-disabled: GrayText;\n }\n\n .spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8, .spectrum-Breadcrumbs-item_3fe6e8:last-of-type, .spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8, .spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8 {\n color: var(--spectrum-breadcrumb-text-color-down, var(--spectrum-alias-text-color-down));\n }\n\n .spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active {\n color: var(--spectrum-breadcrumb-text-color, var(--spectrum-alias-label-text-color));\n }\n\n .spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8:active {\n color: var(--spectrum-label-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n }\n}\n\n.spectrum-Icon_368b34, .spectrum-UIIcon_368b34 {\n color: inherit;\n fill: currentColor;\n pointer-events: none;\n display: inline-block;\n}\n\n.spectrum-Icon_368b34:not(:root), .spectrum-UIIcon_368b34:not(:root) {\n overflow: hidden;\n}\n\n@media (forced-colors: active) {\n .spectrum-Icon_368b34, .spectrum-UIIcon_368b34 {\n forced-color-adjust: auto;\n }\n}\n\n.spectrum-Icon--sizeXXS_368b34, .spectrum-Icon--sizeXXS_368b34 img, .spectrum-Icon--sizeXXS_368b34 svg {\n height: calc(var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225)) / 2);\n width: calc(var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225)) / 2);\n}\n\n.spectrum-Icon--sizeXS_368b34, .spectrum-Icon--sizeXS_368b34 img, .spectrum-Icon--sizeXS_368b34 svg {\n height: calc(var(--spectrum-global-dimension-size-300) / 2);\n width: calc(var(--spectrum-global-dimension-size-300) / 2);\n}\n\n.spectrum-Icon--sizeS_368b34, .spectrum-Icon--sizeS_368b34 img, .spectrum-Icon--sizeS_368b34 svg {\n height: var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225));\n width: var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-Icon--sizeM_368b34, .spectrum-Icon--sizeM_368b34 img, .spectrum-Icon--sizeM_368b34 svg {\n height: var(--spectrum-global-dimension-size-300);\n width: var(--spectrum-global-dimension-size-300);\n}\n\n.spectrum-Icon--sizeL_368b34, .spectrum-Icon--sizeL_368b34 img, .spectrum-Icon--sizeL_368b34 svg {\n height: calc(var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225)) * 2);\n width: calc(var(--spectrum-alias-workflow-icon-size, var(--spectrum-global-dimension-size-225)) * 2);\n}\n\n.spectrum-Icon--sizeXL_368b34, .spectrum-Icon--sizeXL_368b34 img, .spectrum-Icon--sizeXL_368b34 svg {\n height: calc(var(--spectrum-global-dimension-size-300) * 2);\n width: calc(var(--spectrum-global-dimension-size-300) * 2);\n}\n\n.spectrum-Icon--sizeXXL_368b34, .spectrum-Icon--sizeXXL_368b34 img, .spectrum-Icon--sizeXXL_368b34 svg {\n height: calc(var(--spectrum-global-dimension-size-300) * 3);\n width: calc(var(--spectrum-global-dimension-size-300) * 3);\n}\n\n.spectrum--medium_368b34 .spectrum-UIIcon--large_368b34 {\n display: none;\n}\n\n.spectrum--medium_368b34 .spectrum-UIIcon--medium_368b34 {\n display: inline;\n}\n\n.spectrum--large_368b34 .spectrum-UIIcon--medium_368b34 {\n display: none;\n}\n\n.spectrum--large_368b34 .spectrum-UIIcon--large_368b34 {\n display: inline;\n}\n\n.spectrum--large_368b34 {\n --ui-icon-large-display: block;\n --ui-icon-medium-display: none;\n}\n\n.spectrum--medium_368b34 {\n --ui-icon-medium-display: block;\n --ui-icon-large-display: none;\n}\n\n.spectrum-UIIcon--large_368b34 {\n display: var(--ui-icon-large-display);\n}\n\n.spectrum-UIIcon--medium_368b34 {\n display: var(--ui-icon-medium-display);\n}\n\n.spectrum-UIIcon-AlertMedium_368b34 {\n width: var(--spectrum-icon-alert-medium-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-alert-medium-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-AlertSmall_368b34 {\n width: var(--spectrum-icon-alert-small-width, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-icon-alert-small-height, var(--spectrum-global-dimension-size-175));\n}\n\n.spectrum-UIIcon-ArrowDownSmall_368b34 {\n width: var(--spectrum-icon-arrow-down-small-width, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-icon-arrow-down-small-height);\n}\n\n.spectrum-UIIcon-ArrowLeftMedium_368b34 {\n width: var(--spectrum-icon-arrow-left-medium-width, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-icon-arrow-left-medium-height);\n}\n\n.spectrum-UIIcon-Asterisk_368b34 {\n width: var(--spectrum-fieldlabel-asterisk-size, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-fieldlabel-asterisk-size, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-UIIcon-CheckmarkMedium_368b34 {\n width: var(--spectrum-icon-checkmark-medium-width);\n height: var(--spectrum-icon-checkmark-medium-height);\n}\n\n.spectrum-UIIcon-CheckmarkSmall_368b34 {\n width: var(--spectrum-icon-checkmark-small-width);\n height: var(--spectrum-icon-checkmark-small-height);\n}\n\n.spectrum-UIIcon-ChevronDownMedium_368b34 {\n width: var(--spectrum-icon-chevron-down-medium-width);\n height: var(--spectrum-icon-chevron-down-medium-height, var(--spectrum-global-dimension-size-75));\n}\n\n.spectrum-UIIcon-ChevronDownSmall_368b34 {\n width: var(--spectrum-icon-chevron-down-small-width, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-icon-chevron-down-small-height, var(--spectrum-global-dimension-size-75));\n}\n\n.spectrum-UIIcon-ChevronLeftLarge_368b34 {\n width: var(--spectrum-icon-chevron-left-large-width);\n height: var(--spectrum-icon-chevron-left-large-height, var(--spectrum-global-dimension-size-200));\n}\n\n.spectrum-UIIcon-ChevronLeftMedium_368b34 {\n width: var(--spectrum-icon-chevron-left-medium-width, var(--spectrum-global-dimension-size-75));\n height: var(--spectrum-icon-chevron-left-medium-height);\n}\n\n.spectrum-UIIcon-ChevronRightLarge_368b34 {\n width: var(--spectrum-icon-chevron-right-large-width);\n height: var(--spectrum-icon-chevron-right-large-height, var(--spectrum-global-dimension-size-200));\n}\n\n.spectrum-UIIcon-ChevronRightMedium_368b34 {\n width: var(--spectrum-icon-chevron-right-medium-width, var(--spectrum-global-dimension-size-75));\n height: var(--spectrum-icon-chevron-right-medium-height);\n}\n\n.spectrum-UIIcon-ChevronRightSmall_368b34 {\n width: var(--spectrum-icon-chevron-right-small-width, var(--spectrum-global-dimension-size-75));\n height: var(--spectrum-icon-chevron-right-small-height, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-UIIcon-ChevronUpSmall_368b34 {\n width: var(--spectrum-icon-chevron-up-small-width, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-icon-chevron-up-small-height, var(--spectrum-global-dimension-size-75));\n}\n\n.spectrum-UIIcon-CornerTriangle_368b34 {\n width: var(--spectrum-icon-cornertriangle-width, var(--spectrum-global-dimension-size-65));\n height: var(--spectrum-icon-cornertriangle-height, var(--spectrum-global-dimension-size-65));\n}\n\n.spectrum-UIIcon-CrossLarge_368b34 {\n width: var(--spectrum-icon-cross-large-width);\n height: var(--spectrum-icon-cross-large-height);\n}\n\n.spectrum-UIIcon-CrossMedium_368b34 {\n width: var(--spectrum-icon-cross-medium-width, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-icon-cross-medium-height, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-UIIcon-CrossSmall_368b34 {\n width: var(--spectrum-icon-cross-small-width, var(--spectrum-global-dimension-size-100));\n height: var(--spectrum-icon-cross-small-height, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-UIIcon-DashSmall_368b34 {\n width: var(--spectrum-icon-dash-small-width);\n height: var(--spectrum-icon-dash-small-height);\n}\n\n.spectrum-UIIcon-DoubleGripper_368b34 {\n width: var(--spectrum-icon-doublegripper-width, var(--spectrum-global-dimension-size-200));\n height: var(--spectrum-icon-doublegripper-height, var(--spectrum-global-dimension-size-50));\n}\n\n.spectrum-UIIcon-FolderBreadcrumb_368b34 {\n width: var(--spectrum-icon-folderbreadcrumb-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-folderbreadcrumb-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-HelpMedium_368b34 {\n width: var(--spectrum-icon-info-medium-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-info-medium-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-HelpSmall_368b34 {\n width: var(--spectrum-icon-info-small-width, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-icon-info-small-height, var(--spectrum-global-dimension-size-175));\n}\n\n.spectrum-UIIcon-InfoMedium_368b34 {\n width: var(--spectrum-icon-info-medium-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-info-medium-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-InfoSmall_368b34 {\n width: var(--spectrum-icon-info-small-width, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-icon-info-small-height, var(--spectrum-global-dimension-size-175));\n}\n\n.spectrum-UIIcon-ListGripper_368b34 {\n width: var(--spectrum-global-dimension-size-65);\n height: var(--spectrum-global-dimension-size-150);\n}\n\n.spectrum-UIIcon-Magnifier_368b34 {\n width: var(--spectrum-icon-magnifier-width, var(--spectrum-global-dimension-size-200));\n height: var(--spectrum-icon-magnifier-height, var(--spectrum-global-dimension-size-200));\n}\n\n.spectrum-UIIcon-SkipLeft_368b34 {\n width: var(--spectrum-icon-skip-left-width);\n height: var(--spectrum-icon-skip-left-height);\n}\n\n.spectrum-UIIcon-SkipRight_368b34 {\n width: var(--spectrum-icon-skip-right-width);\n height: var(--spectrum-icon-skip-right-height);\n}\n\n.spectrum-UIIcon-Star_368b34 {\n width: var(--spectrum-icon-star-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-star-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-StarOutline_368b34 {\n width: var(--spectrum-icon-star-outline-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-star-outline-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-SuccessMedium_368b34 {\n width: var(--spectrum-icon-success-medium-width, var(--spectrum-global-dimension-size-225));\n height: var(--spectrum-icon-success-medium-height, var(--spectrum-global-dimension-size-225));\n}\n\n.spectrum-UIIcon-SuccessSmall_368b34 {\n width: var(--spectrum-icon-success-small-width, var(--spectrum-global-dimension-size-175));\n height: var(--spectrum-icon-success-small-height, var(--spectrum-global-dimension-size-175));\n}\n\n.spectrum-UIIcon-TripleGripper_368b34 {\n width: var(--spectrum-icon-triplegripper-width);\n height: var(--spectrum-icon-triplegripper-height, var(--spectrum-global-dimension-size-85));\n}\n\n.spectrum_b37d53 {\n background-color: var(--spectrum-alias-background-color-default, var(--spectrum-global-color-gray-100));\n -webkit-tap-highlight-color: #0000;\n}\n\n.spectrum_2a241c {\n font-family: adobe-clean-ux, adobe-clean, Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c:lang(ar) {\n font-family: adobe-arabic, myriad-arabic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c:lang(he) {\n font-family: adobe-hebrew, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c:lang(zh-Hans), .spectrum_2a241c:lang(zh) {\n font-family: adobe-clean-han-simplified-c, SimSun, Heiti SC Light, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c:lang(ko) {\n font-family: adobe-clean-han-korean, Malgun Gothic, Apple Gothic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c:lang(ja) {\n font-family: adobe-clean-han-japanese, Yu Gothic, メイリオ, ヒラギノ角ゴ Pro W3, Hiragino Kaku Gothic Pro W3, Osaka, MSPゴシック, MS PGothic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum_2a241c {\n font-size: var(--spectrum-alias-font-size-default, var(--spectrum-global-dimension-font-size-100));\n color: var(--spectrum-global-color-gray-800);\n}\n\n.spectrum_2a241c, .spectrum_2a241c.spectrum-Body_2a241c, .spectrum-Body_2a241c {\n font-size: var(--spectrum-body-4-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-body-4-text-font-weight, var(--spectrum-alias-body-text-font-weight));\n line-height: var(--spectrum-body-4-text-line-height, var(--spectrum-alias-body-text-line-height));\n font-style: var(--spectrum-body-4-text-font-style, var(--spectrum-global-font-style-regular));\n}\n\n.spectrum-Body--italic_2a241c {\n font-style: var(--spectrum-body-4-emphasis-text-font-style, var(--spectrum-global-font-style-italic));\n}\n\n.spectrum-Button_e2d99e, .spectrum-ActionButton_e2d99e, .spectrum-LogicButton_e2d99e, .spectrum-FieldButton_e2d99e, .spectrum-ClearButton_e2d99e {\n font-family: adobe-clean-ux, adobe-clean, Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e:lang(ar), .spectrum-ActionButton_e2d99e:lang(ar), .spectrum-LogicButton_e2d99e:lang(ar), .spectrum-FieldButton_e2d99e:lang(ar), .spectrum-ClearButton_e2d99e:lang(ar) {\n font-family: adobe-arabic, myriad-arabic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e:lang(he), .spectrum-ActionButton_e2d99e:lang(he), .spectrum-LogicButton_e2d99e:lang(he), .spectrum-FieldButton_e2d99e:lang(he), .spectrum-ClearButton_e2d99e:lang(he) {\n font-family: adobe-hebrew, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e:lang(zh-Hans), .spectrum-ActionButton_e2d99e:lang(zh-Hans), .spectrum-LogicButton_e2d99e:lang(zh-Hans), .spectrum-FieldButton_e2d99e:lang(zh-Hans), .spectrum-ClearButton_e2d99e:lang(zh-Hans), .spectrum-Button_e2d99e:lang(zh), .spectrum-ActionButton_e2d99e:lang(zh), .spectrum-LogicButton_e2d99e:lang(zh), .spectrum-FieldButton_e2d99e:lang(zh), .spectrum-ClearButton_e2d99e:lang(zh) {\n font-family: adobe-clean-han-simplified-c, SimSun, Heiti SC Light, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e:lang(ko), .spectrum-ActionButton_e2d99e:lang(ko), .spectrum-LogicButton_e2d99e:lang(ko), .spectrum-FieldButton_e2d99e:lang(ko), .spectrum-ClearButton_e2d99e:lang(ko) {\n font-family: adobe-clean-han-korean, Malgun Gothic, Apple Gothic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e:lang(ja), .spectrum-ActionButton_e2d99e:lang(ja), .spectrum-LogicButton_e2d99e:lang(ja), .spectrum-FieldButton_e2d99e:lang(ja), .spectrum-ClearButton_e2d99e:lang(ja) {\n font-family: adobe-clean-han-japanese, Yu Gothic, メイリオ, ヒラギノ角ゴ Pro W3, Hiragino Kaku Gothic Pro W3, Osaka, MSPゴシック, MS PGothic, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;\n}\n\n.spectrum-Button_e2d99e, .spectrum-ActionButton_e2d99e, .spectrum-LogicButton_e2d99e, .spectrum-FieldButton_e2d99e, .spectrum-ClearButton_e2d99e {\n --spectrum-focus-ring-border-radius: var(--spectrum-textfield-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-focus-ring-gap: var(--spectrum-alias-input-focusring-gap);\n --spectrum-focus-ring-size: var(--spectrum-alias-input-focusring-size);\n --spectrum-focus-ring-border-size: 0px;\n --spectrum-focus-ring-color: var(--spectrum-high-contrast-focus-ring-color, var(--spectrum-alias-focus-ring-color, var(--spectrum-alias-focus-color)));\n}\n\n.spectrum-Button_e2d99e:after, .spectrum-ActionButton_e2d99e:after, .spectrum-LogicButton_e2d99e:after, .spectrum-FieldButton_e2d99e:after, .spectrum-ClearButton_e2d99e:after {\n border-radius: calc(var(--spectrum-focus-ring-border-radius) + var(--spectrum-focus-ring-gap));\n content: \"\";\n margin: calc(-1 * var(--spectrum-focus-ring-border-size));\n pointer-events: none;\n transition: box-shadow var(--spectrum-global-animation-duration-100, .13s) ease-out, margin var(--spectrum-global-animation-duration-100, .13s) ease-out;\n display: block;\n position: absolute;\n inset: 0;\n}\n\n.spectrum-Button_e2d99e.focus-ring_e2d99e:after, .spectrum-ActionButton_e2d99e.focus-ring_e2d99e:after, .spectrum-LogicButton_e2d99e.focus-ring_e2d99e:after, .spectrum-FieldButton_e2d99e.focus-ring_e2d99e:after, .spectrum-ClearButton_e2d99e.focus-ring_e2d99e:after {\n margin: calc(var(--spectrum-focus-ring-gap) * -1 - var(--spectrum-focus-ring-border-size));\n box-shadow: 0 0 0 var(--spectrum-focus-ring-size) var(--spectrum-focus-ring-color);\n}\n\n.spectrum-FieldButton--quiet_e2d99e:after {\n border-radius: 0;\n}\n\n.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e:after {\n margin: 0 0 calc(var(--spectrum-focus-ring-gap) * -1 - var(--spectrum-focus-ring-border-size)) 0;\n box-shadow: 0 var(--spectrum-focus-ring-size) 0 var(--spectrum-focus-ring-color);\n}\n\n.spectrum-Button_e2d99e, .spectrum-ActionButton_e2d99e, .spectrum-LogicButton_e2d99e, .spectrum-FieldButton_e2d99e, .spectrum-ClearButton_e2d99e {\n box-sizing: border-box;\n border-radius: var(--spectrum-button-border-radius);\n border-style: solid;\n border-width: var(--spectrum-button-border-width);\n --spectrum-focus-ring-border-radius: var(--spectrum-button-border-radius);\n --spectrum-focus-ring-border-size: var(--spectrum-button-border-width);\n --spectrum-focus-ring-gap: var(--spectrum-alias-focus-ring-gap, var(--spectrum-global-dimension-static-size-25));\n --spectrum-focus-ring-size: var(--spectrum-button-primary-focus-ring-size-key-focus, var(--spectrum-alias-focus-ring-size));\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n vertical-align: top;\n transition: background var(--spectrum-global-animation-duration-100, .13s) ease-out, border-color var(--spectrum-global-animation-duration-100, .13s) ease-out, color var(--spectrum-global-animation-duration-100, .13s) ease-out, box-shadow var(--spectrum-global-animation-duration-100, .13s) ease-out;\n -webkit-user-select: none;\n user-select: none;\n -ms-touch-action: none;\n touch-action: none;\n cursor: default;\n isolation: isolate;\n justify-content: center;\n align-items: center;\n margin: 0;\n line-height: 1.3;\n text-decoration: none;\n display: inline-flex;\n position: relative;\n overflow: visible;\n}\n\nbutton.spectrum-Button_e2d99e, button.spectrum-ActionButton_e2d99e, button.spectrum-LogicButton_e2d99e, button.spectrum-FieldButton_e2d99e, button.spectrum-ClearButton_e2d99e {\n -webkit-appearance: button;\n}\n\n.spectrum-Button_e2d99e:focus, .spectrum-ActionButton_e2d99e:focus, .spectrum-LogicButton_e2d99e:focus, .spectrum-FieldButton_e2d99e:focus, .spectrum-ClearButton_e2d99e:focus {\n outline: none;\n}\n\n.spectrum-Button_e2d99e.focus-ring_e2d99e, .spectrum-ActionButton_e2d99e.focus-ring_e2d99e, .spectrum-LogicButton_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton_e2d99e.focus-ring_e2d99e, .spectrum-ClearButton_e2d99e.focus-ring_e2d99e {\n z-index: 3;\n}\n\n.spectrum-Button_e2d99e::-moz-focus-inner, .spectrum-ActionButton_e2d99e::-moz-focus-inner, .spectrum-LogicButton_e2d99e::-moz-focus-inner, .spectrum-FieldButton_e2d99e::-moz-focus-inner, .spectrum-ClearButton_e2d99e::-moz-focus-inner {\n border: 0;\n margin-top: -2px;\n margin-bottom: -2px;\n padding: 0;\n}\n\n.spectrum-Button_e2d99e:disabled, .spectrum-ActionButton_e2d99e:disabled, .spectrum-LogicButton_e2d99e:disabled, .spectrum-FieldButton_e2d99e:disabled, .spectrum-ClearButton_e2d99e:disabled {\n cursor: default;\n}\n\n.spectrum-Button_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e, .spectrum-LogicButton_e2d99e .spectrum-Icon_e2d99e, .spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e, .spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e {\n max-height: 100%;\n transition: background var(--spectrum-global-animation-duration-100, .13s) ease-out, fill var(--spectrum-global-animation-duration-100, .13s) ease-out;\n box-sizing: initial;\n flex-shrink: 0;\n order: 0;\n}\n\n.spectrum-Button_e2d99e {\n --spectrum-button-border-radius: var(--spectrum-button-primary-border-radius, var(--spectrum-alias-border-radius-large));\n --spectrum-button-border-width: var(--spectrum-button-primary-border-size, var(--spectrum-alias-border-size-thick));\n min-height: var(--spectrum-button-primary-height, var(--spectrum-alias-single-line-height));\n height: 0%;\n min-width: var(--spectrum-button-primary-min-width);\n padding: var(--spectrum-global-dimension-size-50) calc(var(--spectrum-button-primary-padding-x, var(--spectrum-global-dimension-size-200)) - var(--spectrum-button-primary-border-size, var(--spectrum-alias-border-size-thick)));\n padding-bottom: calc(var(--spectrum-global-dimension-size-50) + 1px);\n padding-top: calc(var(--spectrum-global-dimension-size-50) - 1px);\n font-size: var(--spectrum-button-primary-text-size, var(--spectrum-alias-pill-button-text-size));\n font-weight: var(--spectrum-button-primary-text-font-weight, var(--spectrum-global-font-weight-bold));\n border-style: solid;\n}\n\n.spectrum-Button_e2d99e.is-hovered_e2d99e, .spectrum-Button_e2d99e:active {\n box-shadow: none;\n}\n\n[dir=\"ltr\"] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e + .spectrum-Button-label_e2d99e {\n margin-left: var(--spectrum-button-primary-text-gap, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e + .spectrum-Button-label_e2d99e, [dir=\"ltr\"] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e + .spectrum-Icon_e2d99e {\n margin-right: var(--spectrum-button-primary-text-gap, var(--spectrum-global-dimension-size-100));\n}\n\n[dir=\"rtl\"] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e + .spectrum-Icon_e2d99e {\n margin-left: var(--spectrum-button-primary-text-gap, var(--spectrum-global-dimension-size-100));\n}\n\n.spectrum-Button_e2d99e.spectrum-Button--iconOnly_e2d99e {\n min-width: unset;\n padding: var(--spectrum-global-dimension-size-65);\n}\n\na.spectrum-Button_e2d99e, a.spectrum-ActionButton_e2d99e {\n -webkit-appearance: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n\n.spectrum-ActionButton_e2d99e {\n height: var(--spectrum-actionbutton-height, var(--spectrum-alias-single-line-height));\n min-width: var(--spectrum-actionbutton-min-width, var(--spectrum-global-dimension-size-400));\n --spectrum-button-border-radius: var(--spectrum-actionbutton-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-button-border-width: var(--spectrum-actionbutton-border-size, var(--spectrum-alias-border-size-thin));\n font-size: var(--spectrum-actionbutton-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-actionbutton-text-font-weight, var(--spectrum-alias-body-text-font-weight));\n padding: 0;\n position: relative;\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e {\n padding-left: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e {\n padding-right: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e {\n padding-right: var(--spectrum-actionbutton-text-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e {\n padding-left: var(--spectrum-actionbutton-text-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e + .spectrum-ActionButton-label_e2d99e {\n padding-left: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e + .spectrum-ActionButton-label_e2d99e, [dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden]) + .spectrum-Icon_e2d99e {\n padding-right: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden]) + .spectrum-Icon_e2d99e {\n padding-left: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child, [dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e + .spectrum-ActionButton-label_e2d99e:last-child {\n padding-left: var(--spectrum-actionbutton-text-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child, [dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e + .spectrum-ActionButton-label_e2d99e:last-child {\n padding-right: var(--spectrum-actionbutton-text-padding-x, var(--spectrum-global-dimension-size-150));\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child, [dir=\"ltr\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e + .spectrum-Icon_e2d99e:last-child {\n padding-right: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child, [dir=\"rtl\"] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e + .spectrum-Icon_e2d99e:last-child {\n padding-left: var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85));\n}\n\n[dir=\"ltr\"] .spectrum-ActionButton-hold_e2d99e {\n right: var(--spectrum-actionbutton-hold-icon-padding-right, var(--spectrum-global-dimension-size-40));\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton-hold_e2d99e {\n left: var(--spectrum-actionbutton-hold-icon-padding-right, var(--spectrum-global-dimension-size-40));\n}\n\n.spectrum-ActionButton-hold_e2d99e {\n bottom: var(--spectrum-actionbutton-hold-icon-padding-bottom, var(--spectrum-global-dimension-size-40));\n position: absolute;\n}\n\n[dir=\"rtl\"] .spectrum-ActionButton-hold_e2d99e {\n transform: rotate(90deg);\n}\n\n.spectrum-ActionButton-label_e2d99e, .spectrum-Button-label_e2d99e {\n -ms-grid-row-align: center;\n text-align: center;\n width: 100%;\n order: 1;\n place-self: center;\n}\n\n.spectrum-ActionButton-label_e2d99e:empty, .spectrum-Button-label_e2d99e:empty {\n display: none;\n}\n\n.spectrum-ActionButton-label_e2d99e {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.spectrum-ActionButton--quiet_e2d99e {\n border-width: var(--spectrum-actionbutton-quiet-border-size, var(--spectrum-alias-border-size-thin));\n border-radius: var(--spectrum-actionbutton-quiet-border-radius, var(--spectrum-alias-border-radius-regular));\n font-size: var(--spectrum-actionbutton-quiet-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-actionbutton-quiet-text-font-weight, var(--spectrum-alias-body-text-font-weight));\n}\n\n.spectrum-LogicButton_e2d99e {\n height: var(--spectrum-logicbutton-and-height, 24px);\n padding: var(--spectrum-logicbutton-and-padding-x, var(--spectrum-global-dimension-size-100));\n --spectrum-button-border-width: var(--spectrum-logicbutton-and-border-size, var(--spectrum-alias-border-size-thick));\n --spectrum-button-border-radius: var(--spectrum-logicbutton-and-border-radius, var(--spectrum-alias-border-radius-regular));\n font-size: var(--spectrum-logicbutton-and-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-logicbutton-and-text-font-weight, var(--spectrum-global-font-weight-bold));\n line-height: 0;\n}\n\n.spectrum-FieldButton_e2d99e {\n height: var(--spectrum-dropdown-height, var(--spectrum-global-dimension-size-400));\n padding: 0 var(--spectrum-dropdown-padding-x, var(--spectrum-global-dimension-size-150));\n font-family: inherit;\n font-weight: 400;\n font-size: var(--spectrum-dropdown-text-size, var(--spectrum-alias-font-size-default));\n -webkit-font-smoothing: initial;\n cursor: default;\n --spectrum-focus-ring-gap: var(--spectrum-alias-input-focusring-gap);\n --spectrum-focus-ring-size: var(--spectrum-alias-input-focusring-size);\n padding-top: 0;\n padding-bottom: 0;\n padding-left: var(--spectrum-dropdown-padding-x, var(--spectrum-global-dimension-size-150));\n padding-right: var(--spectrum-dropdown-padding-x, var(--spectrum-global-dimension-size-150));\n --spectrum-button-border-width: var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-button-border-radius: var(--spectrum-alias-border-radius-regular, var(--spectrum-global-dimension-size-50));\n transition: background-color var(--spectrum-global-animation-duration-100, .13s), box-shadow var(--spectrum-global-animation-duration-100, .13s), border-color var(--spectrum-global-animation-duration-100, .13s);\n border-style: solid;\n outline: none;\n margin: 0;\n line-height: normal;\n position: relative;\n}\n\n.spectrum-FieldButton_e2d99e:disabled, .spectrum-FieldButton_e2d99e.is-disabled_e2d99e {\n cursor: default;\n border-width: 0;\n}\n\n.spectrum-FieldButton_e2d99e.is-open_e2d99e {\n border-width: var(--spectrum-dropdown-border-size, var(--spectrum-alias-border-size-thin));\n}\n\n.spectrum-FieldButton--quiet_e2d99e {\n --spectrum-button-border-width: 0;\n --spectrum-button-border-radius: var(--spectrum-fieldbutton-quiet-border-radius, 0px);\n --spectrum-focus-ring-size: var(--spectrum-alias-focus-ring-size, var(--spectrum-global-dimension-static-size-25));\n margin: 0;\n padding: 0;\n}\n\n.spectrum-FieldButton--quiet_e2d99e:disabled.focus-ring_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e.focus-ring_e2d99e {\n box-shadow: none;\n}\n\n.spectrum-ClearButton_e2d99e {\n width: var(--spectrum-clearbutton-medium-width, var(--spectrum-alias-single-line-height));\n height: var(--spectrum-clearbutton-medium-height, var(--spectrum-alias-single-line-height));\n --spectrum-button-border-radius: 100%;\n --spectrum-button-border-width: 0px;\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.spectrum-ClearButton_e2d99e > .spectrum-Icon_e2d99e {\n margin: 0 auto;\n}\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .spectrum-ClearButton_e2d99e > .spectrum-Icon_e2d99e {\n margin: 0;\n }\n}\n\n.spectrum-ClearButton--small_e2d99e {\n width: var(--spectrum-clearbutton-small-width, var(--spectrum-global-dimension-size-300));\n height: var(--spectrum-clearbutton-small-height, var(--spectrum-global-dimension-size-300));\n}\n\n.spectrum-ClearButton_e2d99e {\n background-color: var(--spectrum-clearbutton-medium-background-color, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-clearbutton-medium-icon-color, var(--spectrum-alias-icon-color));\n}\n\n.spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-clearbutton-medium-icon-color, var(--spectrum-alias-icon-color));\n}\n\n.spectrum-ClearButton_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-clearbutton-medium-background-color-hover, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-clearbutton-medium-icon-color-hover, var(--spectrum-alias-icon-color-hover));\n}\n\n.spectrum-ClearButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-clearbutton-medium-icon-color-hover, var(--spectrum-alias-icon-color-hover));\n}\n\n.spectrum-ClearButton_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-clearbutton-medium-background-color-down, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-clearbutton-medium-icon-color-down, var(--spectrum-alias-icon-color-down));\n}\n\n.spectrum-ClearButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-clearbutton-medium-icon-color-down, var(--spectrum-alias-icon-color-down));\n}\n\n.spectrum-ClearButton_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-clearbutton-medium-background-color-key-focus, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-clearbutton-medium-icon-color-key-focus, var(--spectrum-alias-icon-color-focus));\n}\n\n.spectrum-ClearButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-clearbutton-medium-icon-color-key-focus, var(--spectrum-alias-icon-color-focus));\n}\n\n.spectrum-ClearButton_e2d99e:disabled, .spectrum-ClearButton_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-clearbutton-medium-background-color-disabled, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-clearbutton-medium-icon-color-disabled, var(--spectrum-alias-icon-color-disabled));\n}\n\n.spectrum-ClearButton_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ClearButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-clearbutton-medium-icon-color-disabled, var(--spectrum-alias-icon-color-disabled));\n}\n\n.spectrum-Button_e2d99e[data-style=\"fill\"] {\n --spectrum-button-text-color: white;\n --spectrum-button-text-color-hover: var(--spectrum-button-text-color);\n --spectrum-button-text-color-down: var(--spectrum-button-text-color);\n --spectrum-button-text-color-key-focus: var(--spectrum-button-text-color);\n --spectrum-button-text-color-disabled: var(--spectrum-alias-text-color-disabled, var(--spectrum-global-color-gray-500));\n --spectrum-button-color-disabled: var(--spectrum-alias-background-color-disabled);\n background-color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-color));\n color: var(--spectrum-high-contrast-button-face, var(--spectrum-button-text-color));\n border-color: #0000;\n}\n\n.spectrum-Button_e2d99e[data-style=\"fill\"].is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-hover));\n color: var(--spectrum-high-contrast-button-face, var(--spectrum-button-text-color-hover));\n}\n\n.spectrum-Button_e2d99e[data-style=\"fill\"].focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-key-focus));\n color: var(--spectrum-high-contrast-button-face, var(--spectrum-button-text-color-key-focus));\n}\n\n.spectrum-Button_e2d99e[data-style=\"fill\"].is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-down));\n color: var(--spectrum-high-contrast-button-face, var(--spectrum-button-text-color-down));\n}\n\n.spectrum-Button_e2d99e[data-style=\"fill\"]:disabled, .spectrum-Button_e2d99e[data-style=\"fill\"].is-disabled_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-button-color-disabled));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-button-text-color-disabled));\n}\n\n.spectrum-Button_e2d99e[data-style=\"outline\"] {\n --spectrum-button-text-color: var(--spectrum-button-color);\n --spectrum-button-text-color-hover: var(--spectrum-button-color-hover);\n --spectrum-button-text-color-down: var(--spectrum-button-color-down);\n --spectrum-button-text-color-key-focus: var(--spectrum-button-color-key-focus);\n --spectrum-button-text-color-disabled: var(--spectrum-alias-text-color-disabled, var(--spectrum-global-color-gray-500));\n --spectrum-button-color-disabled: var(--spectrum-alias-background-color-disabled);\n border-color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-color));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-text-color));\n background-color: #0000;\n}\n\n.spectrum-Button_e2d99e[data-style=\"outline\"].is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-transparent, var(--spectrum-button-background-color-hover));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-hover));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-text-color-hover));\n}\n\n.spectrum-Button_e2d99e[data-style=\"outline\"].focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-transparent, var(--spectrum-button-background-color-key-focus));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-key-focus));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-text-color-key-focus));\n}\n\n.spectrum-Button_e2d99e[data-style=\"outline\"].is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-transparent, var(--spectrum-button-background-color-down));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-button-color-down));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-button-text-color-down));\n}\n\n.spectrum-Button_e2d99e[data-style=\"outline\"]:disabled, .spectrum-Button_e2d99e[data-style=\"outline\"].is-disabled_e2d99e {\n border-color: var(--spectrum-high-contrast-gray-text, var(--spectrum-button-color-disabled));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-button-text-color-disabled));\n background-color: #0000;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"white\"] {\n --spectrum-focus-ring-color: white;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"accent\"][data-style=\"fill\"], .spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"negative\"][data-style=\"fill\"], .spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"primary\"][data-style=\"fill\"] {\n --spectrum-button-color: #ffffffe6;\n --spectrum-button-color-hover: white;\n --spectrum-button-color-down: white;\n --spectrum-button-color-key-focus: white;\n --spectrum-button-color-disabled: #ffffff1a;\n --spectrum-button-text-color: black;\n --spectrum-button-text-color-disabled: #ffffff8c;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"accent\"][data-style=\"outline\"], .spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"negative\"][data-style=\"outline\"], .spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"primary\"][data-style=\"outline\"] {\n --spectrum-button-color: #ffffffe6;\n --spectrum-button-color-hover: white;\n --spectrum-button-color-down: white;\n --spectrum-button-color-key-focus: white;\n --spectrum-button-color-disabled: #ffffff40;\n --spectrum-button-text-color: white;\n --spectrum-button-text-color-hover: white;\n --spectrum-button-text-color-down: white;\n --spectrum-button-text-color-key-focus: white;\n --spectrum-button-text-color-disabled: #ffffff8c;\n --spectrum-button-background-color-hover: #ffffff1a;\n --spectrum-button-background-color-down: #ffffff26;\n --spectrum-button-background-color-key-focus: #ffffff1a;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"secondary\"][data-style=\"fill\"] {\n --spectrum-button-color: #ffffff12;\n --spectrum-button-color-hover: #ffffff1a;\n --spectrum-button-color-down: #ffffff26;\n --spectrum-button-color-key-focus: #ffffff1a;\n --spectrum-button-color-disabled: #ffffff1a;\n --spectrum-button-text-color: white;\n --spectrum-button-text-color-disabled: #ffffff8c;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"white\"][data-variant=\"secondary\"][data-style=\"outline\"] {\n --spectrum-button-color: #ffffff40;\n --spectrum-button-color-hover: #fff6;\n --spectrum-button-color-down: #ffffff8c;\n --spectrum-button-color-key-focus: #fff6;\n --spectrum-button-color-disabled: #ffffff40;\n --spectrum-button-text-color: white;\n --spectrum-button-text-color-hover: white;\n --spectrum-button-text-color-down: white;\n --spectrum-button-text-color-key-focus: white;\n --spectrum-button-text-color-disabled: #ffffff8c;\n --spectrum-button-background-color-hover: #ffffff1a;\n --spectrum-button-background-color-down: #ffffff26;\n --spectrum-button-background-color-key-focus: #ffffff1a;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"black\"] {\n --spectrum-focus-ring-color: black;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"accent\"][data-style=\"fill\"], .spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"negative\"][data-style=\"fill\"], .spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"primary\"][data-style=\"fill\"] {\n --spectrum-button-color: #000000e6;\n --spectrum-button-color-hover: black;\n --spectrum-button-color-down: black;\n --spectrum-button-color-key-focus: black;\n --spectrum-button-color-disabled: #0000001a;\n --spectrum-button-text-color: white;\n --spectrum-button-text-color-disabled: #0000008c;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"accent\"][data-style=\"outline\"], .spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"negative\"][data-style=\"outline\"], .spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"primary\"][data-style=\"outline\"] {\n --spectrum-button-color: #000000e6;\n --spectrum-button-color-hover: black;\n --spectrum-button-color-down: black;\n --spectrum-button-color-key-focus: black;\n --spectrum-button-color-disabled: #00000040;\n --spectrum-button-text-color: black;\n --spectrum-button-text-color-hover: black;\n --spectrum-button-text-color-down: black;\n --spectrum-button-text-color-key-focus: black;\n --spectrum-button-text-color-disabled: #0000008c;\n --spectrum-button-background-color-hover: #0000001a;\n --spectrum-button-background-color-down: #00000026;\n --spectrum-button-background-color-key-focus: #0000001a;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"secondary\"][data-style=\"fill\"] {\n --spectrum-button-color: #00000012;\n --spectrum-button-color-hover: #0000001a;\n --spectrum-button-color-down: #00000026;\n --spectrum-button-color-key-focus: #0000001a;\n --spectrum-button-color-disabled: #0000001a;\n --spectrum-button-text-color: black;\n --spectrum-button-text-color-disabled: #0000008c;\n}\n\n.spectrum-Button_e2d99e[data-static-color=\"black\"][data-variant=\"secondary\"][data-style=\"outline\"] {\n --spectrum-button-color: #00000040;\n --spectrum-button-color-hover: #0006;\n --spectrum-button-color-down: #0000008c;\n --spectrum-button-color-key-focus: #0006;\n --spectrum-button-color-disabled: #00000040;\n --spectrum-button-text-color: black;\n --spectrum-button-text-color-hover: black;\n --spectrum-button-text-color-down: black;\n --spectrum-button-text-color-key-focus: black;\n --spectrum-button-text-color-disabled: #0000008c;\n --spectrum-button-background-color-hover: #0000001a;\n --spectrum-button-background-color-down: #00000026;\n --spectrum-button-background-color-key-focus: #0000001a;\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"accent\"][data-style=\"fill\"] {\n --spectrum-button-color: var(--spectrum-accent-background-color-default);\n --spectrum-button-color-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-button-color-down: var(--spectrum-accent-background-color-down);\n --spectrum-button-color-key-focus: var(--spectrum-accent-background-color-key-focus);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"accent\"][data-style=\"outline\"] {\n --spectrum-button-color: var(--spectrum-accent-color-900);\n --spectrum-button-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-button-color-down: var(--spectrum-accent-color-1100);\n --spectrum-button-color-key-focus: var(--spectrum-accent-color-1000);\n --spectrum-button-background-color-hover: var(--spectrum-accent-color-200);\n --spectrum-button-background-color-down: var(--spectrum-accent-color-300);\n --spectrum-button-background-color-key-focus: var(--spectrum-accent-color-200);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"negative\"][data-style=\"fill\"] {\n --spectrum-button-color: var(--spectrum-negative-background-color-default);\n --spectrum-button-color-hover: var(--spectrum-negative-background-color-hover);\n --spectrum-button-color-down: var(--spectrum-negative-background-color-down);\n --spectrum-button-color-key-focus: var(--spectrum-negative-background-color-key-focus);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"negative\"][data-style=\"outline\"] {\n --spectrum-button-color: var(--spectrum-red-900);\n --spectrum-button-color-hover: var(--spectrum-red-1000);\n --spectrum-button-color-down: var(--spectrum-red-1100);\n --spectrum-button-color-key-focus: var(--spectrum-red-1000);\n --spectrum-button-background-color-hover: var(--spectrum-red-200);\n --spectrum-button-background-color-down: var(--spectrum-red-300);\n --spectrum-button-background-color-key-focus: var(--spectrum-red-200);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"primary\"][data-style=\"fill\"] {\n --spectrum-button-color: var(--spectrum-neutral-background-color-default);\n --spectrum-button-color-hover: var(--spectrum-neutral-background-color-hover);\n --spectrum-button-color-down: var(--spectrum-neutral-background-color-down);\n --spectrum-button-color-key-focus: var(--spectrum-neutral-background-color-key-focus);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"primary\"][data-style=\"outline\"] {\n --spectrum-button-color: var(--spectrum-gray-800);\n --spectrum-button-color-hover: var(--spectrum-gray-900);\n --spectrum-button-color-down: var(--spectrum-gray-900);\n --spectrum-button-color-key-focus: var(--spectrum-gray-900);\n --spectrum-button-background-color-hover: var(--spectrum-gray-300);\n --spectrum-button-background-color-down: var(--spectrum-gray-400);\n --spectrum-button-background-color-key-focus: var(--spectrum-gray-300);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"secondary\"] {\n --spectrum-button-text-color: var(--spectrum-gray-800);\n --spectrum-button-text-color-hover: var(--spectrum-gray-900);\n --spectrum-button-text-color-down: var(--spectrum-gray-900);\n --spectrum-button-text-color-key-focus: var(--spectrum-gray-900);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"secondary\"][data-style=\"fill\"] {\n --spectrum-button-color: var(--spectrum-gray-200);\n --spectrum-button-color-hover: var(--spectrum-gray-300);\n --spectrum-button-color-down: var(--spectrum-gray-400);\n --spectrum-button-color-key-focus: var(--spectrum-gray-300);\n}\n\n.spectrum-Button_e2d99e:not([data-static-color])[data-variant=\"secondary\"][data-style=\"outline\"] {\n --spectrum-button-color: var(--spectrum-gray-300);\n --spectrum-button-color-hover: var(--spectrum-gray-400);\n --spectrum-button-color-down: var(--spectrum-gray-500);\n --spectrum-button-color-key-focus: var(--spectrum-gray-400);\n --spectrum-button-background-color-hover: var(--spectrum-gray-300);\n --spectrum-button-background-color-down: var(--spectrum-gray-400);\n --spectrum-button-background-color-key-focus: var(--spectrum-gray-300);\n}\n\n@media (forced-colors: active) {\n .spectrum-Button_e2d99e, .spectrum-ActionButton_e2d99e {\n forced-color-adjust: none;\n --spectrum-high-contrast-transparent: transparent;\n --spectrum-high-contrast-button-face: ButtonFace;\n --spectrum-high-contrast-button-text: ButtonText;\n --spectrum-high-contrast-highlight: Highlight;\n --spectrum-high-contrast-highlight-text: HighlightText;\n --spectrum-high-contrast-gray-text: GrayText;\n --spectrum-high-contrast-focus-ring-color: var(--spectrum-high-contrast-button-text);\n }\n}\n\n.spectrum-ActionButton_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color, var(--spectrum-global-color-gray-75)));\n border-color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-border-color, var(--spectrum-alias-border-color)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-text-color, var(--spectrum-alias-text-color)));\n}\n\n.spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-icon-color, var(--spectrum-alias-icon-color)));\n}\n\n.spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-hold-icon-color, var(--spectrum-alias-icon-color)));\n}\n\n.spectrum-ActionButton_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color-hover, var(--spectrum-global-color-gray-50)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-border-color-hover, var(--spectrum-alias-border-color-hover)));\n color: var(--spectrum-actionbutton-text-color-hover, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-icon-color-hover, var(--spectrum-alias-icon-color-hover)));\n}\n\n.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-hold-icon-color-hover, var(--spectrum-alias-icon-color-hover));\n}\n\n.spectrum-ActionButton_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color-key-focus, var(--spectrum-global-color-gray-50)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-border-color-hover, var(--spectrum-alias-border-color-hover)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-text-color-key-focus, var(--spectrum-alias-text-color-hover)));\n}\n\n.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-icon-color-key-focus, var(--spectrum-alias-icon-color-focus)));\n}\n\n.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-hold-icon-color-key-focus, var(--spectrum-alias-icon-color-hover)));\n}\n\n.spectrum-ActionButton_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color-down, var(--spectrum-global-color-gray-200)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-border-color-down, var(--spectrum-alias-border-color-down)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-text-color-down, var(--spectrum-alias-text-color-down)));\n}\n\n.spectrum-ActionButton_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-hold-icon-color-down, var(--spectrum-alias-icon-color-down)));\n}\n\n.spectrum-ActionButton_e2d99e:disabled, .spectrum-ActionButton_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color-disabled, var(--spectrum-global-color-gray-200)));\n border-color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-border-color-disabled, var(--spectrum-alias-border-color-disabled)));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-text-color-disabled, var(--spectrum-alias-text-color-disabled)));\n}\n\n.spectrum-ActionButton_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-icon-color-disabled, var(--spectrum-alias-icon-color-disabled)));\n}\n\n.spectrum-ActionButton_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e, .spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-hold-icon-color-disabled, var(--spectrum-alias-icon-color-disabled)));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-alias-toggle-color-selected));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-alias-toggle-color-selected));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-alias-toggle-color-selected-hover));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-alias-toggle-color-selected-hover));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-alias-toggle-color-selected-key-focus));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-alias-toggle-color-selected-key-focus));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-alias-toggle-color-selected-down));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-alias-toggle-color-selected-down));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-gray-50));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled, .spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-background-color-selected-disabled, var(--spectrum-global-color-gray-200)));\n border-color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-border-color-selected-disabled, var(--spectrum-alias-border-color-disabled)));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-text-color-selected-disabled, var(--spectrum-alias-text-color-disabled)));\n}\n\n.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-icon-color-selected-disabled, var(--spectrum-alias-icon-color-disabled)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-accent-background-color-default));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-accent-background-color-default));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-text-color-selected, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-icon-color-selected, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-accent-background-color-key-focus));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-accent-background-color-hover));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-text-color-selected-key-focus, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-icon-color-selected-key-focus, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-accent-background-color-hover));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-accent-background-color-hover));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-text-color-selected-hover, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-icon-color-selected-hover, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-highlight, var(--spectrum-accent-background-color-down));\n border-color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-accent-background-color-down));\n color: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-text-color-selected-down, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-highlight-text, var(--spectrum-actionbutton-emphasized-icon-color-selected-down, var(--spectrum-global-color-static-white)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled, .spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-emphasized-background-color-selected-disabled, var(--spectrum-global-color-gray-200)));\n border-color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-emphasized-border-color-selected-disabled, var(--spectrum-alias-border-color-disabled)));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-emphasized-text-color-selected-disabled, var(--spectrum-alias-text-color-disabled)));\n}\n\n.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-emphasized-icon-color-selected-disabled, var(--spectrum-alias-icon-color-disabled)));\n}\n\n.spectrum-ActionButton--quiet_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-background-color, var(--spectrum-alias-background-color-transparent)));\n border-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-border-color, var(--spectrum-alias-border-color-transparent)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-quiet-text-color, var(--spectrum-alias-text-color)));\n}\n\n.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-background-color-hover, var(--spectrum-alias-background-color-transparent)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-quiet-border-color-hover, var(--spectrum-alias-border-color-transparent)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-quiet-text-color-hover, var(--spectrum-alias-text-color-hover)));\n}\n\n.spectrum-ActionButton--quiet_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-background-color-key-focus, var(--spectrum-alias-background-color-transparent)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-quiet-border-color-hover, var(--spectrum-alias-border-color-transparent)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-quiet-text-color-key-focus, var(--spectrum-alias-text-color-hover)));\n}\n\n.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-background-color-down, var(--spectrum-global-color-gray-300)));\n border-color: var(--spectrum-high-contrast-highlight, var(--spectrum-actionbutton-quiet-border-color-down, var(--spectrum-global-color-gray-300)));\n color: var(--spectrum-high-contrast-button-text, var(--spectrum-actionbutton-quiet-text-color-down, var(--spectrum-alias-text-color-down)));\n}\n\n.spectrum-ActionButton--quiet_e2d99e:disabled, .spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-high-contrast-button-face, var(--spectrum-actionbutton-quiet-background-color-disabled, var(--spectrum-alias-background-color-transparent)));\n border-color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-quiet-border-color-disabled, var(--spectrum-alias-border-color-transparent)));\n color: var(--spectrum-high-contrast-gray-text, var(--spectrum-actionbutton-quiet-text-color-disabled, var(--spectrum-alias-text-color-disabled)));\n}\n\n.spectrum-ActionButton--staticWhite_e2d99e {\n mix-blend-mode: screen;\n --spectrum-actionbutton-static-background-color: var(--spectrum-actionbutton-static-white-background-color);\n --spectrum-actionbutton-static-background-color-hover: #ffffff1a;\n --spectrum-actionbutton-static-background-color-focus: #ffffff1a;\n --spectrum-actionbutton-static-background-color-active: #ffffff26;\n --spectrum-actionbutton-static-background-color-disabled: var(--spectrum-actionbutton-static-white-background-color-disabled);\n --spectrum-actionbutton-static-background-color-selected: #ffffffe6;\n --spectrum-actionbutton-static-background-color-selected-hover: white;\n --spectrum-actionbutton-static-background-color-selected-focus: white;\n --spectrum-actionbutton-static-background-color-selected-active: white;\n --spectrum-actionbutton-static-background-color-selected-disabled: #ffffff1a;\n --spectrum-actionbutton-static-border-color: var(--spectrum-actionbutton-static-white-border-color);\n --spectrum-actionbutton-static-border-color-hover: var(--spectrum-actionbutton-static-white-border-color-hover);\n --spectrum-actionbutton-static-border-color-active: var(--spectrum-actionbutton-static-white-border-color-down);\n --spectrum-actionbutton-static-border-color-focus: var(--spectrum-actionbutton-static-white-border-color-key-focus);\n --spectrum-actionbutton-static-border-disabled: var(--spectrum-actionbutton-static-white-border-color-disabled);\n --spectrum-actionbutton-static-border-color-selected-disabled: var(--spectrum-actionbutton-static-white-border-color-selected-disabled);\n --spectrum-actionbutton-static-color: white;\n --spectrum-actionbutton-static-color-selected: black;\n --spectrum-actionbutton-static-color-disabled: #ffffff8c;\n}\n\n.spectrum-ActionButton--staticWhite_e2d99e.spectrum-ActionButton--quiet_e2d99e {\n --spectrum-actionbutton-static-border-color: transparent;\n --spectrum-actionbutton-static-border-color-hover: transparent;\n --spectrum-actionbutton-static-border-color-active: transparent;\n}\n\n.spectrum-ActionButton--staticBlack_e2d99e {\n mix-blend-mode: multiply;\n --spectrum-actionbutton-static-background-color: var(--spectrum-actionbutton-static-black-background-color);\n --spectrum-actionbutton-static-background-color-hover: #0000001a;\n --spectrum-actionbutton-static-background-color-focus: #0000001a;\n --spectrum-actionbutton-static-background-color-active: #00000026;\n --spectrum-actionbutton-static-background-color-selected: #000000e6;\n --spectrum-actionbutton-static-background-color-disabled: var(--spectrum-actionbutton-static-black-background-color-disabled);\n --spectrum-actionbutton-static-background-color-selected-hover: black;\n --spectrum-actionbutton-static-background-color-selected-focus: black;\n --spectrum-actionbutton-static-background-color-selected-active: black;\n --spectrum-actionbutton-static-background-color-selected-disabled: #0000001a;\n --spectrum-actionbutton-static-border-color: var(--spectrum-actionbutton-static-black-border-color);\n --spectrum-actionbutton-static-border-color-hover: var(--spectrum-actionbutton-static-black-border-color-hover);\n --spectrum-actionbutton-static-border-color-active: var(--spectrum-actionbutton-static-black-border-color-down);\n --spectrum-actionbutton-static-border-color-focus: var(--spectrum-actionbutton-static-black-border-color-key-focus);\n --spectrum-actionbutton-static-border-disabled: var(--spectrum-actionbutton-static-black-border-color-disabled);\n --spectrum-actionbutton-static-border-color-selected-disabled: var(--spectrum-actionbutton-static-black-border-color-selected-disabled);\n --spectrum-actionbutton-static-color: black;\n --spectrum-actionbutton-static-color-selected: white;\n --spectrum-actionbutton-static-color-disabled: #0000008c;\n}\n\n.spectrum-ActionButton--staticBlack_e2d99e.spectrum-ActionButton--quiet_e2d99e {\n --spectrum-actionbutton-static-border-color: transparent;\n --spectrum-actionbutton-static-border-color-hover: transparent;\n --spectrum-actionbutton-static-border-color-active: transparent;\n}\n\n.spectrum-ActionButton--staticColor_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color);\n border-color: var(--spectrum-actionbutton-static-border-color);\n color: var(--spectrum-actionbutton-static-color);\n --spectrum-focus-ring-color: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-hover);\n border-color: var(--spectrum-actionbutton-static-border-color-hover);\n color: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-focus);\n border-color: var(--spectrum-actionbutton-static-border-color-focus);\n box-shadow: none;\n color: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-hovered_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-active_e2d99e {\n border-color: var(--spectrum-actionbutton-static-border-color-focus);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-active);\n border-color: var(--spectrum-actionbutton-static-border-color-active);\n color: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-static-color);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e:disabled, .spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-disabled);\n border-color: var(--spectrum-actionbutton-static-border-disabled);\n color: var(--spectrum-actionbutton-static-color-disabled);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-static-color-disabled);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-selected);\n border-color: var(--spectrum-actionbutton-static-background-color-selected);\n color: var(--spectrum-actionbutton-static-color-selected);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-actionbutton-static-color-selected);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-selected-focus);\n border-color: var(--spectrum-actionbutton-static-background-color-selected-focus);\n color: var(--spectrum-actionbutton-static-color-selected);\n box-shadow: none;\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-actionbutton-static-color-selected);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-selected-hover);\n border-color: var(--spectrum-actionbutton-static-background-color-selected-hover);\n color: var(--spectrum-actionbutton-static-color-selected);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-actionbutton-static-color-selected);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-actionbutton-static-background-color-selected-disabled);\n border-color: var(--spectrum-actionbutton-static-border-color-selected-disabled);\n color: var(--spectrum-actionbutton-static-color-disabled);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e {\n fill: var(--spectrum-actionbutton-static-color-disabled);\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e {\n --spectrum-actionbutton-static-background-color: transparent;\n --spectrum-actionbutton-static-background-color-disabled: transparent;\n}\n\n.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e.is-selected_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e.is-selected_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled.is-selected_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e, .spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e.is-selected_e2d99e {\n border-color: #0000;\n}\n\n.spectrum-LogicButton--and_e2d99e {\n background-color: var(--spectrum-global-color-static-blue-600, #1473e6);\n border-color: var(--spectrum-global-color-static-blue-600, #1473e6);\n color: var(--spectrum-logicbutton-and-text-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-LogicButton--and_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-global-color-static-blue-700, #0d66d0);\n border-color: var(--spectrum-global-color-static-blue-700, #0d66d0);\n color: var(--spectrum-logicbutton-and-text-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-LogicButton--and_e2d99e:disabled, .spectrum-LogicButton--and_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-logicbutton-and-background-color-disabled, var(--spectrum-global-color-gray-200));\n border-color: var(--spectrum-logicbutton-and-border-color-disabled, var(--spectrum-global-color-gray-200));\n color: var(--spectrum-logicbutton-and-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-LogicButton--or_e2d99e {\n background-color: var(--spectrum-global-color-static-magenta-500, #d83790);\n border-color: var(--spectrum-global-color-static-magenta-500, #d83790);\n color: var(--spectrum-logicbutton-or-text-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-LogicButton--or_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-global-color-static-magenta-600, #ca2982);\n border-color: var(--spectrum-global-color-static-magenta-600, #ca2982);\n color: var(--spectrum-logicbutton-or-text-color, var(--spectrum-global-color-static-white));\n}\n\n.spectrum-LogicButton--or_e2d99e:disabled, .spectrum-LogicButton--or_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-button-secondary-background-color-disabled, var(--spectrum-global-color-gray-200));\n border-color: var(--spectrum-button-secondary-border-color-disabled, var(--spectrum-global-color-gray-200));\n color: var(--spectrum-logicbutton-and-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldButton_e2d99e {\n color: var(--spectrum-fieldbutton-text-color, var(--spectrum-alias-text-color));\n background-color: var(--spectrum-fieldbutton-background-color, var(--spectrum-global-color-gray-75));\n border-color: var(--spectrum-fieldbutton-border-color, var(--spectrum-alias-border-color));\n}\n\n.spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-fieldbutton-icon-color, var(--spectrum-alias-icon-color));\n}\n\n.spectrum-FieldButton_e2d99e.is-hovered_e2d99e {\n color: var(--spectrum-fieldbutton-text-color-hover, var(--spectrum-alias-text-color-hover));\n background-color: var(--spectrum-fieldbutton-background-color-hover, var(--spectrum-global-color-gray-50));\n border-color: var(--spectrum-fieldbutton-border-color-hover, var(--spectrum-alias-border-color-hover));\n}\n\n.spectrum-FieldButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-fieldbutton-icon-color-hover, var(--spectrum-alias-icon-color-hover));\n}\n\n.spectrum-FieldButton_e2d99e.is-active_e2d99e, .spectrum-FieldButton_e2d99e.is-selected_e2d99e {\n background-color: var(--spectrum-fieldbutton-background-color-down, var(--spectrum-global-color-gray-200));\n border-color: var(--spectrum-fieldbutton-border-color-down, var(--spectrum-alias-border-color-down));\n}\n\n.spectrum-FieldButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e, .spectrum-FieldButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-fieldbutton-icon-color-down, var(--spectrum-alias-icon-color-down));\n}\n\n.spectrum-FieldButton_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton_e2d99e.is-focused_e2d99e {\n background-color: var(--spectrum-fieldbutton-background-color-key-focus, var(--spectrum-global-color-gray-50));\n border-color: var(--spectrum-fieldbutton-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n color: var(--spectrum-fieldbutton-text-color-key-focus, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-FieldButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e, .spectrum-FieldButton_e2d99e.is-focused_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-fieldbutton-icon-color-key-focus, var(--spectrum-alias-icon-color-focus));\n}\n\n.spectrum-FieldButton_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e, .spectrum-FieldButton_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e {\n fill: var(--spectrum-fieldbutton-placeholder-text-color-key-focus, var(--spectrum-alias-placeholder-text-color-hover));\n}\n\n.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e {\n border-color: var(--spectrum-fieldbutton-border-color-error, var(--spectrum-global-color-red-500));\n}\n\n.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-hovered_e2d99e {\n border-color: var(--spectrum-fieldbutton-border-color-error-hover, var(--spectrum-global-color-red-600));\n}\n\n.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-active_e2d99e, .spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-selected_e2d99e {\n border-color: var(--spectrum-fieldbutton-border-color-error-down, var(--spectrum-global-color-red-600));\n}\n\n.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-focused_e2d99e {\n border-color: var(--spectrum-fieldbutton-border-color-error-key-focus, var(--spectrum-alias-border-color-focus));\n}\n\n.spectrum-FieldButton_e2d99e:disabled, .spectrum-FieldButton_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-fieldbutton-background-color-disabled, var(--spectrum-global-color-gray-200));\n color: var(--spectrum-fieldbutton-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n.spectrum-FieldButton_e2d99e:disabled .spectrum-Icon_e2d99e, .spectrum-FieldButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e {\n fill: var(--spectrum-fieldbutton-icon-color-disabled, var(--spectrum-alias-icon-color-disabled));\n}\n\n.spectrum-FieldButton--quiet_e2d99e {\n color: var(--spectrum-fieldbutton-text-color, var(--spectrum-alias-text-color));\n border-color: var(--spectrum-fieldbutton-quiet-border-color, var(--spectrum-alias-border-color-transparent));\n background-color: var(--spectrum-fieldbutton-quiet-background-color, var(--spectrum-alias-background-color-transparent));\n}\n\n.spectrum-FieldButton--quiet_e2d99e.is-hovered_e2d99e {\n background-color: var(--spectrum-fieldbutton-quiet-background-color-hover, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-fieldbutton-text-color-hover, var(--spectrum-alias-text-color-hover));\n}\n\n.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e {\n background-color: var(--spectrum-fieldbutton-quiet-background-color-key-focus, var(--spectrum-alias-background-color-transparent));\n}\n\n.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e {\n color: var(--spectrum-fieldbutton-quiet-placeholder-text-color-key-focus, var(--spectrum-alias-placeholder-text-color-hover));\n}\n\n.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e {\n background-color: var(--spectrum-fieldbutton-quiet-background-color-down, var(--spectrum-alias-background-color-transparent));\n border-color: var(--spectrum-fieldbutton-quiet-border-color-down, var(--spectrum-alias-border-color-transparent));\n}\n\n.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.is-focused_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e, .spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.is-focused_e2d99e {\n background-color: var(--spectrum-fieldbutton-quiet-background-color-key-focus, var(--spectrum-alias-background-color-transparent));\n}\n\n.spectrum-FieldButton--quiet_e2d99e:disabled, .spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e {\n background-color: var(--spectrum-fieldbutton-quiet-background-color-disabled, var(--spectrum-alias-background-color-transparent));\n color: var(--spectrum-fieldbutton-text-color-disabled, var(--spectrum-alias-text-color-disabled));\n}\n\n@media (forced-colors: active) {\n .spectrum-ActionButton_e2d99e, .spectrum-ClearButton_e2d99e, .spectrum-LogicButton_e2d99e, .spectrum-FieldButton_e2d99e {\n forced-color-adjust: none;\n --spectrum-clearbutton-medium-background-color: ButtonFace;\n --spectrum-clearbutton-medium-background-color-disabled: ButtonFace;\n --spectrum-clearbutton-medium-background-color-down: ButtonFace;\n --spectrum-clearbutton-medium-background-color-hover: ButtonFace;\n --spectrum-clearbutton-medium-background-color-key-focus: ButtonFace;\n --spectrum-clearbutton-medium-icon-color: ButtonText;\n --spectrum-clearbutton-medium-icon-color-disabled: GrayText;\n --spectrum-clearbutton-medium-icon-color-down: Highlight;\n --spectrum-clearbutton-medium-icon-color-hover: Highlight;\n --spectrum-clearbutton-medium-icon-color-key-focus: Highlight;\n --spectrum-fieldbutton-background-color: ButtonFace;\n --spectrum-fieldbutton-background-color-disabled: ButtonFace;\n --spectrum-fieldbutton-background-color-down: ButtonFace;\n --spectrum-fieldbutton-background-color-hover: ButtonFace;\n --spectrum-fieldbutton-background-color-key-focus: ButtonFace;\n --spectrum-fieldbutton-border-color: ButtonText;\n --spectrum-fieldbutton-border-color-down: Highlight;\n --spectrum-fieldbutton-border-color-error: ButtonText;\n --spectrum-fieldbutton-border-color-error-down: Highlight;\n --spectrum-fieldbutton-border-color-error-hover: Highlight;\n --spectrum-fieldbutton-border-color-error-key-focus: Highlight;\n --spectrum-fieldbutton-border-color-hover: Highlight;\n --spectrum-fieldbutton-border-color-key-focus: Highlight;\n --spectrum-fieldbutton-icon-color-disabled: GrayText;\n --spectrum-fieldbutton-placeholder-text-color-key-focus: ButtonText;\n --spectrum-fieldbutton-quiet-background-color: ButtonFace;\n --spectrum-fieldbutton-quiet-background-color-disabled: ButtonFace;\n --spectrum-fieldbutton-quiet-background-color-down: ButtonFace;\n --spectrum-fieldbutton-quiet-background-color-hover: ButtonFace;\n --spectrum-fieldbutton-quiet-background-color-key-focus: ButtonFace;\n --spectrum-fieldbutton-quiet-border-color: ButtonFace;\n --spectrum-fieldbutton-quiet-border-color-down: Highlight;\n --spectrum-fieldbutton-quiet-placeholder-text-color-key-focus: ButtonText;\n --spectrum-fieldbutton-text-color: ButtonText;\n --spectrum-fieldbutton-text-color-disabled: GrayText;\n --spectrum-fieldbutton-text-color-hover: ButtonText;\n --spectrum-fieldbutton-text-color-key-focus: ButtonText;\n --spectrum-logicbutton-and-background-color: ButtonFace;\n --spectrum-logicbutton-and-background-color-disabled: ButtonFace;\n --spectrum-logicbutton-and-background-color-hover: ButtonFace;\n --spectrum-logicbutton-and-border-color: ButtonText;\n --spectrum-logicbutton-and-border-color-disabled: GrayText;\n --spectrum-logicbutton-and-border-color-hover: Highlight;\n --spectrum-logicbutton-and-text-color: ButtonText;\n --spectrum-logicbutton-and-text-color-disabled: GrayText;\n --spectrum-logicbutton-or-background-color: ButtonFace;\n --spectrum-logicbutton-or-background-color-hover: ButtonFace;\n --spectrum-logicbutton-or-border-color: ButtonText;\n --spectrum-logicbutton-or-border-color-hover: Highlight;\n --spectrum-logicbutton-or-text-color: ButtonText;\n --spectrum-button-primary-focus-ring-color-key-focus: CanvasText;\n --spectrum-button-primary-focus-ring-size-key-focus: 3px;\n --spectrum-dropdown-border-color-key-focus: Highlight;\n }\n\n .spectrum-Button--overBackground_e2d99e {\n --spectrum-button-over-background-color: ButtonText;\n }\n\n .spectrum-ActionButton--staticWhite_e2d99e, .spectrum-ActionButton--staticBlack_e2d99e {\n mix-blend-mode: normal;\n --spectrum-actionbutton-static-background-color-hover: ButtonFace;\n --spectrum-actionbutton-static-background-color-focus: ButtonFace;\n --spectrum-actionbutton-static-background-color-active: ButtonFace;\n --spectrum-actionbutton-static-background-color-selected: Highlight;\n --spectrum-actionbutton-static-background-color-selected-hover: Highlight;\n --spectrum-actionbutton-static-background-color-selected-focus: Highlight;\n --spectrum-actionbutton-static-background-color-selected-active: Highlight;\n --spectrum-actionbutton-static-border-color: ButtonText;\n --spectrum-actionbutton-static-border-color-hover: ButtonText;\n --spectrum-actionbutton-static-border-color-active: ButtonText;\n --spectrum-actionbutton-static-border-color-focus: CanvasText;\n --spectrum-actionbutton-static-border-disabled: GrayText;\n --spectrum-actionbutton-static-color: ButtonText;\n --spectrum-actionbutton-static-color-selected: HighlightText;\n --spectrum-actionbutton-static-color-disabled: GrayText;\n }\n\n .spectrum-FieldButton_e2d99e.focus-ring_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e), .spectrum-FieldButton_e2d99e.is-focused_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e) {\n outline: 2px solid Highlight;\n }\n\n .spectrum-FieldButton_e2d99e.focus-ring_e2d99e.spectrum-FieldButton--quiet_e2d99e, .spectrum-FieldButton_e2d99e.is-focused_e2d99e.spectrum-FieldButton--quiet_e2d99e {\n forced-color-adjust: none;\n box-shadow: 0 2px 0 0 var(--spectrum-dropdown-border-color-key-focus, var(--spectrum-alias-border-color-focus));\n }\n}\n\n/*# sourceMappingURL=index.6897f79f.css.map */\n","html, body {\n height: 100%;\n}\n\nbody {\n margin: 0;\n}\n\n#app {\n height: 100%;\n}",".spectrum-Menu-popover_7ea47c{max-width:320px}[dir=ltr] .spectrum-Menu_7ea47c{text-align:left}[dir=rtl] .spectrum-Menu_7ea47c{text-align:right}.spectrum-Menu_7ea47c{box-sizing:border-box;padding:var(--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50))0;-webkit-user-select:none;user-select:none;margin:0;list-style-type:none;display:block;overflow-y:auto}.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c{margin-top:var(--spectrum-global-dimension-size-75);margin-bottom:var(--spectrum-global-dimension-size-40)}.spectrum-Menu_7ea47c:focus{outline:none}.spectrum-Menu-checkmark_7ea47c{opacity:1;padding-top:calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));transform:scale(1)}[dir=ltr] .spectrum-Menu-item_7ea47c{border-left:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}[dir=rtl] .spectrum-Menu-item_7ea47c{border-right:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}.spectrum-Menu-item_7ea47c{cursor:default;box-sizing:border-box;font-size:var(--spectrum-selectlist-option-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-selectlist-option-text-font-weight,var(--spectrum-global-font-weight-regular));margin:0;font-style:normal;text-decoration:none;position:relative}.spectrum-Menu-item_7ea47c:focus{outline:none}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{display:block}[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Menu-itemLabel_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);word-break:break-word;grid-area:text}.spectrum-Menu-itemLabel--wrapping_7ea47c{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spectrum-Menu-checkmark_7ea47c{grid-area:checkmark;place-self:flex-start end;display:none}.spectrum-Menu-divider_7ea47c{box-sizing:content-box;height:var(--spectrum-selectlist-divider-size,var(--spectrum-alias-border-size-thick));margin:calc(var(--spectrum-selectlist-divider-padding,3px)/2)var(--spectrum-global-dimension-size-150);border:none;padding:0;overflow:visible}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-450)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-450)}.spectrum-Menu-sectionHeading_7ea47c{margin:var(--spectrum-global-dimension-size-75)0 0 0;font-size:var(--spectrum-global-dimension-font-size-100);font-weight:var(--spectrum-global-font-weight-bold,700);line-height:var(--spectrum-alias-line-height-medium,var(--spectrum-global-dimension-size-250));padding-top:0;padding-bottom:0;display:block}.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c{margin:0;display:block}.spectrum-Menu-itemGrid_7ea47c{display:-ms-grid;-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);-ms-grid-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-areas:\". . . . . . .\"\".icon text checkmark end keyboard.\"\".icon description checkmark end keyboard.\"\". . . . . . .\";display:grid}.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c{-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{grid-area:end;place-self:flex-start end}[dir=ltr] .spectrum-Menu-icon_7ea47c{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-Menu-icon_7ea47c{padding-left:var(--spectrum-global-dimension-size-100)}.spectrum-Menu-icon_7ea47c{padding-top:var(--spectrum-global-dimension-size-10);grid-area:icon}.spectrum-Menu-description_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);font-size:var(--spectrum-global-dimension-size-150);grid-area:description}[dir=ltr] .spectrum-Menu-keyboard_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu-keyboard_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu-keyboard_7ea47c{grid-area:keyboard;align-self:flex-start;font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Menu_7ea47c{--spectrum-heading-subtitle3-text-color:var(--spectrum-global-color-gray-900);background-color:var(--spectrum-selectlist-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-Menu-item_7ea47c{background-color:var(--spectrum-selectlist-option-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}[dir=ltr] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-left-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}[dir=rtl] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-right-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-hover,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-hover,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:var(--spectrum-selectlist-option-icon-color-selected,var(--spectrum-alias-icon-color-selected))}.spectrum-Menu-item_7ea47c .is-active_7ea47c,.spectrum-Menu-item_7ea47c:active{background-color:var(--spectrum-selectlist-option-background-color-down,var(--spectrum-alias-background-color-hover-overlay))}.spectrum-Menu-item_7ea47c.is-disabled_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color-disabled,var(--spectrum-alias-text-color-disabled));cursor:default;background-image:none}.spectrum-Menu-sectionHeading_7ea47c{color:var(--spectrum-heading-subtitle3-text-color,var(--spectrum-global-color-gray-700))}.spectrum-Menu-divider_7ea47c{background-color:var(--spectrum-global-color-gray-300)}.spectrum-Menu-description_7ea47c{color:var(--spectrum-global-color-gray-700)}@media (forced-colors:active){.spectrum-Menu-divider_7ea47c{background-color:CanvasText;forced-color-adjust:none}.spectrum-Menu-item_7ea47c{forced-color-adjust:none;--spectrum-heading-subtitle3-text-color:ButtonText;--spectrum-selectlist-background-color:ButtonFace;--spectrum-selectlist-divider-color:ButtonText;--spectrum-selectlist-option-background-color:ButtonFace;--spectrum-selectlist-option-background-color-disabled:ButtonFace;--spectrum-selectlist-option-background-color-down:ButtonFace;--spectrum-selectlist-option-background-color-hover:Highlight;--spectrum-selectlist-option-background-color-key-focus:Highlight;--spectrum-selectlist-option-focus-indicator-color:Highlight;--spectrum-selectlist-option-icon-color-selected:Highlight;--spectrum-selectlist-option-text-color:ButtonText;--spectrum-selectlist-option-text-color-disabled:GrayText;--spectrum-selectlist-option-text-color-hover:HighlightText;--spectrum-selectlist-option-text-color-key-focus:HighlightText;--spectrum-alias-border-color-focus:Highlight}.spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:HighlightText}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color));background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay))}}",".spectrum-Dropdown_6d8ec0{-webkit-user-select:none;user-select:none;max-width:100%;width:var(--spectrum-global-dimension-size-2400);min-width:var(--spectrum-dropdown-min-width,var(--spectrum-global-dimension-size-600));display:inline-block;position:relative}.spectrum-Dropdown_6d8ec0 select{-webkit-appearance:none;appearance:none}.spectrum-Dropdown_6d8ec0 select::-ms-expand{display:none}.spectrum-Dropdown_6d8ec0 select::-ms-value{background-color:#0000}[dir=ltr] .spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{right:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{left:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150))}.spectrum-Dropdown_6d8ec0 select+.spectrum-Dropdown-chevron_6d8ec0{margin-top:calc(var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75))/-2);position:absolute;top:50%}.spectrum-Dropdown-trigger_6d8ec0{width:100%;contain:size;justify-content:space-between;align-items:center;display:flex;position:relative}[dir=ltr] .spectrum-Dropdown-label_6d8ec0{text-align:left}[dir=rtl] .spectrum-Dropdown-label_6d8ec0{text-align:right}.spectrum-Dropdown-label_6d8ec0{white-space:nowrap;height:calc(var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2);line-height:calc(var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2);font-size:var(--spectrum-dropdown-text-size,var(--spectrum-alias-font-size-default));text-overflow:ellipsis;flex:auto;overflow:hidden}.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{font-weight:var(--spectrum-dropdown-placeholder-text-font-weight,var(--spectrum-global-font-weight-regular));font-style:var(--spectrum-dropdown-placeholder-text-font-style,var(--spectrum-global-font-style-italic));transition:color var(--spectrum-global-animation-duration-100,.13s)ease-in-out}[dir=ltr] .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-label_6d8ec0{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-label_6d8ec0{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=ltr] .spectrum-Dropdown-label_6d8ec0~.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-label_6d8ec0~.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}.spectrum-Dropdown-chevron_6d8ec0{vertical-align:top;transition:color var(--spectrum-global-animation-duration-100,.13s)ease-out;margin-top:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75)))/2);margin-bottom:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75)))/2);opacity:1;flex-shrink:0;display:inline-block;position:relative}.spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0{margin-top:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-dropdown-icon-size,var(--spectrum-alias-workflow-icon-size)))/2);margin-bottom:calc((var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))*2 - var(--spectrum-dropdown-icon-size,var(--spectrum-alias-workflow-icon-size)))/2)}[dir=ltr] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-invalidIcon_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-label_6d8ec0+.spectrum-Dropdown-invalidIcon_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0{margin-left:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-Dropdown-trigger_6d8ec0 .spectrum-Dropdown-progressCircle_6d8ec0{margin-right:var(--spectrum-dropdown-icon-margin-left,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-left:var(--spectrum-dropdown-icon-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Icon_6d8ec0+.spectrum-Dropdown-chevron_6d8ec0{margin-right:var(--spectrum-dropdown-icon-gap,var(--spectrum-global-dimension-size-100))}.spectrum-Dropdown--quiet_6d8ec0{width:auto;min-width:var(--spectrum-dropdown-quiet-min-width,var(--spectrum-global-dimension-size-600))}.spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0{contain:none}[dir=ltr] .spectrum-Dropdown-popover--quiet_6d8ec0{margin-left:calc(var(--spectrum-dropdown-quiet-offset)*-1)}[dir=rtl] .spectrum-Dropdown-popover--quiet_6d8ec0{margin-right:calc(var(--spectrum-dropdown-quiet-offset)*-1)}.spectrum-Dropdown-popover--quiet_6d8ec0{width:var(--spectrum-global-dimension-size-2400);--spectrum-dropdown-quiet-offset:calc(var(--spectrum-dropdown-quiet-popover-offset-x,var(--spectrum-global-dimension-size-150)) + var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin)))}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0{width:auto;flex-direction:column;display:inline-flex}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0{width:auto;min-width:var(--spectrum-dropdown-quiet-min-width,var(--spectrum-global-dimension-size-600))}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0 .spectrum-Dropdown--quiet_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0{width:auto}.spectrum-Field_6d8ec0.spectrum-Dropdown-fieldWrapper--quiet_6d8ec0.spectrum-Dropdown-fieldWrapper--positionSide_6d8ec0{flex-direction:row}.spectrum-Dropdown_6d8ec0{--spectrum-dropdown-placeholder-text-color:var(--spectrum-global-color-gray-800)}.spectrum-Dropdown_6d8ec0 .spectrum-Dropdown-trigger_6d8ec0.is-selected_6d8ec0 .is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-down,var(--spectrum-global-color-gray-900))}.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0.spectrum-Dropdown-invalidIcon_6d8ec0{fill:var(--spectrum-dropdown-validation-icon-color-error,var(--spectrum-semantic-negative-color-icon))}.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Icon_6d8ec0,.spectrum-Dropdown_6d8ec0.is-invalid_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-invalidIcon_6d8ec0{fill:var(--spectrum-dropdown-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0:active .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Dropdown_6d8ec0.is-disabled_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color,var(--spectrum-alias-placeholder-text-color))}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-hover,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-Dropdown-trigger_6d8ec0:active .spectrum-Dropdown-label_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-mouse-focus,var(--spectrum-global-color-gray-900))}.spectrum-Dropdown-trigger_6d8ec0.focus-ring_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:var(--spectrum-dropdown-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}@media (forced-colors:active){.spectrum-Dropdown_6d8ec0{--spectrum-dropdown-icon-color:ButtonText;--spectrum-dropdown-icon-color-disabled:GrayText;--spectrum-dropdown-icon-color-hover:ButtonText;--spectrum-dropdown-icon-color-key-focus:ButtonText;--spectrum-dropdown-placeholder-text-color:GrayText;--spectrum-dropdown-placeholder-text-color-disabled:GrayText;--spectrum-dropdown-placeholder-text-color-down:GrayText;--spectrum-dropdown-placeholder-text-color-hover:GrayText;--spectrum-dropdown-placeholder-text-color-key-focus:GrayText;--spectrum-dropdown-placeholder-text-color-mouse-focus:GrayText;--spectrum-dropdown-text-color-disabled:GrayText;--spectrum-dropdown-validation-icon-color-error:ButtonText}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0{color:ButtonText}.spectrum-Dropdown-trigger_6d8ec0.is-hovered_6d8ec0 .spectrum-Dropdown-label_6d8ec0.is-placeholder_6d8ec0{color:GrayText}}","[dir=ltr] .spectrum-FieldLabel_d2db1f{text-align:left}[dir=rtl] .spectrum-FieldLabel_d2db1f{text-align:right}.spectrum-FieldLabel_d2db1f{box-sizing:border-box;padding:var(--spectrum-fieldlabel-padding-top,var(--spectrum-global-dimension-size-50))0 var(--spectrum-fieldlabel-padding-bottom,var(--spectrum-global-dimension-size-65));font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));vertical-align:top;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;font-smoothing:subpixel-antialiased;cursor:default;flex:none;display:flex}[dir=ltr] .spectrum-FieldLabel--positionSide_d2db1f{padding-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-FieldLabel--positionSide_d2db1f{padding-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-FieldLabel--positionSide_d2db1f{padding-top:var(--spectrum-fieldlabel-side-padding-top,var(--spectrum-global-dimension-size-100));display:inline-flex}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:0}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:0}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel-requiredIcon_d2db1f{margin-top:var(--spectrum-fieldlabel-asterisk-margin-y,var(--spectrum-global-dimension-size-50));margin-bottom:0}[dir=ltr] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:right}[dir=rtl] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:left}.spectrum-FieldLabel--alignEnd_d2db1f{justify-content:flex-end}.spectrum-Field_d2db1f{--spectrum-field-default-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}[dir=ltr] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-global-dimension-size-50)}[dir=rtl] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-global-dimension-size-50)}.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-25);grid-area:contextualHelp}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f){display:-ms-inline-grid;-ms-grid-columns:auto auto minmax(0,1fr);-ms-grid-rows:auto 1fr auto;width:var(--spectrum-field-default-width);grid-template:\"label contextualHelp.\"\"field field field\"1fr\"helpText helpText helpText\"/auto auto minmax(0,1fr);align-content:start;display:inline-grid}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f{width:100%;grid-area:field}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f{-ms-grid-columns:1fr auto 0;grid-template-columns:1fr auto 0}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f{grid-area:label}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f){align-items:flex-start;display:inline-flex}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{min-width:0;width:var(--spectrum-field-default-width);height:100%;flex:1}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f{width:100%}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f{min-width:0;flex:1}[dir=ltr] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-65)}[dir=ltr] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-right:0}[dir=rtl] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-left:0}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:left}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:right}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){border-collapse:separate;border-spacing:0 var(--spectrum-global-dimension-size-300);margin:calc(var(--spectrum-global-dimension-size-250)*-1)0;display:table}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f{width:100%;display:table-row}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f,.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f{display:table-cell}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f{vertical-align:top}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:right}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:left}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f{display:inline-flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f{flex:1}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{width:100%}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f{width:auto;min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f){min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400));flex-direction:column;margin:0;display:flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f)>*{margin-top:var(--spectrum-global-dimension-size-100);width:100%}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f{-ms-flex-align:first baseline;align-items:baseline}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f{top:var(--spectrum-global-dimension-size-40);margin-top:var(--spectrum-global-dimension-size-65);position:relative}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f{padding-top:0}.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f{word-break:break-word;overflow:hidden}.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:calc(-1*var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel_d2db1f,.spectrum-Form-itemLabel_d2db1f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f{color:var(--spectrum-fieldlabel-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color,var(--spectrum-global-color-gray-600))}","[dir=ltr] .spectrum-HelpText_f395de{text-align:left}[dir=rtl] .spectrum-HelpText_f395de{text-align:right}.spectrum-HelpText_f395de{font-size:var(--spectrum-global-dimension-font-size-75);display:flex}[dir=ltr] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{margin-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{margin-left:var(--spectrum-global-dimension-size-100)}.spectrum-HelpText_f395de .spectrum-HelpText-validationIcon_f395de{padding-top:var(--spectrum-global-dimension-size-40);padding-bottom:var(--spectrum-global-dimension-size-40);flex-shrink:0}[dir=ltr] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{margin-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{margin-left:var(--spectrum-global-dimension-size-100)}.spectrum-HelpText_f395de .spectrum-HelpText-text_f395de{padding-top:var(--spectrum-global-dimension-static-size-50,4px);padding-bottom:var(--spectrum-global-dimension-size-115);line-height:var(--spectrum-global-font-line-height-small,1.3);text-transform:none;letter-spacing:var(--spectrum-global-font-letter-spacing-none,0);flex:1}.spectrum-HelpText--neutral_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-alias-label-text-color,var(--spectrum-global-color-gray-700))}.spectrum-HelpText--neutral_f395de.is-disabled_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500))}.spectrum-HelpText--negative_f395de .spectrum-HelpText-validationIcon_f395de,.spectrum-HelpText--negative_f395de .spectrum-HelpText-text_f395de{color:var(--spectrum-semantic-negative-color-text-small,var(--spectrum-global-color-red-600))}[dir=ltr] .spectrum-FieldLabel_d2db1f{text-align:left}[dir=rtl] .spectrum-FieldLabel_d2db1f{text-align:right}.spectrum-FieldLabel_d2db1f{box-sizing:border-box;padding:var(--spectrum-fieldlabel-padding-top,var(--spectrum-global-dimension-size-50))0 var(--spectrum-fieldlabel-padding-bottom,var(--spectrum-global-dimension-size-65));font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));vertical-align:top;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;font-smoothing:subpixel-antialiased;cursor:default;flex:none;display:flex}[dir=ltr] .spectrum-FieldLabel--positionSide_d2db1f{padding-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-FieldLabel--positionSide_d2db1f{padding-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-FieldLabel--positionSide_d2db1f{padding-top:var(--spectrum-fieldlabel-side-padding-top,var(--spectrum-global-dimension-size-100));display:inline-flex}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:0}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:0}[dir=ltr] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-left:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}[dir=rtl] .spectrum-FieldLabel-requiredIcon_d2db1f{margin-right:var(--spectrum-fieldlabel-asterisk-gap,var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel-requiredIcon_d2db1f{margin-top:var(--spectrum-fieldlabel-asterisk-margin-y,var(--spectrum-global-dimension-size-50));margin-bottom:0}[dir=ltr] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:right}[dir=rtl] .spectrum-FieldLabel--alignEnd_d2db1f{text-align:left}.spectrum-FieldLabel--alignEnd_d2db1f{justify-content:flex-end}.spectrum-Field_d2db1f{--spectrum-field-default-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}[dir=ltr] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-global-dimension-size-50)}[dir=rtl] .spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-global-dimension-size-50)}.spectrum-Field_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-25);grid-area:contextualHelp}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f){display:-ms-inline-grid;-ms-grid-columns:auto auto minmax(0,1fr);-ms-grid-rows:auto 1fr auto;width:var(--spectrum-field-default-width);grid-template:\"label contextualHelp.\"\"field field field\"1fr\"helpText helpText helpText\"/auto auto minmax(0,1fr);align-content:start;display:inline-grid}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-Field-field_d2db1f{width:100%;grid-area:field}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f).spectrum-Field--alignEnd_d2db1f{-ms-grid-columns:1fr auto 0;grid-template-columns:1fr auto 0}.spectrum-Field_d2db1f:where(.spectrum-Field--positionTop_d2db1f) .spectrum-FieldLabel_d2db1f{grid-area:label}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f){align-items:flex-start;display:inline-flex}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{min-width:0;width:var(--spectrum-field-default-width);height:100%;flex:1}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f .spectrum-Field-field_d2db1f{width:100%}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-field_d2db1f{min-width:0;flex:1}[dir=ltr] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-right:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-left:var(--spectrum-fieldlabel-side-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Field_d2db1f:where(.spectrum-Field--positionSide_d2db1f) .spectrum-Field-contextualHelp_d2db1f{margin-top:var(--spectrum-global-dimension-size-65)}[dir=ltr] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-right:0}[dir=rtl] .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-FieldLabel_d2db1f{padding-left:0}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:left}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){text-align:right}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f){border-collapse:separate;border-spacing:0 var(--spectrum-global-dimension-size-300);margin:calc(var(--spectrum-global-dimension-size-250)*-1)0;display:table}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f{width:100%;display:table-row}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f:not(.spectrum-Field--hasContextualHelp_d2db1f) .spectrum-FieldLabel_d2db1f,.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--hasContextualHelp_d2db1f .spectrum-Field-labelCell_d2db1f{display:table-cell}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelCell_d2db1f{vertical-align:top}[dir=ltr] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:right}[dir=rtl] .spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f.spectrum-Field--alignEnd_d2db1f .spectrum-Field-labelCell_d2db1f{text-align:left}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f{display:inline-flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field_d2db1f .spectrum-Field-labelWrapper_d2db1f .spectrum-FieldLabel_d2db1f{flex:1}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-wrapper_d2db1f{width:100%}.spectrum-Form_d2db1f:where(.spectrum-Form--positionSide_d2db1f) .spectrum-Field-field_d2db1f{width:auto;min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400))}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f){min-width:var(--spectrum-alias-single-line-width,var(--spectrum-global-dimension-size-2400));flex-direction:column;margin:0;display:flex}.spectrum-Form_d2db1f:where(.spectrum-Form--positionTop_d2db1f)>*{margin-top:var(--spectrum-global-dimension-size-100);width:100%}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f{-ms-flex-align:first baseline;align-items:baseline}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionSide_d2db1f .spectrum-Field-contextualHelp_d2db1f{top:var(--spectrum-global-dimension-size-40);margin-top:var(--spectrum-global-dimension-size-65);position:relative}.spectrum-LabeledValue_d2db1f.spectrum-Field--positionTop_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-FieldLabel_d2db1f.spectrum-FieldLabel_d2db1f{padding-top:0}.spectrum-LabeledValue_d2db1f .spectrum-Field-wrapper_d2db1f.spectrum-Field-wrapper_d2db1f{width:unset}.spectrum-LabeledValue_d2db1f .spectrum-Field-field_d2db1f{word-break:break-word;overflow:hidden}.spectrum-LabeledValue_d2db1f .spectrum-Field-contextualHelp_d2db1f{margin-top:calc(-1*var(--spectrum-global-dimension-size-25))}.spectrum-FieldLabel_d2db1f,.spectrum-Form-itemLabel_d2db1f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f{color:var(--spectrum-fieldlabel-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f,.spectrum-Form-itemLabel_d2db1f.is-disabled_d2db1f .spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldLabel-requiredIcon_d2db1f{color:var(--spectrum-fieldlabel-asterisk-color,var(--spectrum-global-color-gray-600))}","[dir=ltr] .spectrum-Checkbox_4870fc{padding-right:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*2)}[dir=rtl] .spectrum-Checkbox_4870fc{padding-left:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*2)}.spectrum-Checkbox_4870fc{box-sizing:border-box;min-height:var(--spectrum-checkbox-height,var(--spectrum-global-dimension-size-400));max-width:100%;vertical-align:top;isolation:isolate;align-items:flex-start;display:inline-flex;position:relative}[dir=ltr] .spectrum-Checkbox-input_4870fc{left:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*-1)}[dir=rtl] .spectrum-Checkbox-input_4870fc{right:calc(var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100))*-1)}.spectrum-Checkbox-input_4870fc{box-sizing:border-box;width:calc(100% + var(--spectrum-checkbox-cursor-hit-x,var(--spectrum-global-dimension-size-100)));height:100%;opacity:.0001;z-index:1;cursor:default;margin:0;padding:0;font-family:inherit;font-size:100%;line-height:1.15;position:absolute;top:0;overflow:visible}.spectrum-Checkbox-input_4870fc:disabled{cursor:default}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:after{margin:calc(var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25))*-1)}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before{border-width:calc(var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175))/2)}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc{display:none}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-partialCheckmark_4870fc{opacity:1;display:block;transform:scale(1)}.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before{border-width:calc(var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175))/2)}.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc .spectrum-Checkbox-checkmark_4870fc{opacity:1;transform:scale(1)}[dir=ltr] .spectrum-Checkbox-label_4870fc{text-align:left}[dir=rtl] .spectrum-Checkbox-label_4870fc{text-align:right}[dir=ltr] .spectrum-Checkbox-label_4870fc{margin-left:var(--spectrum-checkbox-text-gap,var(--spectrum-global-dimension-size-125))}[dir=rtl] .spectrum-Checkbox-label_4870fc{margin-right:var(--spectrum-checkbox-text-gap,var(--spectrum-global-dimension-size-125))}.spectrum-Checkbox-label_4870fc{margin-top:var(--spectrum-global-dimension-size-65);font-size:var(--spectrum-checkbox-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-checkbox-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:1.49}.spectrum-Checkbox-box_4870fc{box-sizing:border-box;width:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));height:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));margin:calc((var(--spectrum-checkbox-height,var(--spectrum-global-dimension-size-400)) - var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175)))/2)0;flex-grow:0;flex-shrink:0;position:relative}.spectrum-Checkbox-box_4870fc:before{z-index:0;content:\"\";box-sizing:border-box;width:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));height:var(--spectrum-checkbox-box-size,var(--spectrum-global-dimension-size-175));border-radius:var(--spectrum-checkbox-box-border-radius,var(--spectrum-alias-border-radius-small));border-width:var(--spectrum-checkbox-box-border-size,var(--spectrum-alias-border-size-thick));transition:border var(--spectrum-global-animation-duration-100,.13s)ease-in-out,box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-in-out;border-style:solid;display:block;position:absolute}.spectrum-Checkbox-box_4870fc:after{border-radius:calc(var(--spectrum-checkbox-box-border-radius,var(--spectrum-alias-border-radius-small)) + var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25)));content:\"\";margin:var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25));transition:opacity var(--spectrum-global-animation-duration-100,.13s)ease-out,margin var(--spectrum-global-animation-duration-100,.13s)ease-out;display:block;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(0)}[dir=ltr] .spectrum-Checkbox-checkmark_4870fc,[dir=ltr] .spectrum-Checkbox-partialCheckmark_4870fc{left:50%}[dir=rtl] .spectrum-Checkbox-checkmark_4870fc,[dir=rtl] .spectrum-Checkbox-partialCheckmark_4870fc{right:50%}[dir=ltr] .spectrum-Checkbox-checkmark_4870fc,[dir=ltr] .spectrum-Checkbox-partialCheckmark_4870fc{margin-left:calc(var(--spectrum-icon-checkmark-small-width)/-2)}[dir=rtl] .spectrum-Checkbox-checkmark_4870fc,[dir=rtl] .spectrum-Checkbox-partialCheckmark_4870fc{margin-right:calc(var(--spectrum-icon-checkmark-small-width)/-2)}.spectrum-Checkbox-checkmark_4870fc,.spectrum-Checkbox-partialCheckmark_4870fc{margin-top:calc(var(--spectrum-icon-checkmark-small-height)/-2);opacity:0;transition:opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out;position:absolute;top:50%;transform:scale(0)}.spectrum-Checkbox-partialCheckmark_4870fc{display:none}.spectrum-Checkbox_4870fc{color:var(--spectrum-checkbox-text-color,var(--spectrum-alias-text-color))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-checkmark_4870fc,.spectrum-Checkbox_4870fc .spectrum-Checkbox-partialCheckmark_4870fc{color:var(--spectrum-checkbox-checkmark-color,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color,var(--spectrum-global-color-gray-600));background-color:var(--spectrum-checkbox-emphasized-box-background-color,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color,var(--spectrum-alias-text-color))}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-checked_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-900)}.spectrum-Checkbox_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1000)}.spectrum-Checkbox_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1100)}.spectrum-Checkbox_4870fc{border-color:var(--spectrum-checkbox-emphasized-box-border-color,var(--spectrum-global-color-gray-600))}.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-hover,var(--spectrum-global-color-gray-700))}.spectrum-Checkbox_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-down,var(--spectrum-global-color-gray-800))}.spectrum-Checkbox_4870fc:active .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled:active+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled:active+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-emphasized-box-border-color-disabled,var(--spectrum-global-color-gray-400));background-color:var(--spectrum-checkbox-emphasized-box-background-color-disabled,var(--spectrum-global-color-gray-75))}.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:disabled~.spectrum-Checkbox-label_4870fc,.spectrum-Checkbox_4870fc .spectrum-Checkbox-input_4870fc:checked:disabled~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Checkbox-input_4870fc+.spectrum-Checkbox-box_4870fc:after{box-shadow:0 0 0 var(--spectrum-checkbox-focus-ring-size-key-focus,var(--spectrum-alias-focus-ring-size))var(--spectrum-checkbox-focus-ring-color-key-focus,var(--spectrum-alias-focus-ring-color));opacity:0}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-key-focus)}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:after{opacity:1}.spectrum-Checkbox_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox-input_4870fc:checked.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-accent-color-1000)}.spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-emphasized-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Checkbox--quiet_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-selected)}.spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-selected-hover)}.spectrum-Checkbox--quiet_4870fc:active.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox--quiet_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-quiet-box-border-color-selected-down,var(--spectrum-global-color-gray-900))}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc,.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc.focus-ring_4870fc~.spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-hover,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-hovered_4870fc .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-hover,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before,.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error-down,var(--spectrum-global-color-red-700))}.spectrum-Checkbox_4870fc.is-invalid_4870fc:active .spectrum-Checkbox-label_4870fc{color:var(--spectrum-checkbox-text-color-error-down,var(--spectrum-global-color-red-700))}@media (forced-colors:active){.spectrum-Checkbox_4870fc{forced-color-adjust:none;--spectrum-checkbox-box-border-color:ButtonText;--spectrum-checkbox-box-border-color-error:Highlight;--spectrum-checkbox-box-border-color-error-down:Highlight;--spectrum-checkbox-box-border-color-error-hover:Highlight;--spectrum-checkbox-box-border-color-key-focus:Highlight;--spectrum-checkbox-checkmark-color:HighlightText;--spectrum-checkbox-emphasized-box-background-color:ButtonFace;--spectrum-checkbox-emphasized-box-background-color-disabled:ButtonFace;--spectrum-checkbox-emphasized-box-border-color:ButtonText;--spectrum-checkbox-emphasized-box-border-color-disabled:GrayText;--spectrum-checkbox-emphasized-box-border-color-down:Highlight;--spectrum-checkbox-emphasized-box-border-color-hover:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-down:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-hover:Highlight;--spectrum-checkbox-emphasized-box-border-color-selected-key-focus:Highlight;--spectrum-checkbox-emphasized-text-color:FieldText;--spectrum-checkbox-emphasized-text-color-down:FieldText;--spectrum-checkbox-emphasized-text-color-hover:FieldText;--spectrum-checkbox-emphasized-text-color-key-focus:FieldText;--spectrum-checkbox-focus-ring-color-key-focus:ButtonText;--spectrum-checkbox-quiet-box-border-color-selected:Highlight;--spectrum-checkbox-quiet-box-border-color-selected-down:Highlight;--spectrum-checkbox-quiet-box-border-color-selected-hover:Highlight;--spectrum-checkbox-text-color:FieldText;--spectrum-checkbox-text-color-disabled:GrayText;--spectrum-checkbox-text-color-error:FieldText;--spectrum-checkbox-text-color-error-down:FieldText;--spectrum-checkbox-text-color-error-hover:FieldText}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-alias-toggle-color-default)}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-indeterminate_4870fc .spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-Checkbox_4870fc.is-invalid_4870fc.is-disabled_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:GrayText}.spectrum-Checkbox_4870fc.is-invalid_4870fc .spectrum-Checkbox-input_4870fc:checked+.spectrum-Checkbox-box_4870fc:before{border-color:var(--spectrum-checkbox-box-border-color-error,var(--spectrum-global-color-red-500))}}.spectrum-FieldGroup_41d350.spectrum-FieldGroup_41d350{width:auto;--spectrum-field-default-width:auto}.spectrum-FieldGroup-group_41d350{flex-direction:column;display:flex}.spectrum-FieldGroup-group--horizontal_41d350{flex-flow:wrap}",".spectrum-BarLoader_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px);width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400));vertical-align:top;isolation:isolate;flex-flow:wrap;justify-content:space-between;align-items:center;display:inline-flex;position:relative}.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f{max-width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400))}.spectrum-BarLoader_48541f.spectrum-BarLoader--indeterminate_48541f.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f{max-width:var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400));width:100%}.spectrum-BarLoader-track_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px);width:100%;height:var(--spectrum-barloader-large-height,var(--spectrum-global-dimension-size-75));border-radius:var(--spectrum-barloader-large-border-radius);z-index:1;overflow:hidden}.spectrum-BarLoader-fill_48541f{height:var(--spectrum-barloader-large-height,var(--spectrum-global-dimension-size-75));border:none;transition:width 1s}[dir=ltr] .spectrum-BarLoader-label_48541f,[dir=ltr] .spectrum-BarLoader-percentage_48541f{text-align:left}[dir=rtl] .spectrum-BarLoader-label_48541f,[dir=rtl] .spectrum-BarLoader-percentage_48541f{text-align:right}.spectrum-BarLoader-label_48541f,.spectrum-BarLoader-percentage_48541f{font-size:var(--spectrum-fieldlabel-text-size,var(--spectrum-global-dimension-font-size-75));font-weight:var(--spectrum-fieldlabel-text-font-weight,var(--spectrum-global-font-weight-regular));line-height:var(--spectrum-fieldlabel-text-line-height,var(--spectrum-global-font-line-height-small));margin-bottom:var(--spectrum-barloader-large-label-gap-y,var(--spectrum-global-dimension-size-115))}.spectrum-BarLoader-label_48541f{flex:1}[dir=ltr] .spectrum-BarLoader-percentage_48541f{margin-left:var(--spectrum-barloader-small-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader-percentage_48541f{margin-right:var(--spectrum-barloader-small-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader-percentage_48541f{align-self:flex-start}.spectrum-BarLoader--sideLabel_48541f{min-width:-moz-fit-content;min-width:-moz-fit-content;min-width:fit-content;flex-flow:row;justify-content:space-between;display:inline-flex}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-track_48541f{width:inherit}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-right:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-left:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-label_48541f{margin-bottom:0}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{text-align:right}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{text-align:left}[dir=ltr] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{margin-left:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{margin-right:var(--spectrum-barloader-large-label-gap-x,var(--spectrum-global-dimension-size-150))}.spectrum-BarLoader--sideLabel_48541f .spectrum-BarLoader-percentage_48541f{order:3;margin-bottom:0}.spectrum-BarLoader--small_48541f{min-width:var(--spectrum-global-dimension-static-size-600,48px)}.spectrum-BarLoader--small_48541f .spectrum-BarLoader-fill_48541f{height:var(--spectrum-barloader-small-height,var(--spectrum-global-dimension-size-50))}.spectrum-BarLoader--small_48541f .spectrum-BarLoader-track_48541f{height:var(--spectrum-barloader-small-height,var(--spectrum-global-dimension-size-50));border-radius:var(--spectrum-barloader-small-border-radius)}.spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{width:var(--spectrum-barloader-large-indeterminate-fill-width,var(--spectrum-global-dimension-size-1700));animation-timing-function:var(--spectrum-barloader-large-indeterminate-animation-ease,var(--spectrum-global-animation-ease-in-out));will-change:transform;position:relative}[dir=ltr] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{animation:indeterminate-loop-ltr_48541f var(--spectrum-barloader-large-indeterminate-duration,var(--spectrum-global-animation-duration-2000))infinite}[dir=rtl] .spectrum-BarLoader--indeterminate_48541f .spectrum-BarLoader-fill_48541f{animation:indeterminate-loop-rtl_48541f var(--spectrum-barloader-large-indeterminate-duration,var(--spectrum-global-animation-duration-2000))infinite}@keyframes indeterminate-loop-ltr_48541f{0%{transform:translate(calc(var(--spectrum-barloader-large-indeterminate-fill-width,var(--spectrum-global-dimension-size-1700))*-1))}to{transform:translate(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400)))}}@keyframes indeterminate-loop-rtl_48541f{0%{transform:translate(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400)))}to{transform:translate(calc(var(--spectrum-barloader-large-width,var(--spectrum-global-dimension-size-2400))*-1))}}.spectrum-BarLoader_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-accent-color-900)}.spectrum-BarLoader_48541f .spectrum-BarLoader-track_48541f{background-color:var(--spectrum-barloader-large-track-color,var(--spectrum-alias-track-color-default))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-barloader-large-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-label_48541f,.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-percentage_48541f{color:var(--spectrum-barloader-large-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-BarLoader_48541f.spectrum-BarLoader--overBackground_48541f .spectrum-BarLoader-track_48541f{background-color:var(--spectrum-barloader-large-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-BarLoader_48541f.is-positive_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-positive,var(--spectrum-semantic-positive-color-status))}.spectrum-BarLoader_48541f.is-warning_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-warning,var(--spectrum-semantic-notice-color-status))}.spectrum-BarLoader_48541f.is-critical_48541f .spectrum-BarLoader-fill_48541f{background:var(--spectrum-meter-large-track-color-critical,var(--spectrum-semantic-negative-color-status))}.spectrum-BarLoader-label_48541f,.spectrum-BarLoader-percentage_48541f{color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color));color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color));color:var(--spectrum-fieldlabel-text-color,var(--spectrum-alias-label-text-color))}@media (forced-colors:active){.spectrum-BarLoader-track_48541f{forced-color-adjust:none;--spectrum-barloader-large-track-fill-color:ButtonText;--spectrum-barloader-large-track-color:ButtonFace;border:1px solid ButtonText}}.spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153{animation:1s linear infinite spectrum-fill-mask-2_7c1153}@keyframes spectrum-fill-mask-1_7c1153{0%{transform:rotate(90deg)}1.69%{transform:rotate(72.3deg)}3.39%{transform:rotate(55.5deg)}5.08%{transform:rotate(40.3deg)}6.78%{transform:rotate(25deg)}8.47%{transform:rotate(10.6deg)}10.17%{transform:rotate(0)}11.86%{transform:rotate(0)}13.56%{transform:rotate(0)}15.25%{transform:rotate(0)}16.95%{transform:rotate(0)}18.64%{transform:rotate(0)}20.34%{transform:rotate(0)}22.03%{transform:rotate(0)}23.73%{transform:rotate(0)}25.42%{transform:rotate(0)}27.12%{transform:rotate(0)}28.81%{transform:rotate(0)}30.51%{transform:rotate(0)}32.2%{transform:rotate(0)}33.9%{transform:rotate(0)}35.59%{transform:rotate(0)}37.29%{transform:rotate(0)}38.98%{transform:rotate(0)}40.68%{transform:rotate(0)}42.37%{transform:rotate(5.3deg)}44.07%{transform:rotate(13.4deg)}45.76%{transform:rotate(20.6deg)}47.46%{transform:rotate(29deg)}49.15%{transform:rotate(36.5deg)}50.85%{transform:rotate(42.6deg)}52.54%{transform:rotate(48.8deg)}54.24%{transform:rotate(54.2deg)}55.93%{transform:rotate(59.4deg)}57.63%{transform:rotate(63.2deg)}59.32%{transform:rotate(67.2deg)}61.02%{transform:rotate(70.8deg)}62.71%{transform:rotate(73.8deg)}64.41%{transform:rotate(76.2deg)}66.1%{transform:rotate(78.7deg)}67.8%{transform:rotate(80.6deg)}69.49%{transform:rotate(82.6deg)}71.19%{transform:rotate(83.7deg)}72.88%{transform:rotate(85deg)}74.58%{transform:rotate(86.3deg)}76.27%{transform:rotate(87deg)}77.97%{transform:rotate(87.7deg)}79.66%{transform:rotate(88.3deg)}81.36%{transform:rotate(88.6deg)}83.05%{transform:rotate(89.2deg)}84.75%{transform:rotate(89.2deg)}86.44%{transform:rotate(89.5deg)}88.14%{transform:rotate(89.9deg)}89.83%{transform:rotate(89.7deg)}91.53%{transform:rotate(90.1deg)}93.22%{transform:rotate(90.2deg)}94.92%{transform:rotate(90.1deg)}96.61%{transform:rotate(90deg)}98.31%{transform:rotate(89.8deg)}to{transform:rotate(90deg)}}@keyframes spectrum-fill-mask-2_7c1153{0%{transform:rotate(180deg)}1.69%{transform:rotate(180deg)}3.39%{transform:rotate(180deg)}5.08%{transform:rotate(180deg)}6.78%{transform:rotate(180deg)}8.47%{transform:rotate(180deg)}10.17%{transform:rotate(179.2deg)}11.86%{transform:rotate(164deg)}13.56%{transform:rotate(151.8deg)}15.25%{transform:rotate(140.8deg)}16.95%{transform:rotate(130.3deg)}18.64%{transform:rotate(120.4deg)}20.34%{transform:rotate(110.8deg)}22.03%{transform:rotate(101.6deg)}23.73%{transform:rotate(93.5deg)}25.42%{transform:rotate(85.4deg)}27.12%{transform:rotate(78.1deg)}28.81%{transform:rotate(71.2deg)}30.51%{transform:rotate(89.1deg)}32.2%{transform:rotate(105.5deg)}33.9%{transform:rotate(121.3deg)}35.59%{transform:rotate(135.5deg)}37.29%{transform:rotate(148.4deg)}38.98%{transform:rotate(161deg)}40.68%{transform:rotate(173.5deg)}42.37%{transform:rotate(180deg)}44.07%{transform:rotate(180deg)}45.76%{transform:rotate(180deg)}47.46%{transform:rotate(180deg)}49.15%{transform:rotate(180deg)}50.85%{transform:rotate(180deg)}52.54%{transform:rotate(180deg)}54.24%{transform:rotate(180deg)}55.93%{transform:rotate(180deg)}57.63%{transform:rotate(180deg)}59.32%{transform:rotate(180deg)}61.02%{transform:rotate(180deg)}62.71%{transform:rotate(180deg)}64.41%{transform:rotate(180deg)}66.1%{transform:rotate(180deg)}67.8%{transform:rotate(180deg)}69.49%{transform:rotate(180deg)}71.19%{transform:rotate(180deg)}72.88%{transform:rotate(180deg)}74.58%{transform:rotate(180deg)}76.27%{transform:rotate(180deg)}77.97%{transform:rotate(180deg)}79.66%{transform:rotate(180deg)}81.36%{transform:rotate(180deg)}83.05%{transform:rotate(180deg)}84.75%{transform:rotate(180deg)}86.44%{transform:rotate(180deg)}88.14%{transform:rotate(180deg)}89.83%{transform:rotate(180deg)}91.53%{transform:rotate(180deg)}93.22%{transform:rotate(180deg)}94.92%{transform:rotate(180deg)}96.61%{transform:rotate(180deg)}98.31%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes spectrum-fills-rotate_7c1153{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}.spectrum-CircleLoader_7c1153{width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));direction:ltr;display:inline-block;position:relative}.spectrum-CircleLoader-track_7c1153{box-sizing:border-box;width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));border-style:solid;border-width:var(--spectrum-loader-circle-medium-border-size);border-radius:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400))}.spectrum-CircleLoader-fills_7c1153{width:100%;height:100%;position:absolute;top:0;left:0}.spectrum-CircleLoader-fill_7c1153{box-sizing:border-box;width:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400));height:var(--spectrum-loader-circle-medium-height,var(--spectrum-global-dimension-static-size-400));border-style:solid;border-width:var(--spectrum-loader-circle-medium-border-size);border-radius:var(--spectrum-loader-circle-medium-width,var(--spectrum-global-dimension-static-size-400))}.spectrum-CircleLoader-fillMask1_7c1153,.spectrum-CircleLoader-fillMask2_7c1153{width:50%;height:100%;transform-origin:100%;position:absolute;overflow:hidden;transform:rotate(180deg)}.spectrum-CircleLoader-fillSubMask1_7c1153,.spectrum-CircleLoader-fillSubMask2_7c1153{width:100%;height:100%;transform-origin:100%;overflow:hidden;transform:rotate(-180deg)}.spectrum-CircleLoader-fillMask2_7c1153{transform:rotate(0)}.spectrum-CircleLoader--small_7c1153{width:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200));height:var(--spectrum-loader-circle-small-height,var(--spectrum-global-dimension-static-size-200))}.spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-track_7c1153,.spectrum-CircleLoader--small_7c1153 .spectrum-CircleLoader-fill_7c1153{width:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200));height:var(--spectrum-loader-circle-small-height,var(--spectrum-global-dimension-static-size-200));border-style:solid;border-width:var(--spectrum-loader-circle-small-border-size);border-radius:var(--spectrum-loader-circle-small-width,var(--spectrum-global-dimension-static-size-200))}.spectrum-CircleLoader--large_7c1153{width:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800));height:var(--spectrum-loader-circle-large-height,var(--spectrum-global-dimension-size-800))}.spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-track_7c1153,.spectrum-CircleLoader--large_7c1153 .spectrum-CircleLoader-fill_7c1153{width:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800));height:var(--spectrum-loader-circle-large-height,var(--spectrum-global-dimension-size-800));border-style:solid;border-width:var(--spectrum-loader-circle-large-border-size,var(--spectrum-global-dimension-size-50));border-radius:var(--spectrum-loader-circle-large-width,var(--spectrum-global-dimension-size-800))}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fills_7c1153{will-change:transform;transform-origin:50%;animation:1s cubic-bezier(.25,.78,.48,.89) infinite spectrum-fills-rotate_7c1153;transform:translateZ(0)}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask1_7c1153{will-change:transform;animation:1s linear infinite spectrum-fill-mask-1_7c1153;transform:translateZ(0)}.spectrum-CircleLoader--indeterminate_7c1153 .spectrum-CircleLoader-fillSubMask2_7c1153{will-change:transform;animation:1s linear infinite spectrum-fill-mask-2_7c1153;transform:translateZ(0)}.spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-track-color,var(--spectrum-alias-track-color-default))}.spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-accent-color-900)}.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-fill-color,var(--spectrum-global-color-static-white))}.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-track_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-color,var(--spectrum-alias-track-color-over-background))}.spectrum-CircleLoader--indeterminate_7c1153.spectrum-CircleLoader--overBackground_7c1153 .spectrum-CircleLoader-fill_7c1153{border-color:var(--spectrum-loader-circle-medium-over-background-track-fill-color,var(--spectrum-global-color-static-white))}@media (forced-colors:active){.spectrum-CircleLoader-fill_7c1153{--spectrum-loader-circle-medium-track-fill-color:Highlight}}",".react-spectrum-ListView_dd5487{box-sizing:border-box;border-color:var(--spectrum-alias-border-color-mid,var(--spectrum-global-color-gray-300));border-style:solid;border-width:var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));vertical-align:var(--spectrum-table-cell-vertical-alignment,top);border-collapse:separate;border-spacing:0;background-color:var(--spectrum-global-color-gray-50);-webkit-user-select:none;user-select:none;outline:0;padding:0;position:relative;overflow:auto;transform:translate(0,0)}.react-spectrum-ListView_dd5487 .react-spectrum-ListView-row_dd5487{outline:none}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{left:1px}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{right:1px}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487.react-spectrum-ListView--dropTarget_dd5487 .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):after{left:1px}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{left:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{right:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{left:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487:after{content:\"\";z-index:3;pointer-events:none;display:block;position:absolute;top:0;bottom:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487{background-color:var(--spectrum-table-row-background-color-selected,var(--spectrum-alias-highlight-selected))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487,.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-selected-hover,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-selected-key-focus,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.is-selected_dd5487:after{box-shadow:inset 1px 0 0 0 var(--spectrum-global-color-blue-500),inset -1px 0 0 0 var(--spectrum-global-color-blue-500),inset 0 -1px 0 0 var(--spectrum-global-color-blue-500),inset 0 1px 0 0 var(--spectrum-global-color-blue-500);top:-1px}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{top:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487:not(.is-selected_dd5487):not(.is-next-selected_dd5487):not(.react-spectrum-ListViewItem--isFlushBottom_dd5487):after{box-shadow:inset 0 -1px 0 0 var(--spectrum-table-cell-border-color,var(--spectrum-global-color-gray-300))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487):not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem--firstRow_dd5487.is-selected_dd5487:after{border-top-left-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--emphasized_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487:not(.react-spectrum-ListView--loadingMore_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem--isFlushBottom_dd5487.is-selected_dd5487:after{border-bottom-left-radius:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListView_dd5487.react-spectrum-ListView--wrap_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{white-space:normal;height:auto}.react-spectrum-ListView-row_dd5487{cursor:default}[dir=ltr] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{left:0}[dir=rtl] .react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{right:0}.react-spectrum-ListView-row_dd5487.focus-ring_dd5487:before{content:\"\";width:3px;z-index:4;background:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus));position:absolute;top:0;bottom:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487{background-color:var(--spectrum-alias-background-color-transparent,transparent);border-width:0;border-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487.focus-ring_dd5487:before{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-tops_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-top-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487.focus-ring_dd5487:before{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after,[dir=ltr] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-right-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}[dir=rtl] .react-spectrum-ListView_dd5487.react-spectrum-ListView--quiet_dd5487 .react-spectrum-ListView-row_dd5487.round-bottoms_dd5487>.react-spectrum-ListViewItem_dd5487:after{border-bottom-left-radius:calc(var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50)) - var(--spectrum-alias-border-size-thin,var(--spectrum-global-dimension-static-size-10)))}.react-spectrum-ListViewItem_dd5487{display:-ms-grid;box-sizing:border-box;font-size:var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100));font-weight:var(--spectrum-global-font-weight-regular,400);line-height:calc(var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100))*var(--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)) - 1px);padding:var(--spectrum-global-dimension-size-85)var(--spectrum-global-dimension-size-160);color:var(--spectrum-alias-text-color,var(--spectrum-global-color-gray-800));min-height:var(--spectrum-global-dimension-size-500);outline:0;display:grid;position:relative}.react-spectrum-ListViewItem_dd5487.is-hovered_dd5487,.react-spectrum-ListViewItem_dd5487.is-focused_dd5487,.react-spectrum-ListViewItem_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-hover,var(--spectrum-alias-highlight-hover))}.react-spectrum-ListViewItem_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-down,var(--spectrum-alias-highlight-active))}.react-spectrum-ListViewItem_dd5487.is-selected_dd5487,.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-hovered_dd5487,.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.is-active_dd5487{background-color:var(--spectrum-table-row-background-color-hover,var(--spectrum-alias-highlight-hover))}.react-spectrum-ListViewItem_dd5487.is-selected_dd5487.focus-ring_dd5487{background-color:var(--spectrum-table-row-background-color-selected-key-focus,var(--spectrum-alias-highlight-selected-hover))}.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487,.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListViewItem_dd5487.is-disabled_dd5487 .react-spectrum-ListViewItem-description_dd5487{color:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500))}.react-spectrum-ListViewItem_dd5487.has-checkbox_dd5487{padding-top:0;padding-bottom:0}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-grid_dd5487{display:-ms-grid;-ms-grid-columns:auto auto auto 1fr auto auto auto;-ms-grid-rows:1fr auto;grid-template:\"draghandle checkbox thumbnail content actions actionmenu chevron\"1fr\"draghandle checkbox thumbnail description actions actionmenu chevron\"/auto auto auto 1fr auto auto auto;align-items:center;display:grid}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{padding-left:var(--spectrum-global-dimension-size-40)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{padding-right:var(--spectrum-global-dimension-size-40)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487{width:var(--spectrum-global-dimension-size-250);padding:var(--spectrum-global-dimension-size-25);grid-area:draghandle;justify-content:center;place-self:stretch stretch;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487{width:var(--spectrum-global-dimension-size-200);border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));justify-content:center;align-items:center;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-draghandle-container_dd5487 .react-spectrum-ListViewItem-draghandle-button_dd5487.focus-ring_dd5487{box-shadow:inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus));outline:none}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkboxWrapper_dd5487{-ms-grid-column-align:center;grid-area:checkbox;place-items:center;transition-duration:.16s;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487{min-height:0;height:100%}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487>span{margin:0}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{padding-left:var(--spectrum-global-dimension-size-100)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487{-ms-grid-column-align:center;border-radius:var(--spectrum-global-dimension-size-25);width:var(--spectrum-global-dimension-size-400);height:var(--spectrum-global-dimension-size-400);grid-area:thumbnail;justify-content:center;place-items:center;display:flex}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-thumbnail_dd5487>img{width:unset;height:100%}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487,.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{white-space:nowrap;text-overflow:ellipsis;height:calc(var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100))*var(--spectrum-alias-body-text-line-height,var(--spectrum-global-font-line-height-medium)) - 1px);flex-grow:1;overflow:hidden}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-content_dd5487{color:var(--spectrum-global-color-gray-800);font-size:var(--spectrum-global-dimension-font-size-100);grid-area:content}.react-spectrum-ListViewItem_dd5487:not(.react-spectrum-ListView--hasDescription_dd5487) .react-spectrum-ListViewItem-content_dd5487{grid-area:content/description}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-description_dd5487{color:var(--spectrum-global-color-gray-700);font-size:var(--spectrum-global-dimension-font-size-75);grid-area:description}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actions_dd5487{flex-grow:0;flex-shrink:0;grid-area:actions}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487{grid-area:actionmenu}[dir=ltr] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{padding-left:var(--spectrum-global-dimension-size-75)}[dir=rtl] .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{padding-right:var(--spectrum-global-dimension-size-75)}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{transition:color var(--spectrum-global-animation-duration-100,.13s);grid-area:chevron;display:none}.react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487.is-disabled_dd5487{color:var(--spectrum-alias-icon-color-disabled,var(--spectrum-global-color-gray-400))}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487{width:var(--spectrum-global-dimension-size-2400);border:1px solid var(--spectrum-dropzone-border-color-selected-hover,var(--spectrum-global-color-blue-400));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));background-color:var(--spectrum-global-color-gray-50)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--compact_dd5487{padding-top:var(--spectrum-global-dimension-size-50);padding-bottom:var(--spectrum-global-dimension-size-50)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--spacious_dd5487{padding-top:var(--spectrum-global-dimension-size-100);padding-bottom:var(--spectrum-global-dimension-size-100)}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-grid_dd5487{-ms-grid-columns:auto auto 1fr auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"thumbnail content.badge\"\"thumbnail description.badge\"}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-badge_dd5487{color:#fff;background:var(--spectrum-global-color-blue-400);border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));grid-area:badge;padding:0 8px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487{position:relative}[dir=ltr] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{left:4px}[dir=rtl] .react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{right:4px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487.react-spectrum-ListViewItem-dragPreview--multiple_dd5487:after{content:\"\";z-index:-1;width:100%;height:100%;border:1px solid var(--spectrum-dropzone-border-color-selected-hover,var(--spectrum-global-color-blue-400));border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));background-color:var(--spectrum-global-color-gray-50);display:block;position:absolute;top:4px}.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actions_dd5487,.react-spectrum-ListViewItem_dd5487.react-spectrum-ListViewItem-dragPreview_dd5487 .react-spectrum-ListViewItem-actionmenu_dd5487{display:none}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-right-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487) .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:var(--spectrum-listview-item-start-end-border-radius)}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--firstRow_dd5487.react-spectrum-ListViewItem_dd5487{border-top-left-radius:0}[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isVerticalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487,[dir=ltr] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-right-radius:0}[dir=rtl] .react-spectrum-ListView_dd5487:not(.react-spectrum-ListView--quiet_dd5487).react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487 .react-spectrum-ListViewItem--lastRow_dd5487.react-spectrum-ListViewItem_dd5487{border-bottom-left-radius:0}.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator_dd5487{visibility:hidden;display:inline-block}.react-spectrum-ListView_dd5487.react-spectrum-ListView--hasAnyChildren_dd5487 .react-spectrum-ListViewItem-parentIndicator--hasChildItems_dd5487{visibility:visible}.react-spectrum-ListView--compact_dd5487 .react-spectrum-ListViewItem_dd5487{padding-top:var(--spectrum-global-dimension-size-50);padding-bottom:var(--spectrum-global-dimension-size-50);min-height:var(--spectrum-global-dimension-size-400)}.react-spectrum-ListView--spacious_dd5487 .react-spectrum-ListViewItem_dd5487{padding-top:var(--spectrum-global-dimension-size-100);padding-bottom:var(--spectrum-global-dimension-size-100);min-height:var(--spectrum-global-dimension-size-600)}[dir=ltr] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487{padding-left:0}[dir=rtl] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487{padding-right:0}[dir=ltr] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input{left:0}[dir=rtl] .react-spectrum-ListView--draggable_dd5487 .react-spectrum-ListViewItem_dd5487 .react-spectrum-ListViewItem-checkbox_dd5487 input{right:0}.react-spectrum-ListViewItem--dropTarget_dd5487{background-color:var(--spectrum-alias-highlight-selected);box-shadow:inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487{border-color:var(--spectrum-global-color-blue-500);background-color:var(--spectrum-alias-highlight-selected);box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView_dd5487.react-spectrum-ListView--dropTarget_dd5487.react-spectrum-ListView--quiet_dd5487{box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus)),0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.react-spectrum-ListView-centeredWrapper_dd5487{width:100%;height:100%;justify-content:center;align-items:center;display:flex}.react-spectrum-ListView-centeredWrapper_dd5487.react-spectrum-ListView-centeredWrapper--loadingMore_dd5487{padding-top:var(--spectrum-global-dimension-size-50)}[dir=ltr] .react-spectrum-ListViewInsertionIndicator_dd5487{left:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))}[dir=rtl] .react-spectrum-ListViewInsertionIndicator_dd5487{right:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))}.react-spectrum-ListViewInsertionIndicator_dd5487{width:calc(100% - 2*var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150)));outline:none;position:absolute}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487{background:var(--spectrum-dropindicator-border-color,var(--spectrum-global-color-blue-400));border-bottom:2px solid var(--spectrum-dropindicator-border-color,var(--spectrum-global-color-blue-400))}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before{left:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1)}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after{right:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1)}.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:before,.react-spectrum-ListViewInsertionIndicator_dd5487.react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487:after{content:\"\";top:calc(var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150))*-1/2 + var(--spectrum-dropindicator-border-size,var(--spectrum-alias-border-size-thick))/2);width:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150));height:var(--spectrum-dropindicator-circle-size,var(--spectrum-global-dimension-static-size-150));border:var(--spectrum-dropindicator-border-size,var(--spectrum-alias-border-size-thick))solid;box-sizing:border-box;border-color:var(--spectrum-dropindicator-circle-border-color,var(--spectrum-global-color-blue-400));background-color:var(--spectrum-global-color-gray-50);z-index:5;border-radius:50%;position:absolute}.react-spectrum-ListViewItem-checkbox--enter_dd5487{opacity:.01;max-width:0}.react-spectrum-ListViewItem-checkbox--enterActive_dd5487,.react-spectrum-ListViewItem-checkbox--exit_dd5487{opacity:1;max-width:80px}.react-spectrum-ListViewItem-checkbox--exitActive_dd5487{opacity:.01;max-width:0}.react-spectrum-ListView_dd5487.focus-ring_dd5487{border-color:var(--spectrum-global-color-blue-500);box-shadow:inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus,var(--spectrum-alias-border-color-focus))}",".spectrum-Image-img_fdc794{height:100%;width:100%;max-width:100%;display:block}",".spectrum--darkest_256eeb{--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-gray-50:#000;--spectrum-gray-75:#0e0e0e;--spectrum-gray-100:#1d1d1d;--spectrum-gray-200:#303030;--spectrum-gray-300:#4b4b4b;--spectrum-gray-400:#6a6a6a;--spectrum-gray-500:#8d8d8d;--spectrum-gray-600:#b0b0b0;--spectrum-gray-700:#d0d0d0;--spectrum-gray-800:#ebebeb;--spectrum-gray-900:#fff;--spectrum-red-100:#570000;--spectrum-red-200:#6e0000;--spectrum-red-300:#8a0000;--spectrum-red-400:#a70000;--spectrum-red-500:#c40706;--spectrum-red-600:#dd2118;--spectrum-red-700:#ee4331;--spectrum-red-800:#f9634c;--spectrum-red-900:#ff816b;--spectrum-red-1000:#ff9e8c;--spectrum-red-1100:#ffb7a9;--spectrum-red-1200:#ffcdc3;--spectrum-red-1300:#ffdfd9;--spectrum-red-1400:#ffedea;--spectrum-orange-100:#481801;--spectrum-orange-200:#5c2000;--spectrum-orange-300:#732b00;--spectrum-orange-400:#8a3700;--spectrum-orange-500:#a24400;--spectrum-orange-600:#ba5200;--spectrum-orange-700:#d26200;--spectrum-orange-800:#e87400;--spectrum-orange-900:#f98917;--spectrum-orange-1000:#ffa23b;--spectrum-orange-1100:#ffbc66;--spectrum-orange-1200:#fdd291;--spectrum-orange-1300:#ffe2b5;--spectrum-orange-1400:#ffefd5;--spectrum-yellow-100:#352400;--spectrum-yellow-200:#442f00;--spectrum-yellow-300:#563e00;--spectrum-yellow-400:#674d00;--spectrum-yellow-500:#7a5c00;--spectrum-yellow-600:#8d6c00;--spectrum-yellow-700:#a17e00;--spectrum-yellow-800:#b49000;--spectrum-yellow-900:#c7a200;--spectrum-yellow-1000:#d8b500;--spectrum-yellow-1100:#e9c700;--spectrum-yellow-1200:#f7d804;--spectrum-yellow-1300:#f9e961;--spectrum-yellow-1400:#fcf3aa;--spectrum-chartreuse-100:#202b00;--spectrum-chartreuse-200:#2a3800;--spectrum-chartreuse-300:#364800;--spectrum-chartreuse-400:#425800;--spectrum-chartreuse-500:#4f6900;--spectrum-chartreuse-600:#5d7b00;--spectrum-chartreuse-700:#6b8e00;--spectrum-chartreuse-800:#7aa100;--spectrum-chartreuse-900:#8ab403;--spectrum-chartreuse-1000:#9ac60b;--spectrum-chartreuse-1100:#aad816;--spectrum-chartreuse-1200:#bbe829;--spectrum-chartreuse-1300:#cdf648;--spectrum-chartreuse-1400:#e1fd84;--spectrum-celery-100:#002f07;--spectrum-celery-200:#003d09;--spectrum-celery-300:#004d0c;--spectrum-celery-400:#005f0f;--spectrum-celery-500:#00710f;--spectrum-celery-600:#00840f;--spectrum-celery-700:#009714;--spectrum-celery-800:#0dab25;--spectrum-celery-900:#2dbf3a;--spectrum-celery-1000:#50d052;--spectrum-celery-1100:#73e06b;--spectrum-celery-1200:#93ed83;--spectrum-celery-1300:#b4f7a2;--spectrum-celery-1400:#d5fcca;--spectrum-green-100:#0a2c1c;--spectrum-green-200:#073b24;--spectrum-green-300:#004c2e;--spectrum-green-400:#005d39;--spectrum-green-500:#006f45;--spectrum-green-600:#008252;--spectrum-green-700:#009562;--spectrum-green-800:#1ca872;--spectrum-green-900:#34bb84;--spectrum-green-1000:#4bcd95;--spectrum-green-1100:#67dea8;--spectrum-green-1200:#89ecbc;--spectrum-green-1300:#b1f4d1;--spectrum-green-1400:#d6f9e4;--spectrum-seafoam-100:#122b2a;--spectrum-seafoam-200:#133937;--spectrum-seafoam-300:#104946;--spectrum-seafoam-400:#035b58;--spectrum-seafoam-500:#006c68;--spectrum-seafoam-600:#007f79;--spectrum-seafoam-700:#00928c;--spectrum-seafoam-800:#00a59f;--spectrum-seafoam-900:#1ab9b2;--spectrum-seafoam-1000:#42cac3;--spectrum-seafoam-1100:#66dad3;--spectrum-seafoam-1200:#8be8e1;--spectrum-seafoam-1300:#b3f2ed;--spectrum-seafoam-1400:#d7f8f4;--spectrum-cyan-100:#002944;--spectrum-cyan-200:#003658;--spectrum-cyan-300:#00456c;--spectrum-cyan-400:#005680;--spectrum-cyan-500:#006793;--spectrum-cyan-600:#0079a7;--spectrum-cyan-700:#008cba;--spectrum-cyan-800:#04a0cd;--spectrum-cyan-900:#17b4dd;--spectrum-cyan-1000:#39c7ea;--spectrum-cyan-1100:#60d8f3;--spectrum-cyan-1200:#86e6fa;--spectrum-cyan-1300:#aaf2ff;--spectrum-cyan-1400:#cef9ff;--spectrum-blue-100:#002651;--spectrum-blue-200:#00326a;--spectrum-blue-300:#004087;--spectrum-blue-400:#004ea6;--spectrum-blue-500:#005cc8;--spectrum-blue-600:#066ce7;--spectrum-blue-700:#1d80f5;--spectrum-blue-800:#4096f3;--spectrum-blue-900:#5eaaf7;--spectrum-blue-1000:#7cbdfa;--spectrum-blue-1100:#98cefd;--spectrum-blue-1200:#b3defe;--spectrum-blue-1300:#ceeaff;--spectrum-blue-1400:#e3f3ff;--spectrum-indigo-100:#1a1d61;--spectrum-indigo-200:#23277d;--spectrum-indigo-300:#2e329e;--spectrum-indigo-400:#3a3fbd;--spectrum-indigo-500:#494ed8;--spectrum-indigo-600:#5a60eb;--spectrum-indigo-700:#6e73f6;--spectrum-indigo-800:#8488fd;--spectrum-indigo-900:#999dff;--spectrum-indigo-1000:#aeb1ff;--spectrum-indigo-1100:#c2c4ff;--spectrum-indigo-1200:#d4d5ff;--spectrum-indigo-1300:#e3e4ff;--spectrum-indigo-1400:#f0f0ff;--spectrum-purple-100:#321068;--spectrum-purple-200:#430d8c;--spectrum-purple-300:#5610ad;--spectrum-purple-400:#6a1dc8;--spectrum-purple-500:#7e31de;--spectrum-purple-600:#9146ec;--spectrum-purple-700:#a25ef6;--spectrum-purple-800:#b277fa;--spectrum-purple-900:#c08ffc;--spectrum-purple-1000:#cea6fd;--spectrum-purple-1100:#dbbcfe;--spectrum-purple-1200:#e6cfff;--spectrum-purple-1300:#f0e0ff;--spectrum-purple-1400:#f8edff;--spectrum-fuchsia-100:#460e44;--spectrum-fuchsia-200:#5d095c;--spectrum-fuchsia-300:#780078;--spectrum-fuchsia-400:#920093;--spectrum-fuchsia-500:#a913aa;--spectrum-fuchsia-600:#bf2bbf;--spectrum-fuchsia-700:#d341d5;--spectrum-fuchsia-800:#e45be5;--spectrum-fuchsia-900:#ef78ee;--spectrum-fuchsia-1000:#f695f3;--spectrum-fuchsia-1100:#fbaff6;--spectrum-fuchsia-1200:#fec7f8;--spectrum-fuchsia-1300:#ffdcfa;--spectrum-fuchsia-1400:#ffebfc;--spectrum-magenta-100:#530329;--spectrum-magenta-200:#6a0034;--spectrum-magenta-300:#850041;--spectrum-magenta-400:#a1004e;--spectrum-magenta-500:#ba165d;--spectrum-magenta-600:#d12b72;--spectrum-magenta-700:#e34589;--spectrum-magenta-800:#f1619c;--spectrum-magenta-900:#fc7cad;--spectrum-magenta-1000:#ff98bf;--spectrum-magenta-1100:#ffb3cf;--spectrum-magenta-1200:#ffcadd;--spectrum-magenta-1300:#ffdde9;--spectrum-magenta-1400:#ffecf3;--spectrum-legacy-color-celery-400:var(--spectrum-celery-800);--spectrum-legacy-color-celery-500:var(--spectrum-celery-900);--spectrum-legacy-color-celery-600:var(--spectrum-celery-1000);--spectrum-legacy-color-celery-700:var(--spectrum-celery-1100);--spectrum-legacy-color-chartreuse-400:var(--spectrum-chartreuse-900);--spectrum-legacy-color-chartreuse-500:var(--spectrum-chartreuse-1000);--spectrum-legacy-color-chartreuse-600:var(--spectrum-chartreuse-1100);--spectrum-legacy-color-chartreuse-700:var(--spectrum-chartreuse-1200);--spectrum-legacy-color-yellow-400:var(--spectrum-yellow-1000);--spectrum-legacy-color-yellow-500:var(--spectrum-yellow-1100);--spectrum-legacy-color-yellow-600:var(--spectrum-yellow-1200);--spectrum-legacy-color-yellow-700:var(--spectrum-yellow-1300);--spectrum-legacy-color-magenta-400:var(--spectrum-magenta-600);--spectrum-legacy-color-magenta-500:var(--spectrum-magenta-700);--spectrum-legacy-color-magenta-600:var(--spectrum-magenta-800);--spectrum-legacy-color-magenta-700:var(--spectrum-magenta-900);--spectrum-legacy-color-fuchsia-400:var(--spectrum-fuchsia-600);--spectrum-legacy-color-fuchsia-500:var(--spectrum-fuchsia-700);--spectrum-legacy-color-fuchsia-600:var(--spectrum-fuchsia-800);--spectrum-legacy-color-fuchsia-700:var(--spectrum-fuchsia-900);--spectrum-legacy-color-purple-400:var(--spectrum-purple-600);--spectrum-legacy-color-purple-500:var(--spectrum-purple-700);--spectrum-legacy-color-purple-600:var(--spectrum-purple-800);--spectrum-legacy-color-purple-700:var(--spectrum-purple-900);--spectrum-legacy-color-indigo-400:var(--spectrum-indigo-600);--spectrum-legacy-color-indigo-500:var(--spectrum-indigo-700);--spectrum-legacy-color-indigo-600:var(--spectrum-indigo-800);--spectrum-legacy-color-indigo-700:var(--spectrum-indigo-900);--spectrum-legacy-color-red-400:var(--spectrum-red-600);--spectrum-legacy-color-red-500:var(--spectrum-red-700);--spectrum-legacy-color-red-600:var(--spectrum-red-800);--spectrum-legacy-color-red-700:var(--spectrum-red-900);--spectrum-legacy-color-orange-400:var(--spectrum-orange-800);--spectrum-legacy-color-orange-500:var(--spectrum-orange-900);--spectrum-legacy-color-orange-600:var(--spectrum-orange-1000);--spectrum-legacy-color-orange-700:var(--spectrum-orange-1100);--spectrum-legacy-color-green-400:var(--spectrum-green-700);--spectrum-legacy-color-green-500:var(--spectrum-green-800);--spectrum-legacy-color-green-600:var(--spectrum-green-900);--spectrum-legacy-color-green-700:var(--spectrum-green-1000);--spectrum-legacy-color-blue-400:var(--spectrum-blue-700);--spectrum-legacy-color-blue-500:var(--spectrum-blue-800);--spectrum-legacy-color-blue-600:var(--spectrum-blue-900);--spectrum-legacy-color-blue-700:var(--spectrum-blue-1000);--spectrum-alias-background-color-modal-overlay:#0009;--spectrum-alias-dropshadow-color:#000c;--spectrum-alias-background-color-hover-overlay:#ffffff14;--spectrum-alias-highlight-hover:#ffffff14;--spectrum-alias-highlight-active:#efefef26;--spectrum-alias-highlight-selected:#4096f333;--spectrum-alias-highlight-selected-hover:#4096f34d;--spectrum-alias-highlight-invalid:#dd211826;--spectrum-alias-text-highlight-color:#4096f34d;--spectrum-alias-background-color-quickactions:#1d1d1de6;--spectrum-alias-radial-reaction-color-default:#ebebeb99;--spectrum-alias-pasteboard-background-color:var(--spectrum-global-color-gray-50);--spectrum-alias-appframe-border-color:var(--spectrum-global-color-gray-50);--spectrum-alias-appframe-separator-color:var(--spectrum-global-color-gray-50);--spectrum-colorarea-border-color:#efefef1a;--spectrum-colorarea-border-color-hover:#efefef1a;--spectrum-colorarea-border-color-down:#efefef1a;--spectrum-colorarea-border-color-key-focus:#efefef1a;--spectrum-colorslider-border-color:#efefef1a;--spectrum-colorslider-border-color-hover:#efefef1a;--spectrum-colorslider-border-color-down:#efefef1a;--spectrum-colorslider-border-color-key-focus:#efefef1a;--spectrum-colorslider-vertical-border-color:#efefef1a;--spectrum-colorslider-vertical-border-color-hover:#efefef1a;--spectrum-colorslider-vertical-border-color-down:#efefef1a;--spectrum-colorslider-vertical-border-color-key-focus:#efefef1a;--spectrum-colorwheel-border-color:#efefef1a;--spectrum-colorwheel-border-color-hover:#efefef1a;--spectrum-colorwheel-border-color-down:#efefef1a;--spectrum-colorwheel-border-color-key-focus:#efefef1a;--spectrum-miller-column-item-background-color-selected:#2680eb1a;--spectrum-miller-column-item-background-color-selected-hover:#2680eb33;--spectrum-tabs-compact-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-emphasized-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-well-background-color:#ebebeb05;--spectrum-well-border-color:#efefef0d;--spectrum-tray-background-color:var(--spectrum-global-color-gray-100);--react-spectrum-datepicker-placeholder-color:var(--spectrum-global-color-gray-600);--spectrum-accent-background-color-default:var(--spectrum-accent-color-600);--spectrum-accent-background-color-hover:var(--spectrum-accent-color-500);--spectrum-accent-background-color-down:var(--spectrum-accent-color-400);--spectrum-accent-background-color-key-focus:var(--spectrum-accent-color-500);--spectrum-neutral-background-color-default:var(--spectrum-gray-400);--spectrum-neutral-background-color-hover:var(--spectrum-gray-300);--spectrum-neutral-background-color-down:var(--spectrum-gray-200);--spectrum-neutral-background-color-key-focus:var(--spectrum-gray-300);--spectrum-neutral-subdued-background-color-default:var(--spectrum-gray-400);--spectrum-neutral-subdued-background-color-hover:var(--spectrum-gray-300);--spectrum-neutral-subdued-background-color-down:var(--spectrum-gray-200);--spectrum-neutral-subdued-background-color-key-focus:var(--spectrum-gray-300);--spectrum-negative-background-color-default:var(--spectrum-red-600);--spectrum-negative-background-color-hover:var(--spectrum-red-500);--spectrum-negative-background-color-down:var(--spectrum-red-400);--spectrum-negative-background-color-key-focus:var(--spectrum-red-500);--spectrum-positive-background-color-default:var(--spectrum-green-600);--spectrum-positive-background-color-hover:var(--spectrum-green-500);--spectrum-positive-background-color-down:var(--spectrum-green-400);--spectrum-positive-background-color-key-focus:var(--spectrum-green-500);--spectrum-informative-background-color-default:var(--spectrum-blue-600);--spectrum-informative-background-color-hover:var(--spectrum-blue-500);--spectrum-informative-background-color-down:var(--spectrum-blue-400);--spectrum-informative-background-color-key-focus:var(--spectrum-blue-500);--spectrum-gray-background-color-default:var(--spectrum-gray-700);--spectrum-red-background-color-default:var(--spectrum-red-700);--spectrum-orange-background-color-default:var(--spectrum-orange-800);--spectrum-yellow-background-color-default:var(--spectrum-yellow-1000);--spectrum-chartreuse-background-color-default:var(--spectrum-chartreuse-900);--spectrum-celery-background-color-default:var(--spectrum-celery-800);--spectrum-green-background-color-default:var(--spectrum-green-700);--spectrum-seafoam-background-color-default:var(--spectrum-seafoam-700);--spectrum-cyan-background-color-default:var(--spectrum-cyan-700);--spectrum-blue-background-color-default:var(--spectrum-blue-700);--spectrum-indigo-background-color-default:var(--spectrum-indigo-700);--spectrum-purple-background-color-default:var(--spectrum-purple-700);--spectrum-fuchsia-background-color-default:var(--spectrum-fuchsia-700);--spectrum-magenta-background-color-default:var(--spectrum-magenta-700);--spectrum-negative-visual-color:var(--spectrum-red-700);--spectrum-positive-visual-color:var(--spectrum-green-800);--spectrum-notice-visual-color:var(--spectrum-orange-900);--spectrum-informative-visual-color:var(--spectrum-blue-900);--spectrum-gray-visual-color:var(--spectrum-gray-600);--spectrum-red-visual-color:var(--spectrum-red-700);--spectrum-orange-visual-color:var(--spectrum-orange-900);--spectrum-yellow-visual-color:var(--spectrum-yellow-1100);--spectrum-chartreuse-visual-color:var(--spectrum-chartreuse-900);--spectrum-celery-visual-color:var(--spectrum-celery-800);--spectrum-green-visual-color:var(--spectrum-green-800);--spectrum-seafoam-visual-color:var(--spectrum-seafoam-800);--spectrum-cyan-visual-color:var(--spectrum-cyan-900);--spectrum-blue-visual-color:var(--spectrum-blue-900);--spectrum-indigo-visual-color:var(--spectrum-indigo-900);--spectrum-purple-visual-color:var(--spectrum-purple-900);--spectrum-fuchsia-visual-color:var(--spectrum-fuchsia-900);--spectrum-magenta-visual-color:var(--spectrum-magenta-900)}.spectrum--medium_4b172c{--spectrum-global-dimension-scale-factor:1;--spectrum-global-dimension-size-0:0px;--spectrum-global-dimension-size-10:1px;--spectrum-global-dimension-size-25:2px;--spectrum-global-dimension-size-40:3px;--spectrum-global-dimension-size-50:4px;--spectrum-global-dimension-size-65:5px;--spectrum-global-dimension-size-75:6px;--spectrum-global-dimension-size-85:7px;--spectrum-global-dimension-size-100:8px;--spectrum-global-dimension-size-115:9px;--spectrum-global-dimension-size-125:10px;--spectrum-global-dimension-size-130:11px;--spectrum-global-dimension-size-150:12px;--spectrum-global-dimension-size-160:13px;--spectrum-global-dimension-size-175:14px;--spectrum-global-dimension-size-200:16px;--spectrum-global-dimension-size-225:18px;--spectrum-global-dimension-size-250:20px;--spectrum-global-dimension-size-275:22px;--spectrum-global-dimension-size-300:24px;--spectrum-global-dimension-size-325:26px;--spectrum-global-dimension-size-350:28px;--spectrum-global-dimension-size-400:32px;--spectrum-global-dimension-size-450:36px;--spectrum-global-dimension-size-500:40px;--spectrum-global-dimension-size-550:44px;--spectrum-global-dimension-size-600:48px;--spectrum-global-dimension-size-675:54px;--spectrum-global-dimension-size-700:56px;--spectrum-global-dimension-size-800:64px;--spectrum-global-dimension-size-900:72px;--spectrum-global-dimension-size-1000:80px;--spectrum-global-dimension-size-1200:96px;--spectrum-global-dimension-size-1250:100px;--spectrum-global-dimension-size-1600:128px;--spectrum-global-dimension-size-1700:136px;--spectrum-global-dimension-size-2000:160px;--spectrum-global-dimension-size-2400:192px;--spectrum-global-dimension-size-3000:240px;--spectrum-global-dimension-size-3400:272px;--spectrum-global-dimension-size-3600:288px;--spectrum-global-dimension-size-4600:368px;--spectrum-global-dimension-size-5000:400px;--spectrum-global-dimension-size-6000:480px;--spectrum-global-dimension-font-size-25:10px;--spectrum-global-dimension-font-size-50:11px;--spectrum-global-dimension-font-size-75:12px;--spectrum-global-dimension-font-size-100:14px;--spectrum-global-dimension-font-size-150:15px;--spectrum-global-dimension-font-size-200:16px;--spectrum-global-dimension-font-size-300:18px;--spectrum-global-dimension-font-size-400:20px;--spectrum-global-dimension-font-size-500:22px;--spectrum-global-dimension-font-size-600:25px;--spectrum-global-dimension-font-size-700:28px;--spectrum-global-dimension-font-size-800:32px;--spectrum-global-dimension-font-size-900:36px;--spectrum-global-dimension-font-size-1000:40px;--spectrum-global-dimension-font-size-1100:45px;--spectrum-global-dimension-font-size-1200:50px;--spectrum-global-dimension-font-size-1300:60px;--spectrum-alias-avatar-size-100:var(--spectrum-global-dimension-size-250);--spectrum-alias-avatar-size-400:var(--spectrum-global-dimension-size-350);--spectrum-alias-avatar-size-600:var(--spectrum-global-dimension-size-450);--spectrum-actionbutton-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-actionbutton-quiet-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-barloader-large-border-radius:3px;--spectrum-barloader-large-indeterminate-border-radius:3px;--spectrum-barloader-large-over-background-border-radius:3px;--spectrum-barloader-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-barloader-small-indeterminate-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-barloader-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-breadcrumb-compact-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-compact-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-multiline-item-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-breadcrumb-multiline-button-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-cta-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-cta-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-cta-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-cta-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-over-background-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-primary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-primary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-over-background-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-over-background-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-primary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-primary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-primary-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-secondary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-secondary-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-warning-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-quiet-warning-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-quiet-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-quiet-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-quiet-warning-cursor-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-button-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-secondary-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-warning-text-padding-bottom:var(--spectrum-global-dimension-size-85);--spectrum-button-warning-min-width:var(--spectrum-global-dimension-size-900);--spectrum-button-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-button-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-checkbox-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-checkbox-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-circleloader-medium-border-size:3px;--spectrum-circleloader-medium-over-background-border-size:3px;--spectrum-circleloader-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-circleloader-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-colorhandle-loupe-margin:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-colorloupe-colorhandle-gap:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-colorslider-touch-hit-y:var(--spectrum-global-dimension-size-150);--spectrum-colorslider-vertical-touch-hit-x:var(--spectrum-global-dimension-size-150);--spectrum-colorwheel-min-size:var(--spectrum-global-dimension-size-2400);--spectrum-colorwheel-touch-hit-outer:var(--spectrum-global-dimension-size-150);--spectrum-colorwheel-touch-hit-inner:var(--spectrum-global-dimension-size-150);--spectrum-cyclebutton-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-cyclebutton-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dialog-confirm-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-confirm-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-confirm-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-confirm-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-confirm-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-content-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-content-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-destructive-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-destructive-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-destructive-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-destructive-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-destructive-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-error-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-error-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-error-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-error-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-error-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dialog-info-max-width:var(--spectrum-global-dimension-static-size-6000,480px);--spectrum-dialog-info-title-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-dialog-info-description-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-dialog-info-padding:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-info-description-margin-bottom:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-dropdown-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-dropdown-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-dropdown-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-fieldbutton-quiet-min-width:var(--spectrum-global-dimension-size-225);--spectrum-icon-arrow-down-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-arrow-left-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-checkmark-medium-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-checkmark-medium-height:var(--spectrum-global-dimension-size-150);--spectrum-icon-checkmark-small-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-checkmark-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-down-medium-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-left-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-chevron-left-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-chevron-right-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-chevron-right-medium-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-cross-large-width:var(--spectrum-global-dimension-size-150);--spectrum-icon-cross-large-height:var(--spectrum-global-dimension-size-150);--spectrum-icon-dash-small-width:var(--spectrum-global-dimension-size-125);--spectrum-icon-dash-small-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-skip-left-width:9px;--spectrum-icon-skip-left-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-skip-right-width:9px;--spectrum-icon-skip-right-height:var(--spectrum-global-dimension-size-125);--spectrum-icon-triplegripper-width:var(--spectrum-global-dimension-size-125);--spectrum-listitem-option-icon-size:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-listitem-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-listitem-option-height:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-listitem-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-listitem-thumbnail-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-listitem-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-thumbnail-small-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-selectlist-thumbnail-small-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-option-icon-size:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-selectlist-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-selectlist-option-icon-margin-top:var(--spectrum-global-dimension-static-size-65,5px);--spectrum-selectlist-option-height:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-selectlist-option-padding-height:7px;--spectrum-selectlist-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-125,10px);--spectrum-loader-bar-large-border-radius:3px;--spectrum-loader-bar-large-over-background-border-radius:3px;--spectrum-loader-bar-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-bar-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-circle-medium-border-size:3px;--spectrum-loader-circle-medium-over-background-border-size:3px;--spectrum-loader-circle-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-loader-circle-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-meter-large-border-radius:3px;--spectrum-meter-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-pagination-page-button-line-height:26px;--spectrum-overlay-positive-transform-distance:6px;--spectrum-overlay-negative-transform-distance:-6px;--spectrum-picker-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-quiet-min-width:var(--spectrum-global-dimension-size-225);--spectrum-picker-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-picker-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-picker-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-progressbar-large-border-radius:3px;--spectrum-progressbar-large-indeterminate-border-radius:3px;--spectrum-progressbar-large-over-background-border-radius:3px;--spectrum-progressbar-small-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progressbar-small-indeterminate-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progressbar-small-over-background-border-radius:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-medium-border-size:3px;--spectrum-progresscircle-medium-over-background-border-size:3px;--spectrum-progresscircle-small-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-small-indeterminate-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-small-over-background-border-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-progresscircle-medium-indeterminate-border-size:3px;--spectrum-radio-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-margin-bottom:0px;--spectrum-radio-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-emphasized-margin-bottom:0px;--spectrum-radio-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-radio-quiet-margin-bottom:0px;--spectrum-radio-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-icon-width:24px;--spectrum-rating-indicator-width:16px;--spectrum-rating-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-emphasized-icon-width:24px;--spectrum-rating-emphasized-indicator-width:16px;--spectrum-rating-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-rating-quiet-icon-width:24px;--spectrum-rating-quiet-indicator-width:16px;--spectrum-rating-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-search-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-search-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-sidenav-item-touch-hit-bottom:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-sidenav-multilevel-item-touch-hit-bottom:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-slider-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-editable-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-editable-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-editable-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-fill-track-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-slider-fill-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-slider-fill-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-switch-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-track-width:26px;--spectrum-switch-handle-border-radius:7px;--spectrum-switch-handle-transform-x-ltr:12px;--spectrum-switch-handle-transform-x-rtl:-12px;--spectrum-switch-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-switch-emphasized-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-emphasized-track-width:26px;--spectrum-switch-emphasized-handle-border-radius:7px;--spectrum-switch-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-switch-quiet-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-130,11px);--spectrum-switch-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-115,9px);--spectrum-switch-quiet-track-width:26px;--spectrum-switch-quiet-handle-border-radius:7px;--spectrum-switch-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tabs-compact-focus-ring-border-radius:5px;--spectrum-tabs-compact-margin-left:-8px;--spectrum-tabs-compact-margin-right:-8px;--spectrum-tabs-compact-vertical-focus-ring-border-radius:5px;--spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-focus-ring-border-radius:5px;--spectrum-tabs-margin-left:-8px;--spectrum-tabs-margin-right:-8px;--spectrum-tabs-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-emphasized-margin-left:-8px;--spectrum-tabs-emphasized-margin-right:-8px;--spectrum-tabs-quiet-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-focus-ring-border-radius:5px;--spectrum-tabs-quiet-margin-left:-8px;--spectrum-tabs-quiet-margin-right:-8px;--spectrum-tabs-quiet-compact-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-margin-left:-8px;--spectrum-tabs-quiet-compact-margin-right:-8px;--spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-emphasized-margin-left:-8px;--spectrum-tabs-quiet-compact-emphasized-margin-right:-8px;--spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius:5px;--spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-quiet-emphasized-margin-left:-8px;--spectrum-tabs-quiet-emphasized-margin-right:-8px;--spectrum-tabs-quiet-vertical-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-vertical-focus-ring-border-radius:5px;--spectrum-tabs-quiet-vertical-emphasized-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius:5px;--spectrum-tabs-vertical-baseline:var(--spectrum-global-dimension-size-225);--spectrum-tabs-vertical-focus-ring-border-radius:5px;--spectrum-textarea-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textarea-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textarea-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textfield-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-textfield-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-textfield-quiet-icon-frame:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-tool-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-high-emphasis-touch-hit-x:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tool-high-emphasis-touch-hit-y:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-tooltip-padding-bottom:5px;--spectrum-tooltip-content-max-width:var(--spectrum-global-dimension-size-2000);--spectrum-tooltip-info-padding-bottom:5px;--spectrum-tooltip-info-content-max-width:101px;--spectrum-tooltip-negative-padding-bottom:5px;--spectrum-tooltip-negative-content-max-width:101px;--spectrum-tooltip-positive-padding-bottom:5px;--spectrum-tooltip-positive-content-max-width:101px}.spectrum--light_a40724{--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-gray-50:#fff;--spectrum-gray-75:#fdfdfd;--spectrum-gray-100:#f8f8f8;--spectrum-gray-200:#e6e6e6;--spectrum-gray-300:#d5d5d5;--spectrum-gray-400:#b1b1b1;--spectrum-gray-500:#909090;--spectrum-gray-600:#6d6d6d;--spectrum-gray-700:#464646;--spectrum-gray-800:#222;--spectrum-gray-900:#000;--spectrum-red-100:#ffebe7;--spectrum-red-200:#ffddd6;--spectrum-red-300:#ffcdc3;--spectrum-red-400:#ffb7a9;--spectrum-red-500:#ff9b88;--spectrum-red-600:#ff7c65;--spectrum-red-700:#f75c46;--spectrum-red-800:#ea3829;--spectrum-red-900:#d31510;--spectrum-red-1000:#b40000;--spectrum-red-1100:#930000;--spectrum-red-1200:#740000;--spectrum-red-1300:#590000;--spectrum-red-1400:#430000;--spectrum-orange-100:#ffeccc;--spectrum-orange-200:#ffdfad;--spectrum-orange-300:#fdd291;--spectrum-orange-400:#ffbb63;--spectrum-orange-500:#ffa037;--spectrum-orange-600:#f68511;--spectrum-orange-700:#e46f00;--spectrum-orange-800:#cb5d00;--spectrum-orange-900:#b14c00;--spectrum-orange-1000:#953d00;--spectrum-orange-1100:#7a2f00;--spectrum-orange-1200:#612300;--spectrum-orange-1300:#491901;--spectrum-orange-1400:#351201;--spectrum-yellow-100:#fbf198;--spectrum-yellow-200:#f8e750;--spectrum-yellow-300:#f8d904;--spectrum-yellow-400:#e8c600;--spectrum-yellow-500:#d7b300;--spectrum-yellow-600:#c49f00;--spectrum-yellow-700:#b08c00;--spectrum-yellow-800:#9b7800;--spectrum-yellow-900:#856600;--spectrum-yellow-1000:#705300;--spectrum-yellow-1100:#5b4300;--spectrum-yellow-1200:#483300;--spectrum-yellow-1300:#362500;--spectrum-yellow-1400:#281a00;--spectrum-chartreuse-100:#dbfc6e;--spectrum-chartreuse-200:#cbf443;--spectrum-chartreuse-300:#bce92a;--spectrum-chartreuse-400:#aad816;--spectrum-chartreuse-500:#98c50a;--spectrum-chartreuse-600:#87b103;--spectrum-chartreuse-700:#769c00;--spectrum-chartreuse-800:#678800;--spectrum-chartreuse-900:#577400;--spectrum-chartreuse-1000:#486000;--spectrum-chartreuse-1100:#3a4d00;--spectrum-chartreuse-1200:#2c3b00;--spectrum-chartreuse-1300:#212c00;--spectrum-chartreuse-1400:#181f00;--spectrum-celery-100:#cdfcbf;--spectrum-celery-200:#aef69d;--spectrum-celery-300:#96ee85;--spectrum-celery-400:#72e06a;--spectrum-celery-500:#4ecf50;--spectrum-celery-600:#27bb36;--spectrum-celery-700:#07a721;--spectrum-celery-800:#009112;--spectrum-celery-900:#007c0f;--spectrum-celery-1000:#00670f;--spectrum-celery-1100:#00530d;--spectrum-celery-1200:#00400a;--spectrum-celery-1300:#003007;--spectrum-celery-1400:#002205;--spectrum-green-100:#cef8e0;--spectrum-green-200:#adf4ce;--spectrum-green-300:#89ecbc;--spectrum-green-400:#67dea8;--spectrum-green-500:#49cc93;--spectrum-green-600:#2fb880;--spectrum-green-700:#15a46e;--spectrum-green-800:#008f5d;--spectrum-green-900:#007a4d;--spectrum-green-1000:#00653e;--spectrum-green-1100:#005132;--spectrum-green-1200:#053f27;--spectrum-green-1300:#0a2e1d;--spectrum-green-1400:#0a2015;--spectrum-seafoam-100:#cef7f3;--spectrum-seafoam-200:#aaf1ea;--spectrum-seafoam-300:#8ce9e2;--spectrum-seafoam-400:#65dad2;--spectrum-seafoam-500:#3fc9c1;--spectrum-seafoam-600:#0fb5ae;--spectrum-seafoam-700:#00a19a;--spectrum-seafoam-800:#008c87;--spectrum-seafoam-900:#007772;--spectrum-seafoam-1000:#00635f;--spectrum-seafoam-1100:#0c4f4c;--spectrum-seafoam-1200:#123c3a;--spectrum-seafoam-1300:#122c2b;--spectrum-seafoam-1400:#0f1f1e;--spectrum-cyan-100:#c5f8ff;--spectrum-cyan-200:#a4f0ff;--spectrum-cyan-300:#88e7fa;--spectrum-cyan-400:#60d8f3;--spectrum-cyan-500:#33c5e8;--spectrum-cyan-600:#12b0da;--spectrum-cyan-700:#019cc8;--spectrum-cyan-800:#0086b4;--spectrum-cyan-900:#00719f;--spectrum-cyan-1000:#005d89;--spectrum-cyan-1100:#004a73;--spectrum-cyan-1200:#00395d;--spectrum-cyan-1300:#002a46;--spectrum-cyan-1400:#001e33;--spectrum-blue-100:#e0f2ff;--spectrum-blue-200:#cae8ff;--spectrum-blue-300:#b5deff;--spectrum-blue-400:#96cefd;--spectrum-blue-500:#78bbfa;--spectrum-blue-600:#59a7f6;--spectrum-blue-700:#3892f3;--spectrum-blue-800:#147af3;--spectrum-blue-900:#0265dc;--spectrum-blue-1000:#0054b6;--spectrum-blue-1100:#004491;--spectrum-blue-1200:#003571;--spectrum-blue-1300:#002754;--spectrum-blue-1400:#001c3c;--spectrum-indigo-100:#edeeff;--spectrum-indigo-200:#e0e2ff;--spectrum-indigo-300:#d3d5ff;--spectrum-indigo-400:#c1c4ff;--spectrum-indigo-500:#acafff;--spectrum-indigo-600:#9599ff;--spectrum-indigo-700:#7e84fc;--spectrum-indigo-800:#686df4;--spectrum-indigo-900:#5258e4;--spectrum-indigo-1000:#4046ca;--spectrum-indigo-1100:#3236a8;--spectrum-indigo-1200:#262986;--spectrum-indigo-1300:#1b1e64;--spectrum-indigo-1400:#141648;--spectrum-purple-100:#f6ebff;--spectrum-purple-200:#edf;--spectrum-purple-300:#e6d0ff;--spectrum-purple-400:#dbbbfe;--spectrum-purple-500:#cca4fd;--spectrum-purple-600:#bd8bfc;--spectrum-purple-700:#ae72f9;--spectrum-purple-800:#9d57f4;--spectrum-purple-900:#893de7;--spectrum-purple-1000:#7326d3;--spectrum-purple-1100:#5d13b7;--spectrum-purple-1200:#470c94;--spectrum-purple-1300:#33106a;--spectrum-purple-1400:#230f49;--spectrum-fuchsia-100:#ffe9fc;--spectrum-fuchsia-200:#ffdafa;--spectrum-fuchsia-300:#fec7f8;--spectrum-fuchsia-400:#fbaef6;--spectrum-fuchsia-500:#f592f3;--spectrum-fuchsia-600:#ed74ed;--spectrum-fuchsia-700:#e055e2;--spectrum-fuchsia-800:#cd3ace;--spectrum-fuchsia-900:#b622b7;--spectrum-fuchsia-1000:#9d039e;--spectrum-fuchsia-1100:#800081;--spectrum-fuchsia-1200:#640664;--spectrum-fuchsia-1300:#470e46;--spectrum-fuchsia-1400:#320d31;--spectrum-magenta-100:#ffeaf1;--spectrum-magenta-200:#ffdce8;--spectrum-magenta-300:#ffcadd;--spectrum-magenta-400:#ffb2ce;--spectrum-magenta-500:#ff95bd;--spectrum-magenta-600:#fa77aa;--spectrum-magenta-700:#ef5a98;--spectrum-magenta-800:#de3d82;--spectrum-magenta-900:#c82269;--spectrum-magenta-1000:#ad0955;--spectrum-magenta-1100:#8e0045;--spectrum-magenta-1200:#700037;--spectrum-magenta-1300:#54032a;--spectrum-magenta-1400:#3c061d;--spectrum-alias-background-color-modal-overlay:#0006;--spectrum-alias-dropshadow-color:#00000026;--spectrum-alias-background-color-hover-overlay:#0000000a;--spectrum-alias-highlight-hover:#0000000f;--spectrum-alias-highlight-active:#2c2c2c1a;--spectrum-alias-highlight-selected:#0265dc1a;--spectrum-alias-highlight-selected-hover:#0265dc33;--spectrum-alias-highlight-invalid:#d3151026;--spectrum-alias-text-highlight-color:#0265dc33;--spectrum-alias-background-color-quickactions:#f8f8f8e6;--spectrum-alias-radial-reaction-color-default:#2229;--spectrum-alias-pasteboard-background-color:var(--spectrum-global-color-gray-300);--spectrum-alias-appframe-border-color:var(--spectrum-global-color-gray-300);--spectrum-alias-appframe-separator-color:var(--spectrum-global-color-gray-300);--spectrum-colorarea-border-color:#2c2c2c1a;--spectrum-colorarea-border-color-hover:#2c2c2c1a;--spectrum-colorarea-border-color-down:#2c2c2c1a;--spectrum-colorarea-border-color-key-focus:#2c2c2c1a;--spectrum-colorslider-border-color:#2c2c2c1a;--spectrum-colorslider-border-color-hover:#2c2c2c1a;--spectrum-colorslider-border-color-down:#2c2c2c1a;--spectrum-colorslider-border-color-key-focus:#2c2c2c1a;--spectrum-colorslider-vertical-border-color:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-hover:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-down:#2c2c2c1a;--spectrum-colorslider-vertical-border-color-key-focus:#2c2c2c1a;--spectrum-colorwheel-border-color:#2c2c2c1a;--spectrum-colorwheel-border-color-hover:#2c2c2c1a;--spectrum-colorwheel-border-color-down:#2c2c2c1a;--spectrum-colorwheel-border-color-key-focus:#2c2c2c1a;--spectrum-miller-column-item-background-color-selected:#1473e61a;--spectrum-miller-column-item-background-color-selected-hover:#1473e633;--spectrum-tabs-compact-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-compact-vertical-emphasized-rule-color:var(--spectrum-global-color-gray-200);--spectrum-tabs-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color:var(--spectrum-global-color-blue-500);--spectrum-well-background-color:#22222205;--spectrum-well-border-color:#0000000d;--spectrum-tray-background-color:var(--spectrum-global-color-gray-50);--react-spectrum-datepicker-placeholder-color:#767676;--spectrum-accent-background-color-default:var(--spectrum-accent-color-900);--spectrum-accent-background-color-hover:var(--spectrum-accent-color-1000);--spectrum-accent-background-color-down:var(--spectrum-accent-color-1100);--spectrum-accent-background-color-key-focus:var(--spectrum-accent-color-1000);--spectrum-neutral-background-color-default:var(--spectrum-gray-800);--spectrum-neutral-background-color-hover:var(--spectrum-gray-900);--spectrum-neutral-background-color-down:var(--spectrum-gray-900);--spectrum-neutral-background-color-key-focus:var(--spectrum-gray-900);--spectrum-neutral-subdued-background-color-default:var(--spectrum-gray-600);--spectrum-neutral-subdued-background-color-hover:var(--spectrum-gray-700);--spectrum-neutral-subdued-background-color-down:var(--spectrum-gray-800);--spectrum-neutral-subdued-background-color-key-focus:var(--spectrum-gray-700);--spectrum-negative-background-color-default:var(--spectrum-red-900);--spectrum-negative-background-color-hover:var(--spectrum-red-1000);--spectrum-negative-background-color-down:var(--spectrum-red-1100);--spectrum-negative-background-color-key-focus:var(--spectrum-red-1000);--spectrum-positive-background-color-default:var(--spectrum-green-900);--spectrum-positive-background-color-hover:var(--spectrum-green-1000);--spectrum-positive-background-color-down:var(--spectrum-green-1100);--spectrum-positive-background-color-key-focus:var(--spectrum-green-1000);--spectrum-informative-background-color-default:var(--spectrum-blue-900);--spectrum-informative-background-color-hover:var(--spectrum-blue-1000);--spectrum-informative-background-color-down:var(--spectrum-blue-1100);--spectrum-informative-background-color-key-focus:var(--spectrum-blue-1000);--spectrum-gray-background-color-default:var(--spectrum-gray-700);--spectrum-red-background-color-default:var(--spectrum-red-600);--spectrum-orange-background-color-default:var(--spectrum-orange-600);--spectrum-yellow-background-color-default:var(--spectrum-yellow-400);--spectrum-chartreuse-background-color-default:var(--spectrum-chartreuse-500);--spectrum-celery-background-color-default:var(--spectrum-celery-600);--spectrum-green-background-color-default:var(--spectrum-green-900);--spectrum-seafoam-background-color-default:var(--spectrum-seafoam-900);--spectrum-cyan-background-color-default:var(--spectrum-cyan-900);--spectrum-blue-background-color-default:var(--spectrum-blue-900);--spectrum-indigo-background-color-default:var(--spectrum-indigo-900);--spectrum-purple-background-color-default:var(--spectrum-purple-900);--spectrum-fuchsia-background-color-default:var(--spectrum-fuchsia-900);--spectrum-magenta-background-color-default:var(--spectrum-magenta-900);--spectrum-negative-visual-color:var(--spectrum-red-800);--spectrum-positive-visual-color:var(--spectrum-green-700);--spectrum-notice-visual-color:var(--spectrum-orange-700);--spectrum-informative-visual-color:var(--spectrum-blue-800);--spectrum-gray-visual-color:var(--spectrum-gray-500);--spectrum-red-visual-color:var(--spectrum-red-800);--spectrum-orange-visual-color:var(--spectrum-orange-700);--spectrum-yellow-visual-color:var(--spectrum-yellow-600);--spectrum-chartreuse-visual-color:var(--spectrum-chartreuse-600);--spectrum-celery-visual-color:var(--spectrum-celery-700);--spectrum-green-visual-color:var(--spectrum-green-700);--spectrum-seafoam-visual-color:var(--spectrum-seafoam-700);--spectrum-cyan-visual-color:var(--spectrum-cyan-600);--spectrum-blue-visual-color:var(--spectrum-blue-800);--spectrum-indigo-visual-color:var(--spectrum-indigo-800);--spectrum-purple-visual-color:var(--spectrum-purple-800);--spectrum-fuchsia-visual-color:var(--spectrum-fuchsia-800);--spectrum-magenta-visual-color:var(--spectrum-magenta-800)}.spectrum--large_c40598{--spectrum-global-dimension-scale-factor:1.25;--spectrum-global-dimension-size-0:0px;--spectrum-global-dimension-size-10:1px;--spectrum-global-dimension-size-25:2px;--spectrum-global-dimension-size-40:4px;--spectrum-global-dimension-size-50:5px;--spectrum-global-dimension-size-65:6px;--spectrum-global-dimension-size-75:8px;--spectrum-global-dimension-size-85:9px;--spectrum-global-dimension-size-100:10px;--spectrum-global-dimension-size-115:11px;--spectrum-global-dimension-size-125:13px;--spectrum-global-dimension-size-130:14px;--spectrum-global-dimension-size-150:15px;--spectrum-global-dimension-size-160:16px;--spectrum-global-dimension-size-175:18px;--spectrum-global-dimension-size-200:20px;--spectrum-global-dimension-size-225:22px;--spectrum-global-dimension-size-250:25px;--spectrum-global-dimension-size-275:28px;--spectrum-global-dimension-size-300:30px;--spectrum-global-dimension-size-325:32px;--spectrum-global-dimension-size-350:35px;--spectrum-global-dimension-size-400:40px;--spectrum-global-dimension-size-450:45px;--spectrum-global-dimension-size-500:50px;--spectrum-global-dimension-size-550:56px;--spectrum-global-dimension-size-600:60px;--spectrum-global-dimension-size-675:68px;--spectrum-global-dimension-size-700:70px;--spectrum-global-dimension-size-800:80px;--spectrum-global-dimension-size-900:90px;--spectrum-global-dimension-size-1000:100px;--spectrum-global-dimension-size-1200:120px;--spectrum-global-dimension-size-1250:125px;--spectrum-global-dimension-size-1600:160px;--spectrum-global-dimension-size-1700:170px;--spectrum-global-dimension-size-2000:200px;--spectrum-global-dimension-size-2400:240px;--spectrum-global-dimension-size-3000:300px;--spectrum-global-dimension-size-3400:340px;--spectrum-global-dimension-size-3600:360px;--spectrum-global-dimension-size-4600:460px;--spectrum-global-dimension-size-5000:500px;--spectrum-global-dimension-size-6000:600px;--spectrum-global-dimension-font-size-25:12px;--spectrum-global-dimension-font-size-50:13px;--spectrum-global-dimension-font-size-75:15px;--spectrum-global-dimension-font-size-100:17px;--spectrum-global-dimension-font-size-150:18px;--spectrum-global-dimension-font-size-200:19px;--spectrum-global-dimension-font-size-300:22px;--spectrum-global-dimension-font-size-400:24px;--spectrum-global-dimension-font-size-500:27px;--spectrum-global-dimension-font-size-600:31px;--spectrum-global-dimension-font-size-700:34px;--spectrum-global-dimension-font-size-800:39px;--spectrum-global-dimension-font-size-900:44px;--spectrum-global-dimension-font-size-1000:49px;--spectrum-global-dimension-font-size-1100:55px;--spectrum-global-dimension-font-size-1200:62px;--spectrum-global-dimension-font-size-1300:70px;--spectrum-alias-avatar-size-100:26px;--spectrum-alias-avatar-size-400:36px;--spectrum-alias-avatar-size-600:46px;--spectrum-actionbutton-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-emphasized-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-actionbutton-quiet-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-barloader-large-border-radius:4px;--spectrum-barloader-large-indeterminate-border-radius:4px;--spectrum-barloader-large-over-background-border-radius:4px;--spectrum-barloader-small-border-radius:3px;--spectrum-barloader-small-indeterminate-border-radius:3px;--spectrum-barloader-small-over-background-border-radius:3px;--spectrum-breadcrumb-compact-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-compact-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-multiline-item-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-breadcrumb-multiline-button-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-cta-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-cta-min-width:90px;--spectrum-button-cta-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-cta-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-over-background-min-width:90px;--spectrum-button-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-primary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-primary-min-width:90px;--spectrum-button-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-over-background-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-over-background-min-width:90px;--spectrum-button-quiet-over-background-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-over-background-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-over-background-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-primary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-primary-min-width:90px;--spectrum-button-quiet-primary-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-primary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-primary-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-secondary-min-width:90px;--spectrum-button-quiet-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-secondary-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-warning-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-quiet-warning-min-width:90px;--spectrum-button-quiet-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-quiet-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-quiet-warning-cursor-hit-x:var(--spectrum-global-dimension-static-size-250,20px);--spectrum-button-secondary-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-secondary-min-width:90px;--spectrum-button-secondary-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-secondary-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-warning-text-padding-bottom:var(--spectrum-global-dimension-size-100);--spectrum-button-warning-min-width:90px;--spectrum-button-warning-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-button-warning-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-checkbox-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-checkbox-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-circleloader-small-border-size:3px;--spectrum-circleloader-small-over-background-border-size:3px;--spectrum-colorhandle-loupe-margin:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-colorloupe-colorhandle-gap:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-colorslider-touch-hit-y:var(--spectrum-global-dimension-size-85);--spectrum-colorslider-vertical-touch-hit-x:var(--spectrum-global-dimension-size-85);--spectrum-colorwheel-min-size:var(--spectrum-global-dimension-static-size-2600,208px);--spectrum-colorwheel-touch-hit-outer:var(--spectrum-global-dimension-size-85);--spectrum-colorwheel-touch-hit-inner:var(--spectrum-global-dimension-size-85);--spectrum-cyclebutton-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-cyclebutton-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dialog-confirm-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-confirm-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-confirm-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-confirm-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-confirm-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-content-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-content-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-destructive-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-destructive-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-destructive-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-destructive-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-destructive-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-error-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-error-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-error-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-error-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-error-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dialog-info-max-width:var(--spectrum-global-dimension-static-size-5000,400px);--spectrum-dialog-info-title-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-dialog-info-description-text-size:var(--spectrum-global-dimension-font-size-75);--spectrum-dialog-info-padding:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-dialog-info-description-margin-bottom:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-dropdown-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-dropdown-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-fieldbutton-quiet-min-width:var(--spectrum-global-dimension-size-200);--spectrum-icon-arrow-down-small-height:12px;--spectrum-icon-arrow-left-medium-height:12px;--spectrum-icon-checkmark-medium-width:16px;--spectrum-icon-checkmark-medium-height:16px;--spectrum-icon-checkmark-small-width:12px;--spectrum-icon-checkmark-small-height:12px;--spectrum-icon-chevron-down-medium-width:12px;--spectrum-icon-chevron-left-large-width:16px;--spectrum-icon-chevron-left-medium-height:12px;--spectrum-icon-chevron-right-large-width:16px;--spectrum-icon-chevron-right-medium-height:12px;--spectrum-icon-cross-large-width:16px;--spectrum-icon-cross-large-height:16px;--spectrum-icon-dash-small-width:12px;--spectrum-icon-dash-small-height:12px;--spectrum-icon-skip-left-width:10px;--spectrum-icon-skip-left-height:12px;--spectrum-icon-skip-right-width:10px;--spectrum-icon-skip-right-height:12px;--spectrum-icon-triplegripper-width:12px;--spectrum-listitem-option-icon-size:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-listitem-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-listitem-option-height:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-listitem-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-listitem-thumbnail-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-listitem-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-thumbnail-small-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-selectlist-thumbnail-small-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-size:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-selectlist-option-icon-margin-top:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-selectlist-option-height:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-selectlist-option-padding-height:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-selectlist-thumbnail-option-icon-padding-y:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-loader-bar-large-border-radius:4px;--spectrum-loader-bar-large-over-background-border-radius:4px;--spectrum-loader-bar-small-border-radius:3px;--spectrum-loader-bar-small-over-background-border-radius:3px;--spectrum-loader-circle-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-loader-circle-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-loader-circle-small-border-size:3px;--spectrum-loader-circle-small-over-background-border-size:3px;--spectrum-meter-large-border-radius:4px;--spectrum-meter-small-border-radius:3px;--spectrum-pagination-page-button-line-height:32px;--spectrum-overlay-positive-transform-distance:8px;--spectrum-overlay-negative-transform-distance:-8px;--spectrum-picker-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-quiet-min-width:var(--spectrum-global-dimension-size-200);--spectrum-picker-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-thumbnail-small-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-picker-thumbnail-small-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progressbar-large-border-radius:4px;--spectrum-progressbar-large-indeterminate-border-radius:4px;--spectrum-progressbar-large-over-background-border-radius:4px;--spectrum-progressbar-small-border-radius:3px;--spectrum-progressbar-small-indeterminate-border-radius:3px;--spectrum-progressbar-small-over-background-border-radius:3px;--spectrum-progresscircle-medium-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progresscircle-medium-over-background-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-progresscircle-small-border-size:3px;--spectrum-progresscircle-small-indeterminate-border-size:3px;--spectrum-progresscircle-small-over-background-border-size:3px;--spectrum-progresscircle-medium-indeterminate-border-size:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-emphasized-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-radio-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-radio-quiet-margin-bottom:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-radio-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-icon-width:30px;--spectrum-rating-indicator-width:20px;--spectrum-rating-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-emphasized-icon-width:30px;--spectrum-rating-emphasized-indicator-width:20px;--spectrum-rating-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-rating-quiet-icon-width:30px;--spectrum-rating-quiet-indicator-width:20px;--spectrum-rating-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-search-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-search-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-sidenav-item-touch-hit-bottom:3px;--spectrum-sidenav-multilevel-item-touch-hit-bottom:3px;--spectrum-slider-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-editable-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-editable-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-editable-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-fill-track-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-slider-fill-handle-touch-hit-x:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-slider-fill-handle-touch-hit-y:var(--spectrum-global-dimension-static-size-175,14px);--spectrum-switch-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-handle-border-radius:9px;--spectrum-switch-handle-transform-x-ltr:18px;--spectrum-switch-handle-transform-x-rtl:-18px;--spectrum-switch-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-switch-emphasized-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-emphasized-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-emphasized-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-emphasized-handle-border-radius:9px;--spectrum-switch-emphasized-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-switch-quiet-focus-ring-border-radius-key-focus:var(--spectrum-global-dimension-static-size-160,13px);--spectrum-switch-quiet-text-gap-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-error-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-text-gap-error-selected-key-focus:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-switch-quiet-track-width:var(--spectrum-global-dimension-static-size-450,36px);--spectrum-switch-quiet-handle-border-radius:9px;--spectrum-switch-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tabs-compact-focus-ring-border-radius:6px;--spectrum-tabs-compact-margin-left:-11px;--spectrum-tabs-compact-margin-right:-11px;--spectrum-tabs-compact-vertical-focus-ring-border-radius:6px;--spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-focus-ring-border-radius:6px;--spectrum-tabs-margin-left:-11px;--spectrum-tabs-margin-right:-11px;--spectrum-tabs-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-emphasized-margin-left:-11px;--spectrum-tabs-emphasized-margin-right:-11px;--spectrum-tabs-quiet-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-focus-ring-border-radius:6px;--spectrum-tabs-quiet-margin-left:-11px;--spectrum-tabs-quiet-margin-right:-11px;--spectrum-tabs-quiet-compact-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-margin-left:-11px;--spectrum-tabs-quiet-compact-margin-right:-11px;--spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-emphasized-margin-left:-11px;--spectrum-tabs-quiet-compact-emphasized-margin-right:-11px;--spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius:6px;--spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-quiet-emphasized-margin-left:-11px;--spectrum-tabs-quiet-emphasized-margin-right:-11px;--spectrum-tabs-quiet-vertical-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-vertical-focus-ring-border-radius:6px;--spectrum-tabs-quiet-vertical-emphasized-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius:6px;--spectrum-tabs-vertical-baseline:var(--spectrum-global-dimension-size-250);--spectrum-tabs-vertical-focus-ring-border-radius:6px;--spectrum-textarea-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textarea-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textarea-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textfield-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-textfield-quiet-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-quiet-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-textfield-quiet-icon-frame:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-tool-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-high-emphasis-touch-hit-x:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tool-high-emphasis-touch-hit-y:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-tooltip-padding-bottom:6px;--spectrum-tooltip-content-max-width:var(--spectrum-global-dimension-size-2000);--spectrum-tooltip-info-padding-bottom:6px;--spectrum-tooltip-info-content-max-width:126px;--spectrum-tooltip-negative-padding-bottom:6px;--spectrum-tooltip-negative-content-max-width:126px;--spectrum-tooltip-positive-padding-bottom:6px;--spectrum-tooltip-positive-content-max-width:126px}.spectrum_9e130c{--spectrum-global-animation-duration-0:0s;--spectrum-global-animation-duration-100:.13s;--spectrum-global-animation-duration-200:.16s;--spectrum-global-animation-duration-300:.19s;--spectrum-global-animation-duration-400:.22s;--spectrum-global-animation-duration-500:.25s;--spectrum-global-animation-duration-600:.3s;--spectrum-global-animation-duration-700:.35s;--spectrum-global-animation-duration-800:.4s;--spectrum-global-animation-duration-900:.45s;--spectrum-global-animation-duration-1000:.5s;--spectrum-global-animation-duration-2000:1s;--spectrum-global-animation-duration-4000:2s;--spectrum-global-animation-ease-in-out:cubic-bezier(.45,0,.4,1);--spectrum-global-animation-ease-in:cubic-bezier(.5,0,1,1);--spectrum-global-animation-ease-out:cubic-bezier(0,0,.4,1);--spectrum-global-animation-linear:cubic-bezier(0,0,1,1);--spectrum-global-color-status:Verified;--spectrum-global-color-version:5.1;--spectrum-global-color-static-black:#000;--spectrum-global-color-static-white:#fff;--spectrum-global-color-static-blue:#0057bf;--spectrum-global-color-static-gray-50:#fff;--spectrum-global-color-static-gray-75:#fff;--spectrum-global-color-static-gray-100:#fff;--spectrum-global-color-static-gray-200:#ebebeb;--spectrum-global-color-static-gray-300:#d9d9d9;--spectrum-global-color-static-gray-400:#b3b3b3;--spectrum-global-color-static-gray-500:#929292;--spectrum-global-color-static-gray-600:#6e6e6e;--spectrum-global-color-static-gray-700:#474747;--spectrum-global-color-static-gray-800:#222;--spectrum-global-color-static-gray-900:#000;--spectrum-global-color-static-blue-200:#82c1fb;--spectrum-global-color-static-blue-300:#62adf7;--spectrum-global-color-static-blue-400:#4297f4;--spectrum-global-color-static-blue-500:#1b7ff5;--spectrum-global-color-static-blue-600:#0469e3;--spectrum-global-color-static-blue-700:#0057be;--spectrum-global-color-static-blue-800:#004899;--spectrum-global-color-static-red-400:#ed4030;--spectrum-global-color-static-red-500:#d91c15;--spectrum-global-color-static-red-600:#bb0202;--spectrum-global-color-static-red-700:#9a0000;--spectrum-global-color-static-orange-400:#fa8b1a;--spectrum-global-color-static-orange-500:#e97500;--spectrum-global-color-static-orange-600:#d16100;--spectrum-global-color-static-orange-700:#b65000;--spectrum-global-color-static-green-400:#1da973;--spectrum-global-color-static-green-500:#009461;--spectrum-global-color-static-green-600:#007e50;--spectrum-global-color-static-green-700:#006941;--spectrum-global-color-static-celery-200:#7ee572;--spectrum-global-color-static-celery-300:#57d456;--spectrum-global-color-static-celery-400:#30c13d;--spectrum-global-color-static-celery-500:#0fac26;--spectrum-global-color-static-celery-600:#009614;--spectrum-global-color-static-celery-700:#00800f;--spectrum-global-color-static-chartreuse-300:#b0de1b;--spectrum-global-color-static-chartreuse-400:#9dcb0d;--spectrum-global-color-static-chartreuse-500:#8bb604;--spectrum-global-color-static-chartreuse-600:#7aa200;--spectrum-global-color-static-chartreuse-700:#6a8d00;--spectrum-global-color-static-yellow-200:#faed7b;--spectrum-global-color-static-yellow-300:#fae017;--spectrum-global-color-static-yellow-400:#eecd00;--spectrum-global-color-static-yellow-500:#ddb900;--spectrum-global-color-static-yellow-600:#c9a400;--spectrum-global-color-static-yellow-700:#b59000;--spectrum-global-color-static-magenta-200:#fd7faf;--spectrum-global-color-static-magenta-300:#f2629d;--spectrum-global-color-static-magenta-400:#e24487;--spectrum-global-color-static-magenta-500:#cd286f;--spectrum-global-color-static-magenta-600:#b30f59;--spectrum-global-color-static-magenta-700:#950048;--spectrum-global-color-static-fuchsia-400:#e45de6;--spectrum-global-color-static-fuchsia-500:#d33fd4;--spectrum-global-color-static-fuchsia-600:#bc27bb;--spectrum-global-color-static-fuchsia-700:#a30aa3;--spectrum-global-color-static-purple-400:#b279fa;--spectrum-global-color-static-purple-500:#a15df6;--spectrum-global-color-static-purple-600:#8e43ea;--spectrum-global-color-static-purple-700:#782bd8;--spectrum-global-color-static-purple-800:#6217be;--spectrum-global-color-static-indigo-200:#b2b5ff;--spectrum-global-color-static-indigo-300:#9b9fff;--spectrum-global-color-static-indigo-400:#8489fd;--spectrum-global-color-static-indigo-500:#6d73f6;--spectrum-global-color-static-indigo-600:#575de8;--spectrum-global-color-static-indigo-700:#444ad0;--spectrum-global-color-static-seafoam-200:#4bcec7;--spectrum-global-color-static-seafoam-300:#20bbb4;--spectrum-global-color-static-seafoam-400:#00a6a0;--spectrum-global-color-static-seafoam-500:#00918b;--spectrum-global-color-static-seafoam-600:#007c76;--spectrum-global-color-static-seafoam-700:#006763;--spectrum-global-color-opacity-100:1;--spectrum-global-color-opacity-90:.9;--spectrum-global-color-opacity-80:.8;--spectrum-global-color-opacity-60:.6;--spectrum-global-color-opacity-50:.5;--spectrum-global-color-opacity-42:.42;--spectrum-global-color-opacity-40:.4;--spectrum-global-color-opacity-30:.3;--spectrum-global-color-opacity-25:.25;--spectrum-global-color-opacity-20:.2;--spectrum-global-color-opacity-15:.15;--spectrum-global-color-opacity-10:.1;--spectrum-global-color-opacity-8:.08;--spectrum-global-color-opacity-7:.07;--spectrum-global-color-opacity-6:.06;--spectrum-global-color-opacity-5:.05;--spectrum-global-color-opacity-4:.04;--spectrum-global-color-celery-400:var(--spectrum-celery-600);--spectrum-global-color-celery-500:var(--spectrum-celery-700);--spectrum-global-color-celery-600:var(--spectrum-celery-800);--spectrum-global-color-celery-700:var(--spectrum-celery-900);--spectrum-global-color-chartreuse-400:var(--spectrum-chartreuse-500);--spectrum-global-color-chartreuse-500:var(--spectrum-chartreuse-600);--spectrum-global-color-chartreuse-600:var(--spectrum-chartreuse-700);--spectrum-global-color-chartreuse-700:var(--spectrum-chartreuse-800);--spectrum-global-color-yellow-400:var(--spectrum-yellow-400);--spectrum-global-color-yellow-500:var(--spectrum-yellow-500);--spectrum-global-color-yellow-600:var(--spectrum-yellow-600);--spectrum-global-color-yellow-700:var(--spectrum-yellow-700);--spectrum-global-color-magenta-400:var(--spectrum-magenta-800);--spectrum-global-color-magenta-500:var(--spectrum-magenta-900);--spectrum-global-color-magenta-600:var(--spectrum-magenta-1000);--spectrum-global-color-magenta-700:var(--spectrum-magenta-1100);--spectrum-global-color-fuchsia-400:var(--spectrum-fuchsia-800);--spectrum-global-color-fuchsia-500:var(--spectrum-fuchsia-900);--spectrum-global-color-fuchsia-600:var(--spectrum-fuchsia-1000);--spectrum-global-color-fuchsia-700:var(--spectrum-fuchsia-1100);--spectrum-global-color-purple-400:var(--spectrum-purple-800);--spectrum-global-color-purple-500:var(--spectrum-purple-900);--spectrum-global-color-purple-600:var(--spectrum-purple-1000);--spectrum-global-color-purple-700:var(--spectrum-purple-1100);--spectrum-global-color-indigo-400:var(--spectrum-indigo-800);--spectrum-global-color-indigo-500:var(--spectrum-indigo-900);--spectrum-global-color-indigo-600:var(--spectrum-indigo-1000);--spectrum-global-color-indigo-700:var(--spectrum-indigo-1100);--spectrum-global-color-seafoam-400:var(--spectrum-seafoam-700);--spectrum-global-color-seafoam-500:var(--spectrum-seafoam-800);--spectrum-global-color-seafoam-600:var(--spectrum-seafoam-900);--spectrum-global-color-seafoam-700:var(--spectrum-seafoam-1000);--spectrum-global-color-red-400:var(--spectrum-red-800);--spectrum-global-color-red-500:var(--spectrum-red-900);--spectrum-global-color-red-600:var(--spectrum-red-1000);--spectrum-global-color-red-700:var(--spectrum-red-1100);--spectrum-global-color-orange-400:var(--spectrum-orange-600);--spectrum-global-color-orange-500:var(--spectrum-orange-700);--spectrum-global-color-orange-600:var(--spectrum-orange-800);--spectrum-global-color-orange-700:var(--spectrum-orange-900);--spectrum-global-color-green-400:var(--spectrum-green-800);--spectrum-global-color-green-500:var(--spectrum-green-900);--spectrum-global-color-green-600:var(--spectrum-green-1000);--spectrum-global-color-green-700:var(--spectrum-green-1100);--spectrum-global-color-blue-400:var(--spectrum-blue-800);--spectrum-global-color-blue-500:var(--spectrum-blue-900);--spectrum-global-color-blue-600:var(--spectrum-blue-1000);--spectrum-global-color-blue-700:var(--spectrum-blue-1100);--spectrum-global-color-gray-50:var(--spectrum-gray-50);--spectrum-global-color-gray-75:var(--spectrum-gray-75);--spectrum-global-color-gray-100:var(--spectrum-gray-100);--spectrum-global-color-gray-200:var(--spectrum-gray-200);--spectrum-global-color-gray-300:var(--spectrum-gray-300);--spectrum-global-color-gray-400:var(--spectrum-gray-400);--spectrum-global-color-gray-500:var(--spectrum-gray-500);--spectrum-global-color-gray-600:var(--spectrum-gray-600);--spectrum-global-color-gray-700:var(--spectrum-gray-700);--spectrum-global-color-gray-800:var(--spectrum-gray-800);--spectrum-global-color-gray-900:var(--spectrum-gray-900);--spectrum-accent-color-100:var(--spectrum-blue-100);--spectrum-accent-color-200:var(--spectrum-blue-200);--spectrum-accent-color-300:var(--spectrum-blue-300);--spectrum-accent-color-400:var(--spectrum-blue-400);--spectrum-accent-color-500:var(--spectrum-blue-500);--spectrum-accent-color-600:var(--spectrum-blue-600);--spectrum-accent-color-700:var(--spectrum-blue-700);--spectrum-accent-color-800:var(--spectrum-blue-800);--spectrum-accent-color-900:var(--spectrum-blue-900);--spectrum-accent-color-1000:var(--spectrum-blue-1000);--spectrum-accent-color-1100:var(--spectrum-blue-1100);--spectrum-accent-color-1200:var(--spectrum-blue-1200);--spectrum-accent-color-1300:var(--spectrum-blue-1300);--spectrum-accent-color-1400:var(--spectrum-blue-1400);--spectrum-semantic-negative-color-background:var(--spectrum-negative-background-color-default);--spectrum-semantic-negative-color-default:var(--spectrum-red-900);--spectrum-semantic-negative-color-state-hover:var(--spectrum-red-1000);--spectrum-semantic-negative-color-dark:var(--spectrum-red-1000);--spectrum-semantic-negative-color-border:var(--spectrum-red-800);--spectrum-semantic-negative-color-icon:var(--spectrum-negative-visual-color);--spectrum-semantic-negative-color-status:var(--spectrum-negative-visual-color);--spectrum-semantic-negative-color-text-large:var(--spectrum-red-900);--spectrum-semantic-negative-color-text-small:var(--spectrum-red-900);--spectrum-semantic-negative-color-state-down:var(--spectrum-red-1100);--spectrum-semantic-negative-color-state-focus:var(--spectrum-red-1000);--spectrum-semantic-notice-color-background:var(--spectrum-global-color-static-orange-600,#da7b11);--spectrum-semantic-notice-color-default:var(--spectrum-orange-700);--spectrum-semantic-notice-color-dark:var(--spectrum-orange-800);--spectrum-semantic-notice-color-border:var(--spectrum-orange-600);--spectrum-semantic-notice-color-icon:var(--spectrum-notice-visual-color);--spectrum-semantic-notice-color-status:var(--spectrum-notice-visual-color);--spectrum-semantic-notice-color-text-large:var(--spectrum-orange-700);--spectrum-semantic-notice-color-text-small:var(--spectrum-orange-800);--spectrum-semantic-notice-color-state-down:var(--spectrum-orange-900);--spectrum-semantic-notice-color-state-focus:var(--spectrum-orange-600);--spectrum-semantic-positive-color-background:var(--spectrum-positive-background-color-default);--spectrum-semantic-positive-color-default:var(--spectrum-green-900);--spectrum-semantic-positive-color-dark:var(--spectrum-green-1000);--spectrum-semantic-positive-color-border:var(--spectrum-green-800);--spectrum-semantic-positive-color-icon:var(--spectrum-positive-visual-color);--spectrum-semantic-positive-color-status:var(--spectrum-positive-visual-color);--spectrum-semantic-positive-color-text-large:var(--spectrum-green-900);--spectrum-semantic-positive-color-text-small:var(--spectrum-green-1000);--spectrum-semantic-positive-color-state-down:var(--spectrum-green-1100);--spectrum-semantic-positive-color-state-focus:var(--spectrum-green-800);--spectrum-semantic-informative-color-background:var(--spectrum-informative-background-color-default);--spectrum-semantic-informative-color-default:var(--spectrum-blue-900);--spectrum-semantic-informative-color-dark:var(--spectrum-blue-1000);--spectrum-semantic-informative-color-border:var(--spectrum-blue-800);--spectrum-semantic-informative-color-icon:var(--spectrum-informative-visual-color);--spectrum-semantic-informative-color-status:var(--spectrum-informative-visual-color);--spectrum-semantic-informative-color-text-large:var(--spectrum-blue-900);--spectrum-semantic-informative-color-text-small:var(--spectrum-blue-1000);--spectrum-semantic-informative-color-state-down:var(--spectrum-blue-1100);--spectrum-semantic-informative-color-state-focus:var(--spectrum-blue-800);--spectrum-semantic-cta-color-background-default:var(--spectrum-accent-background-color-default);--spectrum-semantic-cta-color-background-hover:var(--spectrum-accent-background-color-hover);--spectrum-semantic-cta-color-background-down:var(--spectrum-accent-background-color-down);--spectrum-semantic-cta-color-background-key-focus:var(--spectrum-accent-background-color-key-focus);--spectrum-semantic-background-color-key-focus:var(--spectrum-global-color-static-blue-600,#1473e6);--spectrum-semantic-neutral-color-background:var(--spectrum-neutral-subdued-background-color-default);--spectrum-semantic-presence-color-1:var(--spectrum-global-color-static-red-500,#e34850);--spectrum-semantic-presence-color-2:var(--spectrum-global-color-static-orange-400,#f29423);--spectrum-semantic-presence-color-3:var(--spectrum-global-color-static-yellow-400,#edcc00);--spectrum-semantic-presence-color-4:#4bcca2;--spectrum-semantic-presence-color-5:#00c7ff;--spectrum-semantic-presence-color-6:#008cb8;--spectrum-semantic-presence-color-7:#7e4bf3;--spectrum-semantic-presence-color-8:var(--spectrum-global-color-static-fuchsia-600,#b130bd);--spectrum-global-dimension-static-size-0:0px;--spectrum-global-dimension-static-size-10:1px;--spectrum-global-dimension-static-size-25:2px;--spectrum-global-dimension-static-size-50:4px;--spectrum-global-dimension-static-size-40:3px;--spectrum-global-dimension-static-size-65:5px;--spectrum-global-dimension-static-size-100:8px;--spectrum-global-dimension-static-size-115:9px;--spectrum-global-dimension-static-size-125:10px;--spectrum-global-dimension-static-size-130:11px;--spectrum-global-dimension-static-size-150:12px;--spectrum-global-dimension-static-size-160:13px;--spectrum-global-dimension-static-size-175:14px;--spectrum-global-dimension-static-size-200:16px;--spectrum-global-dimension-static-size-225:18px;--spectrum-global-dimension-static-size-250:20px;--spectrum-global-dimension-static-size-300:24px;--spectrum-global-dimension-static-size-400:32px;--spectrum-global-dimension-static-size-450:36px;--spectrum-global-dimension-static-size-500:40px;--spectrum-global-dimension-static-size-550:44px;--spectrum-global-dimension-static-size-600:48px;--spectrum-global-dimension-static-size-700:56px;--spectrum-global-dimension-static-size-800:64px;--spectrum-global-dimension-static-size-900:72px;--spectrum-global-dimension-static-size-1000:80px;--spectrum-global-dimension-static-size-1200:96px;--spectrum-global-dimension-static-size-1700:136px;--spectrum-global-dimension-static-size-2400:192px;--spectrum-global-dimension-static-size-2600:208px;--spectrum-global-dimension-static-size-3400:272px;--spectrum-global-dimension-static-size-3600:288px;--spectrum-global-dimension-static-size-4600:368px;--spectrum-global-dimension-static-size-5000:400px;--spectrum-global-dimension-static-size-6000:480px;--spectrum-global-dimension-static-font-size-50:11px;--spectrum-global-dimension-static-font-size-75:12px;--spectrum-global-dimension-static-font-size-100:14px;--spectrum-global-dimension-static-font-size-150:15px;--spectrum-global-dimension-static-font-size-200:16px;--spectrum-global-dimension-static-font-size-300:18px;--spectrum-global-dimension-static-font-size-400:20px;--spectrum-global-dimension-static-font-size-500:22px;--spectrum-global-dimension-static-font-size-600:25px;--spectrum-global-dimension-static-font-size-700:28px;--spectrum-global-dimension-static-font-size-800:32px;--spectrum-global-dimension-static-font-size-900:36px;--spectrum-global-dimension-static-font-size-1000:40px;--spectrum-global-dimension-static-percent-50:50%;--spectrum-global-dimension-static-percent-100:100%;--spectrum-global-dimension-static-breakpoint-xsmall:304px;--spectrum-global-dimension-static-breakpoint-small:768px;--spectrum-global-dimension-static-breakpoint-medium:1280px;--spectrum-global-dimension-static-breakpoint-large:1768px;--spectrum-global-dimension-static-breakpoint-xlarge:2160px;--spectrum-global-dimension-static-grid-columns:12;--spectrum-global-dimension-static-grid-fluid-width:100%;--spectrum-global-dimension-static-grid-fixed-max-width:1280px;--spectrum-global-font-family-base:adobe-clean,\"Source Sans Pro\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Trebuchet MS\",\"Lucida Grande\",sans-serif;--spectrum-global-font-family-serif:adobe-clean-serif,\"Source Serif Pro\",Georgia,serif;--spectrum-global-font-family-code:\"Source Code Pro\",Monaco,monospace;--spectrum-global-font-weight-thin:100;--spectrum-global-font-weight-ultra-light:200;--spectrum-global-font-weight-light:300;--spectrum-global-font-weight-regular:400;--spectrum-global-font-weight-medium:500;--spectrum-global-font-weight-semi-bold:600;--spectrum-global-font-weight-bold:700;--spectrum-global-font-weight-extra-bold:800;--spectrum-global-font-weight-black:900;--spectrum-global-font-style-regular:normal;--spectrum-global-font-style-italic:italic;--spectrum-global-font-letter-spacing-none:0;--spectrum-global-font-letter-spacing-small:.0125em;--spectrum-global-font-letter-spacing-han:.05em;--spectrum-global-font-letter-spacing-medium:.06em;--spectrum-global-font-line-height-large:1.7;--spectrum-global-font-line-height-medium:1.5;--spectrum-global-font-line-height-small:1.3;--spectrum-global-font-multiplier-25:.25em;--spectrum-global-font-multiplier-75:.75em;--spectrum-alias-border-size-thin:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-border-size-thick:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-border-size-thicker:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-alias-border-size-thickest:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-input-border-size:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-border-offset-thin:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-border-offset-thick:var(--spectrum-global-dimension-static-size-50,4px);--spectrum-alias-border-offset-thicker:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-border-offset-thickest:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-baseline:var(--spectrum-global-dimension-static-size-100,8px);--spectrum-alias-grid-gutter-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-gutter-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-gutter-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-gutter-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-gutter-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-grid-margin-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-margin-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-margin-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-margin-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-margin-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-grid-layout-region-margin-bottom-xsmall:var(--spectrum-global-dimension-static-size-200,16px);--spectrum-alias-grid-layout-region-margin-bottom-small:var(--spectrum-global-dimension-static-size-300,24px);--spectrum-alias-grid-layout-region-margin-bottom-medium:var(--spectrum-global-dimension-static-size-400,32px);--spectrum-alias-grid-layout-region-margin-bottom-large:var(--spectrum-global-dimension-static-size-500,40px);--spectrum-alias-grid-layout-region-margin-bottom-xlarge:var(--spectrum-global-dimension-static-size-600,48px);--spectrum-alias-radial-reaction-size-default:var(--spectrum-global-dimension-static-size-550,44px);--spectrum-alias-font-family-ar:var(--spectrum-global-font-font-family-ar);--spectrum-alias-font-family-he:var(--spectrum-global-font-font-family-he);--spectrum-alias-font-family-zh:var(--spectrum-global-font-font-family-zh);--spectrum-alias-font-family-zhhans:var(--spectrum-global-font-font-family-zhhans);--spectrum-alias-font-family-ko:var(--spectrum-global-font-font-family-ko);--spectrum-alias-font-family-ja:var(--spectrum-global-font-font-family-ja);--spectrum-alias-font-family-condensed:var(--spectrum-global-font-font-family-condensed);--spectrum-alias-line-height-body:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-line-height-title:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-body-han-text-line-height:var(--spectrum-global-font-line-height-large,1.7);--spectrum-alias-body-text-font-family:var(--spectrum-global-font-family-base,adobe-clean,\"Source Sans Pro\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Trebuchet MS\",\"Lucida Grande\",sans-serif);--spectrum-alias-body-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-body-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-body-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-button-text-line-height:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-heading-han-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-heading-text-line-height:var(--spectrum-global-font-line-height-small,1.3);--spectrum-alias-heading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-heading-text-font-weight-regular-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-light,300);--spectrum-alias-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-heading-text-font-weight-strong-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-subheading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-detail-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-detail-text-font-weight-light:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-detail-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-serif-text-font-family:var(--spectrum-global-font-family-serif,adobe-clean-serif,\"Source Serif Pro\",Georgia,serif);--spectrum-alias-article-text-font-family:var(--spectrum-global-font-family-serif,adobe-clean-serif,\"Source Serif Pro\",Georgia,serif);--spectrum-alias-article-body-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-body-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-heading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-subheading-text-font-weight:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-article-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-article-detail-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-article-detail-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-code-text-font-family:var(--spectrum-global-font-family-code,\"Source Code Pro\",Monaco,monospace);--spectrum-alias-han-heading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-regular-emphasis:var(--spectrum-global-font-weight-extra-bold,800);--spectrum-alias-han-heading-text-font-weight-regular-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-quiet:var(--spectrum-global-font-weight-light,300);--spectrum-alias-han-heading-text-font-weight-quiet-emphasis:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-heading-text-font-weight-quiet-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-light:var(--spectrum-global-font-weight-light,300);--spectrum-alias-han-heading-text-font-weight-light-emphasis:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-heading-text-font-weight-light-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-heading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-strong-emphasis:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-strong-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy-emphasis:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-heading-text-font-weight-heavy-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-body-text-font-weight-regular:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-body-text-font-weight-emphasis:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-body-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-subheading-text-font-weight-regular:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-subheading-text-font-weight-emphasis:var(--spectrum-global-font-weight-extra-bold,800);--spectrum-alias-han-subheading-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-han-detail-text-font-weight:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-han-detail-text-font-weight-emphasis:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-han-detail-text-font-weight-strong:var(--spectrum-global-font-weight-black,900);--spectrum-alias-code-text-font-weight-regular:var(--spectrum-global-font-weight-regular,400);--spectrum-alias-code-text-font-weight-strong:var(--spectrum-global-font-weight-bold,700);--spectrum-alias-code-text-line-height:var(--spectrum-global-font-line-height-medium,1.5);--spectrum-alias-heading-margin-bottom:var(--spectrum-global-font-multiplier-25,.25em);--spectrum-alias-body-margin-bottom:var(--spectrum-global-font-multiplier-75,.75em);--spectrum-alias-focus-ring-gap:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-input-focusring-gap:var(--spectrum-global-dimension-static-size-0,0px);--spectrum-alias-focus-ring-size:var(--spectrum-global-dimension-static-size-25,2px);--spectrum-alias-input-focusring-size:var(--spectrum-global-dimension-static-size-10,1px);--spectrum-alias-loupe-entry-animation-duration:var(--spectrum-global-animation-duration-300,.19s);--spectrum-alias-loupe-exit-animation-duration:var(--spectrum-global-animation-duration-300,.19s)}.spectrum--medium_9e130c,.spectrum--large_9e130c{--spectrum-alias-dropshadow-blur:var(--spectrum-global-dimension-size-50);--spectrum-alias-dropshadow-offset-y:var(--spectrum-global-dimension-size-10);--spectrum-alias-font-size-default:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-line-height-small:var(--spectrum-global-dimension-size-200);--spectrum-alias-line-height-medium:var(--spectrum-global-dimension-size-250);--spectrum-alias-line-height-large:var(--spectrum-global-dimension-size-300);--spectrum-alias-line-height-xlarge:var(--spectrum-global-dimension-size-400);--spectrum-alias-line-height-xxlarge:var(--spectrum-global-dimension-size-600);--spectrum-alias-layout-label-gap-size:var(--spectrum-global-dimension-size-100);--spectrum-alias-pill-button-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-pill-button-text-baseline:var(--spectrum-global-dimension-static-size-150,12px);--spectrum-alias-border-radius-xsmall:var(--spectrum-global-dimension-size-10);--spectrum-alias-border-radius-small:var(--spectrum-global-dimension-size-25);--spectrum-alias-border-radius-regular:var(--spectrum-global-dimension-size-50);--spectrum-alias-border-radius-medium:var(--spectrum-global-dimension-size-100);--spectrum-alias-border-radius-large:var(--spectrum-global-dimension-size-200);--spectrum-alias-single-line-height:var(--spectrum-global-dimension-size-400);--spectrum-alias-single-line-width:var(--spectrum-global-dimension-size-2400);--spectrum-alias-workflow-icon-size:var(--spectrum-global-dimension-size-225);--spectrum-alias-heading-display1-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-xxxl-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-display1-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-xxxl-text-size:var(--spectrum-global-dimension-font-size-1300);--spectrum-alias-heading-han-display1-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-han-xxxl-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-display1-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-xxxl-margin-top:var(--spectrum-global-dimension-font-size-1200);--spectrum-alias-heading-display2-text-size:var(--spectrum-global-dimension-font-size-1100);--spectrum-alias-heading-xxl-text-size:var(--spectrum-global-dimension-font-size-1100);--spectrum-alias-heading-display2-margin-top:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-xxl-margin-top:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-display2-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-xxl-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-han-display2-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-han-xxl-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading-xl-text-size:var(--spectrum-global-dimension-font-size-900);--spectrum-alias-heading1-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-xl-margin-top:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-han-text-size:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading-han-xl-text-size:var(--spectrum-global-dimension-font-size-800);--spectrum-alias-heading1-han-margin-top:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading-han-xl-margin-top:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading2-text-size:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading-l-text-size:var(--spectrum-global-dimension-font-size-700);--spectrum-alias-heading2-margin-top:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading-l-margin-top:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading2-han-text-size:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading-han-l-text-size:var(--spectrum-global-dimension-font-size-600);--spectrum-alias-heading2-han-margin-top:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading-han-l-margin-top:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading3-text-size:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading-m-text-size:var(--spectrum-global-dimension-font-size-500);--spectrum-alias-heading3-margin-top:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading-m-margin-top:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading3-han-text-size:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading-han-m-text-size:var(--spectrum-global-dimension-font-size-400);--spectrum-alias-heading3-han-margin-top:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading-han-m-margin-top:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading4-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading-s-text-size:var(--spectrum-global-dimension-font-size-300);--spectrum-alias-heading4-margin-top:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading-s-margin-top:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading5-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading-xs-text-size:var(--spectrum-global-dimension-font-size-200);--spectrum-alias-heading5-margin-top:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading-xs-margin-top:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading6-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading-xxs-text-size:var(--spectrum-global-dimension-font-size-100);--spectrum-alias-heading6-margin-top:var(--spectrum-global-dimension-font-size-75);--spectrum-alias-heading-xxs-margin-top:var(--spectrum-global-dimension-font-size-75);--spectrum-alias-avatar-size-50:var(--spectrum-global-dimension-size-200);--spectrum-alias-avatar-size-75:var(--spectrum-global-dimension-size-225);--spectrum-alias-avatar-size-200:var(--spectrum-global-dimension-size-275);--spectrum-alias-avatar-size-300:var(--spectrum-global-dimension-size-325);--spectrum-alias-avatar-size-500:var(--spectrum-global-dimension-size-400);--spectrum-alias-avatar-size-700:var(--spectrum-global-dimension-size-500)}.spectrum--darkest_9e130c,.spectrum--dark_9e130c,.spectrum--light_9e130c,.spectrum--lightest_9e130c{--spectrum-alias-background-color-default:var(--spectrum-gray-100);--spectrum-alias-background-color-disabled:var(--spectrum-gray-200);--spectrum-alias-background-color-transparent:transparent;--spectrum-alias-background-color-label-gray:#707070;--spectrum-alias-background-color-quickactions-overlay:#0003;--spectrum-alias-placeholder-text-color:var(--spectrum-gray-800);--spectrum-alias-placeholder-text-color-hover:var(--spectrum-gray-900);--spectrum-alias-placeholder-text-color-down:var(--spectrum-gray-900);--spectrum-alias-placeholder-text-color-selected:var(--spectrum-gray-800);--spectrum-alias-label-text-color:var(--spectrum-gray-700);--spectrum-alias-text-color:var(--spectrum-gray-800);--spectrum-alias-text-color-hover:var(--spectrum-gray-900);--spectrum-alias-text-color-down:var(--spectrum-gray-900);--spectrum-alias-text-color-key-focus:var(--spectrum-blue-1000);--spectrum-alias-text-color-mouse-focus:var(--spectrum-blue-1000);--spectrum-alias-text-color-disabled:var(--spectrum-gray-400);--spectrum-alias-text-color-invalid:var(--spectrum-red-900);--spectrum-alias-text-color-selected:var(--spectrum-blue-1000);--spectrum-alias-text-color-selected-neutral:var(--spectrum-gray-900);--spectrum-alias-title-text-color:var(--spectrum-gray-900);--spectrum-alias-heading-text-color:var(--spectrum-gray-900);--spectrum-alias-border-color:var(--spectrum-gray-500);--spectrum-alias-border-color-hover:var(--spectrum-gray-600);--spectrum-alias-border-color-down:var(--spectrum-gray-600);--spectrum-alias-border-color-focus:var(--spectrum-blue-800);--spectrum-alias-input-border-color-key-focus:var(--spectrum-alias-border-color-focus,var(--spectrum-global-color-blue-400));--spectrum-alias-border-color-mouse-focus:var(--spectrum-blue-900);--spectrum-alias-border-color-disabled:var(--spectrum-gray-200);--spectrum-alias-border-color-extralight:var(--spectrum-gray-100);--spectrum-alias-border-color-light:var(--spectrum-gray-200);--spectrum-alias-border-color-mid:var(--spectrum-gray-300);--spectrum-alias-border-color-dark:var(--spectrum-gray-400);--spectrum-alias-border-color-transparent:transparent;--spectrum-alias-border-color-translucent-dark:#0000000d;--spectrum-alias-border-color-translucent-darker:#0000001a;--spectrum-alias-focus-color:var(--spectrum-blue-800);--spectrum-alias-focus-ring-color:var(--spectrum-alias-focus-color,var(--spectrum-global-color-blue-400));--spectrum-alias-track-color-default:var(--spectrum-gray-300);--spectrum-alias-track-color-disabled:var(--spectrum-gray-300);--spectrum-alias-track-color-over-background:#fff3;--spectrum-alias-icon-color:var(--spectrum-gray-700);--spectrum-alias-icon-color-over-background:var(--spectrum-global-color-static-white,#fff);--spectrum-alias-icon-color-hover:var(--spectrum-gray-900);--spectrum-alias-icon-color-down:var(--spectrum-gray-900);--spectrum-alias-icon-color-focus:var(--spectrum-gray-900);--spectrum-alias-icon-color-disabled:var(--spectrum-gray-400);--spectrum-alias-icon-color-selected-neutral:var(--spectrum-gray-900);--spectrum-alias-icon-color-selected:var(--spectrum-blue-900);--spectrum-alias-icon-color-selected-hover:var(--spectrum-blue-1000);--spectrum-alias-icon-color-selected-down:var(--spectrum-blue-1100);--spectrum-alias-icon-color-selected-focus:var(--spectrum-blue-1000);--spectrum-alias-icon-color-error:var(--spectrum-red-800);--spectrum-alias-toolbar-background-color:var(--spectrum-gray-100);--spectrum-alias-colorhandle-outer-border-color:#0000006b;--spectrum-alias-categorical-color-1:var(--spectrum-global-color-static-seafoam-200,#26c0c7);--spectrum-alias-categorical-color-2:var(--spectrum-global-color-static-indigo-700,#5151d3);--spectrum-alias-categorical-color-3:var(--spectrum-global-color-static-orange-500,#e68619);--spectrum-alias-categorical-color-4:var(--spectrum-global-color-static-magenta-500,#d83790);--spectrum-alias-categorical-color-5:var(--spectrum-global-color-static-indigo-200,#9090fa);--spectrum-alias-categorical-color-6:var(--spectrum-global-color-static-celery-200,#58e06f);--spectrum-alias-categorical-color-7:var(--spectrum-global-color-static-blue-500,#2680eb);--spectrum-alias-categorical-color-8:var(--spectrum-global-color-static-purple-800,#6f38b1);--spectrum-alias-categorical-color-9:var(--spectrum-global-color-static-yellow-500,#dfbf00);--spectrum-alias-categorical-color-10:var(--spectrum-global-color-static-orange-700,#cb6f10);--spectrum-alias-categorical-color-11:var(--spectrum-global-color-static-green-600,#268e6c);--spectrum-alias-categorical-color-12:var(--spectrum-global-color-static-chartreuse-300,#9bec54);--spectrum-alias-categorical-color-13:var(--spectrum-global-color-static-blue-200,#5aa9fa);--spectrum-alias-categorical-color-14:var(--spectrum-global-color-static-fuchsia-500,#c038cc);--spectrum-alias-categorical-color-15:var(--spectrum-global-color-static-magenta-200,#f56bb7);--spectrum-alias-categorical-color-16:var(--spectrum-global-color-static-yellow-200,#ffe22e);--spectrum-alias-toggle-color-default:var(--spectrum-gray-600);--spectrum-alias-toggle-color-hover:var(--spectrum-gray-700);--spectrum-alias-toggle-color-key-focus:var(--spectrum-gray-700);--spectrum-alias-toggle-color-selected:var(--spectrum-gray-700);--spectrum-alias-toggle-color-selected-hover:var(--spectrum-gray-800);--spectrum-alias-toggle-color-selected-key-focus:var(--spectrum-gray-800);--spectrum-alias-toggle-color-selected-down:var(--spectrum-gray-900);--spectrum-actionbutton-background-color-disabled:transparent;--spectrum-actionbutton-border-color-disabled:var(--spectrum-gray-300);--spectrum-actionbutton-quiet-background-color-hover:var(--spectrum-gray-200);--spectrum-actionbutton-quiet-background-color-key-focus:var(--spectrum-gray-200);--spectrum-actionbutton-quiet-background-color-down:var(--spectrum-gray-300);--spectrum-actionbutton-static-black-border-color:#0006;--spectrum-actionbutton-static-black-border-color-hover:#0000008c;--spectrum-actionbutton-static-black-border-color-key-focus:#0000008c;--spectrum-actionbutton-static-black-border-color-down:#000000b3;--spectrum-actionbutton-static-black-border-color-disabled:#00000040;--spectrum-actionbutton-static-black-border-color-selected-disabled:#0000001a;--spectrum-actionbutton-static-black-background-color:transparent;--spectrum-actionbutton-static-black-background-color-disabled:transparent;--spectrum-actionbutton-static-white-border-color:#fff6;--spectrum-actionbutton-static-white-border-color-hover:#ffffff8c;--spectrum-actionbutton-static-white-border-color-key-focus:#ffffff8c;--spectrum-actionbutton-static-white-border-color-down:#ffffffb3;--spectrum-actionbutton-static-white-border-color-disabled:#ffffff40;--spectrum-actionbutton-static-white-border-color-selected-disabled:#ffffff1a;--spectrum-actionbutton-static-white-background-color:transparent;--spectrum-actionbutton-static-white-background-color-disabled:transparent;--spectrum-combobox-fieldbutton-inset:0;--spectrum-combobox-fieldbutton-border-left-width:var(--spectrum-alias-input-border-size);--spectrum-combobox-fieldbutton-focus-ring-border-radius:var(--spectrum-combobox-fieldbutton-border-top-left-radius,0);--spectrum-combobox-fieldbutton-start-border-radius:0;--spectrum-combobox-fieldbutton-end-border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));--spectrum-actiongroup-compact-button-gap:calc(-1*var(--spectrum-actionbutton-border-size,var(--spectrum-alias-border-size-thin)));--spectrum-tooltip-background-color:var(--spectrum-neutral-subdued-background-color-default)}",".flex-container_e15493,.flex_e15493{display:flex}.flex-gap_e15493{--gap:0px;--column-gap:var(--gap);--row-gap:var(--gap);margin:calc(var(--row-gap)/-2)calc(var(--column-gap)/-2);width:calc(100% + var(--column-gap) + 1px);height:calc(100% + var(--row-gap))}.flex-container_e15493 .flex-gap_e15493>*{margin:calc(var(--row-gap)/2)calc(var(--column-gap)/2)}",".spectrum-Popover_38efea.react-spectrum-Popover_38efea{visibility:visible}.spectrum-Popover_38efea .spectrum-Dialog-content_38efea{max-height:initial}.spectrum-Modal-wrapper_38efea.react-spectrum-Modal-wrapper_38efea,.spectrum-Modal_38efea.react-spectrum-Modal_38efea,.spectrum-Tray_38efea.react-spectrum-Tray_38efea{visibility:visible}.spectrum-Tray_23bf66{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Tray_23bf66.is-open_23bf66{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}[dir=ltr] .spectrum-Tray-wrapper_23bf66{left:0}[dir=rtl] .spectrum-Tray-wrapper_23bf66{right:0}.spectrum-Tray-wrapper_23bf66{width:100%;height:100vh;pointer-events:none;z-index:2;justify-content:center;display:flex;position:fixed;top:0}.spectrum-Tray_23bf66{--spectrum-tray-margin-top:64px;--spectrum-tray-max-width:450px;width:var(--spectrum-tray-width,100%);max-width:var(--spectrum-tray-max-width,375px);min-height:var(--spectrum-tray-min-height,var(--spectrum-global-dimension-static-size-800));max-height:calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));padding-bottom:max(calc(100vh - var(--spectrum-visual-viewport-height)),env(safe-area-inset-bottom));border-radius:var(--spectrum-tray-full-width-border-radius,var(--spectrum-alias-border-radius-regular))var(--spectrum-tray-full-width-border-radius,var(--spectrum-alias-border-radius-regular))var(--spectrum-tray-border-radius,0px)var(--spectrum-tray-border-radius,0px);transition:opacity var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s,transform var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s;outline:none;flex-direction:column;display:flex;position:absolute;bottom:0;transform:translateY(100%)}.spectrum-Tray_23bf66.is-open_23bf66{transition:transform var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200)),opacity var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200));transform:translateY(0)}.spectrum-Tray--fixedHeight_23bf66{height:calc(var(--spectrum-visual-viewport-height) - var(--spectrum-tray-margin-top));top:var(--spectrum-tray-margin-top)}@media (max-width:450px){.spectrum-Tray_23bf66{border-radius:var(--spectrum-tray-border-radius,0px)}}.spectrum-Tray_23bf66{background-color:var(--spectrum-tray-background-color)}.spectrum-Modal_f81956{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Modal_f81956.is-open_f81956{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Modal-wrapper_f81956{box-sizing:border-box;width:100vw;height:var(--spectrum-visual-viewport-height);visibility:hidden;pointer-events:none;z-index:2;transition:visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.spectrum-Modal-wrapper_f81956.is-open_f81956{visibility:visible}.spectrum-Modal_f81956{transform:translateY(var(--spectrum-dialog-entry-animation-distance,var(--spectrum-global-dimension-size-250)));z-index:2;max-height:calc(var(--spectrum-visual-viewport-height)*.9);max-width:90vw;min-width:var(--spectrum-dialog-min-width,var(--spectrum-global-dimension-static-size-3600));border-radius:var(--spectrum-dialog-border-radius,var(--spectrum-global-dimension-size-50));pointer-events:auto;transition:opacity var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))cubic-bezier(.5,0,1,1)0s,visibility 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100))),transform 0s linear calc(0s + var(--spectrum-dialog-exit-animation-duration,var(--spectrum-global-animation-duration-100)));outline:none}.spectrum-Modal_f81956.is-open_f81956{transition:transform var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200)),opacity var(--spectrum-dialog-entry-animation-duration,var(--spectrum-global-animation-duration-500))cubic-bezier(0,0,.4,1)var(--spectrum-dialog-entry-animation-delay,var(--spectrum-global-animation-duration-200));transform:translateY(0)}@media only screen and (max-device-width:400px),only screen and (max-device-height:350px){.spectrum-Modal--responsive_f81956{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:0}.spectrum-Modal-wrapper_f81956 .spectrum-Modal--responsive_f81956{margin-top:0}}.spectrum-Modal--fullscreen_f81956{max-width:none;max-height:none;width:calc(100% - 80px);height:calc(100% - 80px);position:fixed;top:40px;bottom:40px;left:40px;right:40px}.spectrum-Modal--fullscreenTakeover_f81956{max-width:none;max-height:none;box-sizing:border-box;border:none;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}.spectrum-Modal--fullscreenTakeover_f81956,.spectrum-Modal--fullscreenTakeover_f81956.is-open_f81956{transform:none}.spectrum-Modal_f81956{background:var(--spectrum-dialog-background-color,var(--spectrum-alias-background-color-default))}.spectrum-Underlay_eb7615{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Underlay_eb7615.is-open_eb7615{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Underlay_eb7615{z-index:1;transition:opacity var(--spectrum-dialog-background-exit-animation-duration,var(--spectrum-global-animation-duration-300))cubic-bezier(.5,0,1,1)var(--spectrum-dialog-background-exit-animation-delay,var(--spectrum-global-animation-duration-200)),visibility 0s linear calc(var(--spectrum-dialog-background-exit-animation-delay,var(--spectrum-global-animation-duration-200)) + var(--spectrum-dialog-background-exit-animation-duration,var(--spectrum-global-animation-duration-300)));position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.spectrum-Underlay_eb7615.spectrum-Underlay--transparent_eb7615{background:0 0;transition:none}.spectrum-Underlay_eb7615.is-open_eb7615{transition:opacity var(--spectrum-dialog-background-entry-animation-duration,var(--spectrum-global-animation-duration-600))cubic-bezier(0,0,.4,1)0s}.spectrum-Underlay_eb7615{background:var(--spectrum-dialog-underlay-background-color,var(--spectrum-alias-background-color-modal-overlay))}.spectrum-Popover_6115b8{visibility:hidden;opacity:0;transition:transform var(--spectrum-global-animation-duration-100,.13s)ease-in-out,opacity var(--spectrum-global-animation-duration-100,.13s)ease-in-out,visibility 0s linear var(--spectrum-global-animation-duration-100,.13s);pointer-events:none}.spectrum-Popover_6115b8.is-open_6115b8{visibility:visible;opacity:.9999;pointer-events:auto;transition-delay:0s}.spectrum-Popover--bottom_6115b8.is-open_6115b8{transform:translateY(var(--spectrum-overlay-positive-transform-distance))}.spectrum-Popover--top_6115b8.is-open_6115b8{transform:translateY(var(--spectrum-overlay-negative-transform-distance))}.spectrum-Popover--right_6115b8.is-open_6115b8{transform:translateX(var(--spectrum-overlay-positive-transform-distance))}.spectrum-Popover--left_6115b8.is-open_6115b8{transform:translateX(var(--spectrum-overlay-negative-transform-distance))}.spectrum-Popover_6115b8{box-sizing:border-box;min-width:var(--spectrum-global-dimension-size-400);min-height:var(--spectrum-global-dimension-size-400);border-style:solid;border-width:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin));border-radius:var(--spectrum-popover-border-radius,var(--spectrum-alias-border-radius-regular));outline:none;flex-direction:column;display:inline-flex;position:absolute}.spectrum-Popover-tip_6115b8{--spectrum-popover-tip-size:var(--spectrum-popover-tip-width,var(--spectrum-global-dimension-size-250));--spectrum-popover-tip-borderWidth:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin));position:absolute;-webkit-transform:translate(0)}.spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8{stroke-linecap:square;stroke-linejoin:miter;stroke-width:var(--spectrum-popover-border-size,var(--spectrum-alias-border-size-thin))}.spectrum-Popover--dialog_6115b8{min-width:270px;padding:30px 29px}.spectrum-Popover--left_6115b8.spectrum-Popover--withTip_6115b8{margin-right:13px}.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8{left:100%}.spectrum-Popover--right_6115b8.spectrum-Popover--withTip_6115b8{margin-left:13px}.spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8{right:100%;transform:scaleX(-1)}.spectrum-Popover--left_6115b8 .spectrum-Popover-tip_6115b8,.spectrum-Popover--right_6115b8 .spectrum-Popover-tip_6115b8{margin-top:calc(var(--spectrum-global-dimension-size-150)*-1);top:50%}.spectrum-Popover--bottom_6115b8.spectrum-Popover--withTip_6115b8{margin-top:13px}.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8{bottom:100%;transform:scaleY(-1)}.spectrum-Popover--top_6115b8.spectrum-Popover--withTip_6115b8{margin-bottom:13px}.spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8{top:100%}.spectrum-Popover--bottom_6115b8 .spectrum-Popover-tip_6115b8,.spectrum-Popover--top_6115b8 .spectrum-Popover-tip_6115b8{margin-left:calc(var(--spectrum-global-dimension-size-150)*-1);left:50%}.spectrum-Popover_6115b8{background-color:var(--spectrum-popover-background-color,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-popover-border-color,var(--spectrum-alias-border-color-dark));filter:drop-shadow(0 var(--spectrum-popover-shadow-offset-y,var(--spectrum-alias-dropshadow-offset-y))var(--spectrum-popover-shadow-blur,var(--spectrum-alias-dropshadow-blur))var(--spectrum-popover-shadow-color,var(--spectrum-alias-dropshadow-color)));-webkit-filter:drop-shadow(0 var(--spectrum-popover-shadow-offset-y,var(--spectrum-alias-dropshadow-offset-y))var(--spectrum-popover-shadow-blur,var(--spectrum-alias-dropshadow-blur))var(--spectrum-popover-shadow-color,var(--spectrum-alias-dropshadow-color)));will-change:filter;clip-path:inset(-30px)}.spectrum-Popover_6115b8 .spectrum-Popover-tip_6115b8 .spectrum-Popover-tip-triangle_6115b8{fill:var(--spectrum-popover-background-color,var(--spectrum-global-color-gray-50));stroke:var(--spectrum-popover-border-color,var(--spectrum-alias-border-color-dark))}",".spectrum-Menu-popover_7ea47c{max-width:320px}[dir=ltr] .spectrum-Menu_7ea47c{text-align:left}[dir=rtl] .spectrum-Menu_7ea47c{text-align:right}.spectrum-Menu_7ea47c{box-sizing:border-box;padding:var(--spectrum-popover-padding-y,var(--spectrum-global-dimension-size-50))0;-webkit-user-select:none;user-select:none;margin:0;list-style-type:none;display:block;overflow-y:auto}.spectrum-Menu_7ea47c .spectrum-Menu-sectionHeading_7ea47c{margin-top:var(--spectrum-global-dimension-size-75);margin-bottom:var(--spectrum-global-dimension-size-40)}.spectrum-Menu_7ea47c:focus{outline:none}.spectrum-Menu-checkmark_7ea47c{opacity:1;padding-top:calc(var(--spectrum-selectlist-option-icon-padding-y) - var(--spectrum-selectlist-option-padding-height));transform:scale(1)}[dir=ltr] .spectrum-Menu-item_7ea47c{border-left:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}[dir=rtl] .spectrum-Menu-item_7ea47c{border-right:var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25))solid transparent}.spectrum-Menu-item_7ea47c{cursor:default;box-sizing:border-box;font-size:var(--spectrum-selectlist-option-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-selectlist-option-text-font-weight,var(--spectrum-global-font-weight-regular));margin:0;font-style:normal;text-decoration:none;position:relative}.spectrum-Menu-item_7ea47c:focus{outline:none}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{display:block}[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-left:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Icon_7ea47c+.spectrum-Menu-itemLabel_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c .spectrum-Menu-itemIcon_7ea47c+.spectrum-Menu-itemLabel_7ea47c{margin-right:var(--spectrum-selectlist-thumbnail-image-padding-x,var(--spectrum-global-dimension-size-100))}.spectrum-Menu-itemLabel_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);word-break:break-word;grid-area:text}.spectrum-Menu-itemLabel--wrapping_7ea47c{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spectrum-Menu-checkmark_7ea47c{grid-area:checkmark;place-self:flex-start end;display:none}.spectrum-Menu-divider_7ea47c{box-sizing:content-box;height:var(--spectrum-selectlist-divider-size,var(--spectrum-alias-border-size-thick));margin:calc(var(--spectrum-selectlist-divider-padding,3px)/2)var(--spectrum-global-dimension-size-150);border:none;padding:0;overflow:visible}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-150)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu-sectionHeading_7ea47c{padding-right:var(--spectrum-global-dimension-size-450)}[dir=rtl] .spectrum-Menu-sectionHeading_7ea47c{padding-left:var(--spectrum-global-dimension-size-450)}.spectrum-Menu-sectionHeading_7ea47c{margin:var(--spectrum-global-dimension-size-75)0 0 0;font-size:var(--spectrum-global-dimension-font-size-100);font-weight:var(--spectrum-global-font-weight-bold,700);line-height:var(--spectrum-alias-line-height-medium,var(--spectrum-global-dimension-size-250));padding-top:0;padding-bottom:0;display:block}.spectrum-Menu_7ea47c .spectrum-Menu_7ea47c{margin:0;display:block}.spectrum-Menu-itemGrid_7ea47c{display:-ms-grid;-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr auto auto auto var(--spectrum-global-dimension-size-150);-ms-grid-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-rows:var(--spectrum-selectlist-option-padding-height)1fr auto var(--spectrum-selectlist-option-padding-height);grid-template-areas:\". . . . . . .\"\".icon text checkmark end keyboard.\"\".icon description checkmark end keyboard.\"\". . . . . . .\";display:grid}.spectrum-Menu-item_7ea47c.is-selectable_7ea47c .spectrum-Menu-itemGrid_7ea47c{-ms-grid-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150);grid-template-columns:calc(var(--spectrum-global-dimension-size-150) - var(--spectrum-selectlist-border-size-key-focus,var(--spectrum-global-dimension-static-size-25)))auto 1fr calc(var(--spectrum-icon-checkmark-medium-width) + var(--spectrum-selectlist-option-icon-padding-x,var(--spectrum-global-dimension-size-150)))auto auto var(--spectrum-global-dimension-size-150)}[dir=ltr] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu_7ea47c .spectrum-Menu-end_7ea47c{grid-area:end;place-self:flex-start end}[dir=ltr] .spectrum-Menu-icon_7ea47c{padding-right:var(--spectrum-global-dimension-size-100)}[dir=rtl] .spectrum-Menu-icon_7ea47c{padding-left:var(--spectrum-global-dimension-size-100)}.spectrum-Menu-icon_7ea47c{padding-top:var(--spectrum-global-dimension-size-10);grid-area:icon}.spectrum-Menu-description_7ea47c{line-height:var(--spectrum-global-font-line-height-small,1.3);font-size:var(--spectrum-global-dimension-size-150);grid-area:description}[dir=ltr] .spectrum-Menu-keyboard_7ea47c{padding-left:var(--spectrum-global-dimension-size-125)}[dir=rtl] .spectrum-Menu-keyboard_7ea47c{padding-right:var(--spectrum-global-dimension-size-125)}.spectrum-Menu-keyboard_7ea47c{grid-area:keyboard;align-self:flex-start;font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Menu_7ea47c{--spectrum-heading-subtitle3-text-color:var(--spectrum-global-color-gray-900);background-color:var(--spectrum-selectlist-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-Menu-item_7ea47c{background-color:var(--spectrum-selectlist-option-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}[dir=ltr] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=ltr] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-left-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}[dir=rtl] .spectrum-Menu-item_7ea47c.focus-ring_7ea47c,[dir=rtl] .spectrum-Menu-item_7ea47c.is-focused_7ea47c{border-right-color:var(--spectrum-selectlist-option-focus-indicator-color,var(--spectrum-alias-border-color-focus))}.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-hover,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-hover,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:var(--spectrum-selectlist-option-icon-color-selected,var(--spectrum-alias-icon-color-selected))}.spectrum-Menu-item_7ea47c .is-active_7ea47c,.spectrum-Menu-item_7ea47c:active{background-color:var(--spectrum-selectlist-option-background-color-down,var(--spectrum-alias-background-color-hover-overlay))}.spectrum-Menu-item_7ea47c.is-disabled_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-selectlist-option-text-color-disabled,var(--spectrum-alias-text-color-disabled));cursor:default;background-image:none}.spectrum-Menu-sectionHeading_7ea47c{color:var(--spectrum-heading-subtitle3-text-color,var(--spectrum-global-color-gray-700))}.spectrum-Menu-divider_7ea47c{background-color:var(--spectrum-global-color-gray-300)}.spectrum-Menu-description_7ea47c{color:var(--spectrum-global-color-gray-700)}@media (forced-colors:active){.spectrum-Menu-divider_7ea47c{background-color:CanvasText;forced-color-adjust:none}.spectrum-Menu-item_7ea47c{forced-color-adjust:none;--spectrum-heading-subtitle3-text-color:ButtonText;--spectrum-selectlist-background-color:ButtonFace;--spectrum-selectlist-divider-color:ButtonText;--spectrum-selectlist-option-background-color:ButtonFace;--spectrum-selectlist-option-background-color-disabled:ButtonFace;--spectrum-selectlist-option-background-color-down:ButtonFace;--spectrum-selectlist-option-background-color-hover:Highlight;--spectrum-selectlist-option-background-color-key-focus:Highlight;--spectrum-selectlist-option-focus-indicator-color:Highlight;--spectrum-selectlist-option-icon-color-selected:Highlight;--spectrum-selectlist-option-text-color:ButtonText;--spectrum-selectlist-option-text-color-disabled:GrayText;--spectrum-selectlist-option-text-color-hover:HighlightText;--spectrum-selectlist-option-text-color-key-focus:HighlightText;--spectrum-alias-border-color-focus:Highlight}.spectrum-Menu-item_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c,.spectrum-Menu-item_7ea47c:focus,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c{background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay));color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color))}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c:focus.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c.is-selected_7ea47c .spectrum-Menu-checkmark_7ea47c{color:HighlightText}.spectrum-Menu-item_7ea47c.is-hovered_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c:focus .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-highlighted_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-open_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.focus-ring_7ea47c .spectrum-Menu-description_7ea47c,.spectrum-Menu-item_7ea47c.is-focused_7ea47c .spectrum-Menu-description_7ea47c{color:var(--spectrum-selectlist-option-text-color-key-focus,var(--spectrum-alias-text-color));background-color:var(--spectrum-selectlist-option-background-color-key-focus,var(--spectrum-alias-background-color-hover-overlay))}}",".spectrum-Breadcrumbs_3fe6e8{flex-wrap:nowrap;flex:1 0;justify-content:flex-start;margin:0;padding:0;list-style-type:none;display:flex}.spectrum-Breadcrumbs-itemSeparator_3fe6e8{top:var(--spectrum-global-dimension-size-10);width:var(--spectrum-breadcrumb-ui-icon-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-breadcrumb-ui-icon-height,var(--spectrum-global-dimension-size-100));opacity:1;position:relative;transform:scale(1)}.spectrum-Breadcrumbs-itemSeparator_3fe6e8.is-reversed_3fe6e8{transform:scale(-1)}.spectrum-Breadcrumbs-item_3fe6e8{box-sizing:border-box;height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));white-space:nowrap;font-size:var(--spectrum-breadcrumb-item-text-size,var(--spectrum-global-dimension-font-size-200));font-weight:var(--spectrum-breadcrumb-item-text-font-weight,var(--spectrum-alias-body-text-font-weight));line-height:var(--spectrum-breadcrumb-item-text-line-height,var(--spectrum-alias-body-text-line-height));justify-content:flex-start;align-items:center;display:inline-flex;position:relative}.spectrum-Breadcrumbs-item_3fe6e8:last-of-type{font-weight:var(--spectrum-breadcrumb-title-text-font-weight,var(--spectrum-alias-body-text-font-weight-strong))}.spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemSeparator_3fe6e8{display:none}[dir=ltr] .spectrum-Breadcrumbs-item_3fe6e8>.spectrum-ActionButton_3fe6e8{margin-right:var(--spectrum-breadcrumb-button-gap,var(--spectrum-global-dimension-static-size-10))}[dir=rtl] .spectrum-Breadcrumbs-item_3fe6e8>.spectrum-ActionButton_3fe6e8{margin-left:var(--spectrum-breadcrumb-button-gap,var(--spectrum-global-dimension-static-size-10))}.spectrum-Breadcrumbs-item_3fe6e8:last-child{overflow:hidden}.spectrum-Breadcrumbs-item_3fe6e8:last-child .spectrum-Breadcrumbs-itemLink_3fe6e8{text-overflow:ellipsis;overflow:hidden}[dir=ltr] .spectrum-Breadcrumbs-itemLink_3fe6e8{margin-right:var(--spectrum-breadcrumb-item-margin-right,var(--spectrum-global-dimension-static-size-10))}[dir=rtl] .spectrum-Breadcrumbs-itemLink_3fe6e8{margin-left:var(--spectrum-breadcrumb-item-margin-right,var(--spectrum-global-dimension-static-size-10))}.spectrum-Breadcrumbs-itemLink_3fe6e8{cursor:default;line-height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));vertical-align:middle;padding:0 var(--spectrum-breadcrumb-item-padding-x,var(--spectrum-global-dimension-size-100));height:var(--spectrum-breadcrumb-list-height,var(--spectrum-global-dimension-size-400));border-radius:var(--spectrum-breadcrumb-item-border-radius,var(--spectrum-alias-border-radius-regular));font-size:inherit;outline:none;margin-top:0;margin-bottom:0;text-decoration:none;position:relative}.spectrum-Breadcrumbs-itemLink_3fe6e8[href],.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"]{cursor:pointer}.spectrum-Breadcrumbs-itemLink_3fe6e8[href].is-hovered_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[href].focus-ring_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"].is-hovered_3fe6e8,.spectrum-Breadcrumbs-itemLink_3fe6e8[tabindex=\"0\"].focus-ring_3fe6e8{text-decoration:underline}[dir=ltr] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,[dir=ltr] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{left:0}[dir=rtl] .spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,[dir=rtl] .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{right:0}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before,.spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{box-sizing:border-box;width:100%;height:100%;border-width:var(--spectrum-breadcrumb-item-border-size-key-focus,var(--spectrum-alias-border-size-thick));border-radius:var(--spectrum-breadcrumb-item-border-radius,var(--spectrum-alias-border-radius-regular));content:\"\";pointer-events:none;border-style:solid;display:block;position:absolute;top:0}.spectrum-Breadcrumbs--small_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8{font-size:var(--spectrum-breadcrumb-multiline-item-text-size,var(--spectrum-global-dimension-font-size-75))}.spectrum-Breadcrumbs--medium_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8{font-size:var(--spectrum-breadcrumb-compact-item-text-size,var(--spectrum-global-dimension-font-size-100))}.spectrum-Breadcrumbs--multiline_3fe6e8{flex-wrap:wrap}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type{height:auto;margin-top:var(--spectrum-breadcrumb-multiline-title-margin-top,var(--spectrum-global-dimension-static-size-0));font-size:var(--spectrum-breadcrumb-multiline-title-text-size,var(--spectrum-global-dimension-font-size-300));font-weight:var(--spectrum-breadcrumb-multiline-title-text-font-weight,var(--spectrum-alias-body-text-font-weight-strong));line-height:var(--spectrum-breadcrumb-multiline-title-text-line-height,var(--spectrum-alias-heading-text-line-height));flex:0 100%}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8{height:auto;text-decoration:none}.spectrum-Breadcrumbs--multiline_3fe6e8 .spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Heading--pageTitle_3fe6e8{font-size:inherit;font-weight:inherit;margin:0}.spectrum-Breadcrumbs-item_3fe6e8{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8{color:var(--spectrum-breadcrumb-item-text-color-drop,var(--spectrum-alias-text-color-hover));background-color:var(--spectrum-breadcrumb-item-background-color-drop,var(--spectrum-alias-highlight-selected))}.spectrum-Breadcrumbs-item_3fe6e8.is-dragged_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:before{border-color:var(--spectrum-breadcrumb-item-border-color-drop,var(--spectrum-global-color-blue-500))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemSeparator_3fe6e8{color:var(--spectrum-breadcrumb-ui-icon-color,var(--spectrum-global-color-gray-500))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8{color:inherit}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8{color:var(--spectrum-breadcrumb-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8{color:var(--spectrum-breadcrumb-text-color-key-focus,var(--spectrum-alias-text-color-hover))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8:before{border-color:var(--spectrum-breadcrumb-item-border-color-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down));border-bottom:0}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8{color:var(--spectrum-label-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8~.spectrum-Breadcrumb_3fe6e8:last-of-type{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.focus-ring_3fe6e8{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down));border-bottom:0}@media (forced-colors:active){.spectrum-Breadcrumbs-item_3fe6e8{--spectrum-breadcrumb-item-border-color-drop:LinkText;--spectrum-breadcrumb-item-border-color-key-focus:CanvasText;--spectrum-breadcrumb-item-text-color-drop:LinkText;--spectrum-breadcrumb-text-color:LinkText;--spectrum-breadcrumb-text-color-down:CanvasText;--spectrum-breadcrumb-text-color-hover:LinkText;--spectrum-breadcrumb-text-color-key-focus:LinkText;--spectrum-breadcrumb-ui-icon-color:CanvasText;--spectrum-label-text-color-disabled:GrayText}.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type,.spectrum-Breadcrumbs-item_3fe6e8.is-selected_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8,.spectrum-Breadcrumbs-item_3fe6e8:last-of-type .spectrum-Breadcrumbs-itemLink_3fe6e8.is-hovered_3fe6e8{color:var(--spectrum-breadcrumb-text-color-down,var(--spectrum-alias-text-color-down))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8:active{color:var(--spectrum-breadcrumb-text-color,var(--spectrum-alias-label-text-color))}.spectrum-Breadcrumbs-item_3fe6e8 .spectrum-Breadcrumbs-itemLink_3fe6e8.is-disabled_3fe6e8:active{color:var(--spectrum-label-text-color-disabled,var(--spectrum-alias-text-color-disabled))}}",".spectrum-Icon_368b34,.spectrum-UIIcon_368b34{color:inherit;fill:currentColor;pointer-events:none;display:inline-block}.spectrum-Icon_368b34:not(:root),.spectrum-UIIcon_368b34:not(:root){overflow:hidden}@media (forced-colors:active){.spectrum-Icon_368b34,.spectrum-UIIcon_368b34{forced-color-adjust:auto}}.spectrum-Icon--sizeXXS_368b34,.spectrum-Icon--sizeXXS_368b34 img,.spectrum-Icon--sizeXXS_368b34 svg{height:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))/2);width:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))/2)}.spectrum-Icon--sizeXS_368b34,.spectrum-Icon--sizeXS_368b34 img,.spectrum-Icon--sizeXS_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)/2);width:calc(var(--spectrum-global-dimension-size-300)/2)}.spectrum-Icon--sizeS_368b34,.spectrum-Icon--sizeS_368b34 img,.spectrum-Icon--sizeS_368b34 svg{height:var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225));width:var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))}.spectrum-Icon--sizeM_368b34,.spectrum-Icon--sizeM_368b34 img,.spectrum-Icon--sizeM_368b34 svg{height:var(--spectrum-global-dimension-size-300);width:var(--spectrum-global-dimension-size-300)}.spectrum-Icon--sizeL_368b34,.spectrum-Icon--sizeL_368b34 img,.spectrum-Icon--sizeL_368b34 svg{height:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))*2);width:calc(var(--spectrum-alias-workflow-icon-size,var(--spectrum-global-dimension-size-225))*2)}.spectrum-Icon--sizeXL_368b34,.spectrum-Icon--sizeXL_368b34 img,.spectrum-Icon--sizeXL_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)*2);width:calc(var(--spectrum-global-dimension-size-300)*2)}.spectrum-Icon--sizeXXL_368b34,.spectrum-Icon--sizeXXL_368b34 img,.spectrum-Icon--sizeXXL_368b34 svg{height:calc(var(--spectrum-global-dimension-size-300)*3);width:calc(var(--spectrum-global-dimension-size-300)*3)}.spectrum--medium_368b34 .spectrum-UIIcon--large_368b34{display:none}.spectrum--medium_368b34 .spectrum-UIIcon--medium_368b34{display:inline}.spectrum--large_368b34 .spectrum-UIIcon--medium_368b34{display:none}.spectrum--large_368b34 .spectrum-UIIcon--large_368b34{display:inline}.spectrum--large_368b34{--ui-icon-large-display:block;--ui-icon-medium-display:none}.spectrum--medium_368b34{--ui-icon-medium-display:block;--ui-icon-large-display:none}.spectrum-UIIcon--large_368b34{display:var(--ui-icon-large-display)}.spectrum-UIIcon--medium_368b34{display:var(--ui-icon-medium-display)}.spectrum-UIIcon-AlertMedium_368b34{width:var(--spectrum-icon-alert-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-alert-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-AlertSmall_368b34{width:var(--spectrum-icon-alert-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-alert-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-ArrowDownSmall_368b34{width:var(--spectrum-icon-arrow-down-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-arrow-down-small-height)}.spectrum-UIIcon-ArrowLeftMedium_368b34{width:var(--spectrum-icon-arrow-left-medium-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-arrow-left-medium-height)}.spectrum-UIIcon-Asterisk_368b34{width:var(--spectrum-fieldlabel-asterisk-size,var(--spectrum-global-dimension-size-100));height:var(--spectrum-fieldlabel-asterisk-size,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-CheckmarkMedium_368b34{width:var(--spectrum-icon-checkmark-medium-width);height:var(--spectrum-icon-checkmark-medium-height)}.spectrum-UIIcon-CheckmarkSmall_368b34{width:var(--spectrum-icon-checkmark-small-width);height:var(--spectrum-icon-checkmark-small-height)}.spectrum-UIIcon-ChevronDownMedium_368b34{width:var(--spectrum-icon-chevron-down-medium-width);height:var(--spectrum-icon-chevron-down-medium-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-ChevronDownSmall_368b34{width:var(--spectrum-icon-chevron-down-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-chevron-down-small-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-ChevronLeftLarge_368b34{width:var(--spectrum-icon-chevron-left-large-width);height:var(--spectrum-icon-chevron-left-large-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-ChevronLeftMedium_368b34{width:var(--spectrum-icon-chevron-left-medium-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-left-medium-height)}.spectrum-UIIcon-ChevronRightLarge_368b34{width:var(--spectrum-icon-chevron-right-large-width);height:var(--spectrum-icon-chevron-right-large-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-ChevronRightMedium_368b34{width:var(--spectrum-icon-chevron-right-medium-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-right-medium-height)}.spectrum-UIIcon-ChevronRightSmall_368b34{width:var(--spectrum-icon-chevron-right-small-width,var(--spectrum-global-dimension-size-75));height:var(--spectrum-icon-chevron-right-small-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-ChevronUpSmall_368b34{width:var(--spectrum-icon-chevron-up-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-chevron-up-small-height,var(--spectrum-global-dimension-size-75))}.spectrum-UIIcon-CornerTriangle_368b34{width:var(--spectrum-icon-cornertriangle-width,var(--spectrum-global-dimension-size-65));height:var(--spectrum-icon-cornertriangle-height,var(--spectrum-global-dimension-size-65))}.spectrum-UIIcon-CrossLarge_368b34{width:var(--spectrum-icon-cross-large-width);height:var(--spectrum-icon-cross-large-height)}.spectrum-UIIcon-CrossMedium_368b34{width:var(--spectrum-icon-cross-medium-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-cross-medium-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-CrossSmall_368b34{width:var(--spectrum-icon-cross-small-width,var(--spectrum-global-dimension-size-100));height:var(--spectrum-icon-cross-small-height,var(--spectrum-global-dimension-size-100))}.spectrum-UIIcon-DashSmall_368b34{width:var(--spectrum-icon-dash-small-width);height:var(--spectrum-icon-dash-small-height)}.spectrum-UIIcon-DoubleGripper_368b34{width:var(--spectrum-icon-doublegripper-width,var(--spectrum-global-dimension-size-200));height:var(--spectrum-icon-doublegripper-height,var(--spectrum-global-dimension-size-50))}.spectrum-UIIcon-FolderBreadcrumb_368b34{width:var(--spectrum-icon-folderbreadcrumb-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-folderbreadcrumb-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-HelpMedium_368b34{width:var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-info-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-HelpSmall_368b34{width:var(--spectrum-icon-info-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-info-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-InfoMedium_368b34{width:var(--spectrum-icon-info-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-info-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-InfoSmall_368b34{width:var(--spectrum-icon-info-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-info-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-ListGripper_368b34{width:var(--spectrum-global-dimension-size-65);height:var(--spectrum-global-dimension-size-150)}.spectrum-UIIcon-Magnifier_368b34{width:var(--spectrum-icon-magnifier-width,var(--spectrum-global-dimension-size-200));height:var(--spectrum-icon-magnifier-height,var(--spectrum-global-dimension-size-200))}.spectrum-UIIcon-SkipLeft_368b34{width:var(--spectrum-icon-skip-left-width);height:var(--spectrum-icon-skip-left-height)}.spectrum-UIIcon-SkipRight_368b34{width:var(--spectrum-icon-skip-right-width);height:var(--spectrum-icon-skip-right-height)}.spectrum-UIIcon-Star_368b34{width:var(--spectrum-icon-star-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-star-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-StarOutline_368b34{width:var(--spectrum-icon-star-outline-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-star-outline-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-SuccessMedium_368b34{width:var(--spectrum-icon-success-medium-width,var(--spectrum-global-dimension-size-225));height:var(--spectrum-icon-success-medium-height,var(--spectrum-global-dimension-size-225))}.spectrum-UIIcon-SuccessSmall_368b34{width:var(--spectrum-icon-success-small-width,var(--spectrum-global-dimension-size-175));height:var(--spectrum-icon-success-small-height,var(--spectrum-global-dimension-size-175))}.spectrum-UIIcon-TripleGripper_368b34{width:var(--spectrum-icon-triplegripper-width);height:var(--spectrum-icon-triplegripper-height,var(--spectrum-global-dimension-size-85))}",".spectrum_b37d53{background-color:var(--spectrum-alias-background-color-default,var(--spectrum-global-color-gray-100));-webkit-tap-highlight-color:#0000}.spectrum_2a241c{font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ar){font-family:adobe-arabic,myriad-arabic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(he){font-family:adobe-hebrew,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(zh-Hans),.spectrum_2a241c:lang(zh){font-family:adobe-clean-han-simplified-c,SimSun,Heiti SC Light,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ko){font-family:adobe-clean-han-korean,Malgun Gothic,Apple Gothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c:lang(ja){font-family:adobe-clean-han-japanese,Yu Gothic,メイリオ,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro W3,Osaka,MSPゴシック,MS PGothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum_2a241c{font-size:var(--spectrum-alias-font-size-default,var(--spectrum-global-dimension-font-size-100));color:var(--spectrum-global-color-gray-800)}.spectrum_2a241c,.spectrum_2a241c.spectrum-Body_2a241c,.spectrum-Body_2a241c{font-size:var(--spectrum-body-4-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-body-4-text-font-weight,var(--spectrum-alias-body-text-font-weight));line-height:var(--spectrum-body-4-text-line-height,var(--spectrum-alias-body-text-line-height));font-style:var(--spectrum-body-4-text-font-style,var(--spectrum-global-font-style-regular))}.spectrum-Body--italic_2a241c{font-style:var(--spectrum-body-4-emphasis-text-font-style,var(--spectrum-global-font-style-italic))}",".spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{font-family:adobe-clean-ux,adobe-clean,Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ar),.spectrum-ActionButton_e2d99e:lang(ar),.spectrum-LogicButton_e2d99e:lang(ar),.spectrum-FieldButton_e2d99e:lang(ar),.spectrum-ClearButton_e2d99e:lang(ar){font-family:adobe-arabic,myriad-arabic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(he),.spectrum-ActionButton_e2d99e:lang(he),.spectrum-LogicButton_e2d99e:lang(he),.spectrum-FieldButton_e2d99e:lang(he),.spectrum-ClearButton_e2d99e:lang(he){font-family:adobe-hebrew,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(zh-Hans),.spectrum-ActionButton_e2d99e:lang(zh-Hans),.spectrum-LogicButton_e2d99e:lang(zh-Hans),.spectrum-FieldButton_e2d99e:lang(zh-Hans),.spectrum-ClearButton_e2d99e:lang(zh-Hans),.spectrum-Button_e2d99e:lang(zh),.spectrum-ActionButton_e2d99e:lang(zh),.spectrum-LogicButton_e2d99e:lang(zh),.spectrum-FieldButton_e2d99e:lang(zh),.spectrum-ClearButton_e2d99e:lang(zh){font-family:adobe-clean-han-simplified-c,SimSun,Heiti SC Light,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ko),.spectrum-ActionButton_e2d99e:lang(ko),.spectrum-LogicButton_e2d99e:lang(ko),.spectrum-FieldButton_e2d99e:lang(ko),.spectrum-ClearButton_e2d99e:lang(ko){font-family:adobe-clean-han-korean,Malgun Gothic,Apple Gothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e:lang(ja),.spectrum-ActionButton_e2d99e:lang(ja),.spectrum-LogicButton_e2d99e:lang(ja),.spectrum-FieldButton_e2d99e:lang(ja),.spectrum-ClearButton_e2d99e:lang(ja){font-family:adobe-clean-han-japanese,Yu Gothic,メイリオ,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro W3,Osaka,MSPゴシック,MS PGothic,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{--spectrum-focus-ring-border-radius:var(--spectrum-textfield-border-radius,var(--spectrum-alias-border-radius-regular));--spectrum-focus-ring-gap:var(--spectrum-alias-input-focusring-gap);--spectrum-focus-ring-size:var(--spectrum-alias-input-focusring-size);--spectrum-focus-ring-border-size:0px;--spectrum-focus-ring-color:var(--spectrum-high-contrast-focus-ring-color,var(--spectrum-alias-focus-ring-color,var(--spectrum-alias-focus-color)))}.spectrum-Button_e2d99e:after,.spectrum-ActionButton_e2d99e:after,.spectrum-LogicButton_e2d99e:after,.spectrum-FieldButton_e2d99e:after,.spectrum-ClearButton_e2d99e:after{border-radius:calc(var(--spectrum-focus-ring-border-radius) + var(--spectrum-focus-ring-gap));content:\"\";margin:calc(-1*var(--spectrum-focus-ring-border-size));pointer-events:none;transition:box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-out,margin var(--spectrum-global-animation-duration-100,.13s)ease-out;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.spectrum-Button_e2d99e.focus-ring_e2d99e:after,.spectrum-ActionButton_e2d99e.focus-ring_e2d99e:after,.spectrum-LogicButton_e2d99e.focus-ring_e2d99e:after,.spectrum-FieldButton_e2d99e.focus-ring_e2d99e:after,.spectrum-ClearButton_e2d99e.focus-ring_e2d99e:after{margin:calc(var(--spectrum-focus-ring-gap)*-1 - var(--spectrum-focus-ring-border-size));box-shadow:0 0 0 var(--spectrum-focus-ring-size)var(--spectrum-focus-ring-color)}.spectrum-FieldButton--quiet_e2d99e:after{border-radius:0}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e:after{margin:0 0 calc(var(--spectrum-focus-ring-gap)*-1 - var(--spectrum-focus-ring-border-size))0;box-shadow:0 var(--spectrum-focus-ring-size)0 var(--spectrum-focus-ring-color)}.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e,.spectrum-ClearButton_e2d99e{box-sizing:border-box;border-radius:var(--spectrum-button-border-radius);border-style:solid;border-width:var(--spectrum-button-border-width);--spectrum-focus-ring-border-radius:var(--spectrum-button-border-radius);--spectrum-focus-ring-border-size:var(--spectrum-button-border-width);--spectrum-focus-ring-gap:var(--spectrum-alias-focus-ring-gap,var(--spectrum-global-dimension-static-size-25));--spectrum-focus-ring-size:var(--spectrum-button-primary-focus-ring-size-key-focus,var(--spectrum-alias-focus-ring-size));text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;transition:background var(--spectrum-global-animation-duration-100,.13s)ease-out,border-color var(--spectrum-global-animation-duration-100,.13s)ease-out,color var(--spectrum-global-animation-duration-100,.13s)ease-out,box-shadow var(--spectrum-global-animation-duration-100,.13s)ease-out;-webkit-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none;cursor:default;isolation:isolate;justify-content:center;align-items:center;margin:0;line-height:1.3;text-decoration:none;display:inline-flex;position:relative;overflow:visible}button.spectrum-Button_e2d99e,button.spectrum-ActionButton_e2d99e,button.spectrum-LogicButton_e2d99e,button.spectrum-FieldButton_e2d99e,button.spectrum-ClearButton_e2d99e{-webkit-appearance:button}.spectrum-Button_e2d99e:focus,.spectrum-ActionButton_e2d99e:focus,.spectrum-LogicButton_e2d99e:focus,.spectrum-FieldButton_e2d99e:focus,.spectrum-ClearButton_e2d99e:focus{outline:none}.spectrum-Button_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton_e2d99e.focus-ring_e2d99e,.spectrum-LogicButton_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.focus-ring_e2d99e,.spectrum-ClearButton_e2d99e.focus-ring_e2d99e{z-index:3}.spectrum-Button_e2d99e::-moz-focus-inner,.spectrum-ActionButton_e2d99e::-moz-focus-inner,.spectrum-LogicButton_e2d99e::-moz-focus-inner,.spectrum-FieldButton_e2d99e::-moz-focus-inner,.spectrum-ClearButton_e2d99e::-moz-focus-inner{border:0;margin-top:-2px;margin-bottom:-2px;padding:0}.spectrum-Button_e2d99e:disabled,.spectrum-ActionButton_e2d99e:disabled,.spectrum-LogicButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e:disabled,.spectrum-ClearButton_e2d99e:disabled{cursor:default}.spectrum-Button_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-LogicButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e,.spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e{max-height:100%;transition:background var(--spectrum-global-animation-duration-100,.13s)ease-out,fill var(--spectrum-global-animation-duration-100,.13s)ease-out;box-sizing:initial;flex-shrink:0;order:0}.spectrum-Button_e2d99e{--spectrum-button-border-radius:var(--spectrum-button-primary-border-radius,var(--spectrum-alias-border-radius-large));--spectrum-button-border-width:var(--spectrum-button-primary-border-size,var(--spectrum-alias-border-size-thick));min-height:var(--spectrum-button-primary-height,var(--spectrum-alias-single-line-height));height:0%;min-width:var(--spectrum-button-primary-min-width);padding:var(--spectrum-global-dimension-size-50)calc(var(--spectrum-button-primary-padding-x,var(--spectrum-global-dimension-size-200)) - var(--spectrum-button-primary-border-size,var(--spectrum-alias-border-size-thick)));padding-bottom:calc(var(--spectrum-global-dimension-size-50) + 1px);padding-top:calc(var(--spectrum-global-dimension-size-50) - 1px);font-size:var(--spectrum-button-primary-text-size,var(--spectrum-alias-pill-button-text-size));font-weight:var(--spectrum-button-primary-text-font-weight,var(--spectrum-global-font-weight-bold));border-style:solid}.spectrum-Button_e2d99e.is-hovered_e2d99e,.spectrum-Button_e2d99e:active{box-shadow:none}[dir=ltr] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e+.spectrum-Button-label_e2d99e{margin-left:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Button_e2d99e .spectrum-Icon_e2d99e+.spectrum-Button-label_e2d99e,[dir=ltr] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e+.spectrum-Icon_e2d99e{margin-right:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}[dir=rtl] .spectrum-Button_e2d99e .spectrum-Button-label_e2d99e+.spectrum-Icon_e2d99e{margin-left:var(--spectrum-button-primary-text-gap,var(--spectrum-global-dimension-size-100))}.spectrum-Button_e2d99e.spectrum-Button--iconOnly_e2d99e{min-width:unset;padding:var(--spectrum-global-dimension-size-65)}a.spectrum-Button_e2d99e,a.spectrum-ActionButton_e2d99e{-webkit-appearance:none;-webkit-user-select:none;user-select:none;cursor:pointer}.spectrum-ActionButton_e2d99e{height:var(--spectrum-actionbutton-height,var(--spectrum-alias-single-line-height));min-width:var(--spectrum-actionbutton-min-width,var(--spectrum-global-dimension-size-400));--spectrum-button-border-radius:var(--spectrum-actionbutton-border-radius,var(--spectrum-alias-border-radius-regular));--spectrum-button-border-width:var(--spectrum-actionbutton-border-size,var(--spectrum-alias-border-size-thin));font-size:var(--spectrum-actionbutton-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-actionbutton-text-font-weight,var(--spectrum-alias-body-text-font-weight));padding:0;position:relative}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e{padding-right:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e{padding-left:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e+.spectrum-ActionButton-label_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e+.spectrum-ActionButton-label_e2d99e,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden])+.spectrum-Icon_e2d99e{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:not([hidden])+.spectrum-Icon_e2d99e{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-ActionButton-label_e2d99e:last-child{padding-left:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-label_e2d99e:only-child,[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-ActionButton-label_e2d99e:last-child{padding-right:var(--spectrum-actionbutton-text-padding-x,var(--spectrum-global-dimension-size-150))}[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child,[dir=ltr] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-Icon_e2d99e:last-child{padding-right:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e:only-child,[dir=rtl] .spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e+.spectrum-Icon_e2d99e:last-child{padding-left:var(--spectrum-actionbutton-icon-padding-x,var(--spectrum-global-dimension-size-85))}[dir=ltr] .spectrum-ActionButton-hold_e2d99e{right:var(--spectrum-actionbutton-hold-icon-padding-right,var(--spectrum-global-dimension-size-40))}[dir=rtl] .spectrum-ActionButton-hold_e2d99e{left:var(--spectrum-actionbutton-hold-icon-padding-right,var(--spectrum-global-dimension-size-40))}.spectrum-ActionButton-hold_e2d99e{bottom:var(--spectrum-actionbutton-hold-icon-padding-bottom,var(--spectrum-global-dimension-size-40));position:absolute}[dir=rtl] .spectrum-ActionButton-hold_e2d99e{transform:rotate(90deg)}.spectrum-ActionButton-label_e2d99e,.spectrum-Button-label_e2d99e{-ms-grid-row-align:center;text-align:center;width:100%;order:1;place-self:center}.spectrum-ActionButton-label_e2d99e:empty,.spectrum-Button-label_e2d99e:empty{display:none}.spectrum-ActionButton-label_e2d99e{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.spectrum-ActionButton--quiet_e2d99e{border-width:var(--spectrum-actionbutton-quiet-border-size,var(--spectrum-alias-border-size-thin));border-radius:var(--spectrum-actionbutton-quiet-border-radius,var(--spectrum-alias-border-radius-regular));font-size:var(--spectrum-actionbutton-quiet-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-actionbutton-quiet-text-font-weight,var(--spectrum-alias-body-text-font-weight))}.spectrum-LogicButton_e2d99e{height:var(--spectrum-logicbutton-and-height,24px);padding:var(--spectrum-logicbutton-and-padding-x,var(--spectrum-global-dimension-size-100));--spectrum-button-border-width:var(--spectrum-logicbutton-and-border-size,var(--spectrum-alias-border-size-thick));--spectrum-button-border-radius:var(--spectrum-logicbutton-and-border-radius,var(--spectrum-alias-border-radius-regular));font-size:var(--spectrum-logicbutton-and-text-size,var(--spectrum-alias-font-size-default));font-weight:var(--spectrum-logicbutton-and-text-font-weight,var(--spectrum-global-font-weight-bold));line-height:0}.spectrum-FieldButton_e2d99e{height:var(--spectrum-dropdown-height,var(--spectrum-global-dimension-size-400));padding:0 var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));font-family:inherit;font-weight:400;font-size:var(--spectrum-dropdown-text-size,var(--spectrum-alias-font-size-default));-webkit-font-smoothing:initial;cursor:default;--spectrum-focus-ring-gap:var(--spectrum-alias-input-focusring-gap);--spectrum-focus-ring-size:var(--spectrum-alias-input-focusring-size);padding-top:0;padding-bottom:0;padding-left:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));padding-right:var(--spectrum-dropdown-padding-x,var(--spectrum-global-dimension-size-150));--spectrum-button-border-width:var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin));--spectrum-button-border-radius:var(--spectrum-alias-border-radius-regular,var(--spectrum-global-dimension-size-50));transition:background-color var(--spectrum-global-animation-duration-100,.13s),box-shadow var(--spectrum-global-animation-duration-100,.13s),border-color var(--spectrum-global-animation-duration-100,.13s);border-style:solid;outline:none;margin:0;line-height:normal;position:relative}.spectrum-FieldButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e{cursor:default;border-width:0}.spectrum-FieldButton_e2d99e.is-open_e2d99e{border-width:var(--spectrum-dropdown-border-size,var(--spectrum-alias-border-size-thin))}.spectrum-FieldButton--quiet_e2d99e{--spectrum-button-border-width:0;--spectrum-button-border-radius:var(--spectrum-fieldbutton-quiet-border-radius,0px);--spectrum-focus-ring-size:var(--spectrum-alias-focus-ring-size,var(--spectrum-global-dimension-static-size-25));margin:0;padding:0}.spectrum-FieldButton--quiet_e2d99e:disabled.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e.focus-ring_e2d99e{box-shadow:none}.spectrum-ClearButton_e2d99e{width:var(--spectrum-clearbutton-medium-width,var(--spectrum-alias-single-line-height));height:var(--spectrum-clearbutton-medium-height,var(--spectrum-alias-single-line-height));--spectrum-button-border-radius:100%;--spectrum-button-border-width:0px;border:none;margin:0;padding:0}.spectrum-ClearButton_e2d99e>.spectrum-Icon_e2d99e{margin:0 auto}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.spectrum-ClearButton_e2d99e>.spectrum-Icon_e2d99e{margin:0}}.spectrum-ClearButton--small_e2d99e{width:var(--spectrum-clearbutton-small-width,var(--spectrum-global-dimension-size-300));height:var(--spectrum-clearbutton-small-height,var(--spectrum-global-dimension-size-300))}.spectrum-ClearButton_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color,var(--spectrum-alias-icon-color))}.spectrum-ClearButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color,var(--spectrum-alias-icon-color))}.spectrum-ClearButton_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-hover,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ClearButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ClearButton_e2d99e.is-active_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-down,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-ClearButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-ClearButton_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-key-focus,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-ClearButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-ClearButton_e2d99e:disabled,.spectrum-ClearButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-clearbutton-medium-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-clearbutton-medium-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-ClearButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ClearButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-clearbutton-medium-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-Button_e2d99e[data-style=fill]{--spectrum-button-text-color:white;--spectrum-button-text-color-hover:var(--spectrum-button-text-color);--spectrum-button-text-color-down:var(--spectrum-button-text-color);--spectrum-button-text-color-key-focus:var(--spectrum-button-text-color);--spectrum-button-text-color-disabled:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500));--spectrum-button-color-disabled:var(--spectrum-alias-background-color-disabled);background-color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-color));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color));border-color:#0000}.spectrum-Button_e2d99e[data-style=fill].is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-hover));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-hover))}.spectrum-Button_e2d99e[data-style=fill].focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-key-focus));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-key-focus))}.spectrum-Button_e2d99e[data-style=fill].is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-down));color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-text-color-down))}.spectrum-Button_e2d99e[data-style=fill]:disabled,.spectrum-Button_e2d99e[data-style=fill].is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-button-color-disabled));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-text-color-disabled))}.spectrum-Button_e2d99e[data-style=outline]{--spectrum-button-text-color:var(--spectrum-button-color);--spectrum-button-text-color-hover:var(--spectrum-button-color-hover);--spectrum-button-text-color-down:var(--spectrum-button-color-down);--spectrum-button-text-color-key-focus:var(--spectrum-button-color-key-focus);--spectrum-button-text-color-disabled:var(--spectrum-alias-text-color-disabled,var(--spectrum-global-color-gray-500));--spectrum-button-color-disabled:var(--spectrum-alias-background-color-disabled);border-color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-color));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color));background-color:#0000}.spectrum-Button_e2d99e[data-style=outline].is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-hover));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-hover));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-hover))}.spectrum-Button_e2d99e[data-style=outline].focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-key-focus));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-key-focus));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-key-focus))}.spectrum-Button_e2d99e[data-style=outline].is-active_e2d99e{background-color:var(--spectrum-high-contrast-transparent,var(--spectrum-button-background-color-down));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-button-color-down));color:var(--spectrum-high-contrast-button-text,var(--spectrum-button-text-color-down))}.spectrum-Button_e2d99e[data-style=outline]:disabled,.spectrum-Button_e2d99e[data-style=outline].is-disabled_e2d99e{border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-color-disabled));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-button-text-color-disabled));background-color:#0000}.spectrum-Button_e2d99e[data-static-color=white]{--spectrum-focus-ring-color:white}.spectrum-Button_e2d99e[data-static-color=white][data-variant=accent][data-style=fill],.spectrum-Button_e2d99e[data-static-color=white][data-variant=negative][data-style=fill],.spectrum-Button_e2d99e[data-static-color=white][data-variant=primary][data-style=fill]{--spectrum-button-color:#ffffffe6;--spectrum-button-color-hover:white;--spectrum-button-color-down:white;--spectrum-button-color-key-focus:white;--spectrum-button-color-disabled:#ffffff1a;--spectrum-button-text-color:black;--spectrum-button-text-color-disabled:#ffffff8c}.spectrum-Button_e2d99e[data-static-color=white][data-variant=accent][data-style=outline],.spectrum-Button_e2d99e[data-static-color=white][data-variant=negative][data-style=outline],.spectrum-Button_e2d99e[data-static-color=white][data-variant=primary][data-style=outline]{--spectrum-button-color:#ffffffe6;--spectrum-button-color-hover:white;--spectrum-button-color-down:white;--spectrum-button-color-key-focus:white;--spectrum-button-color-disabled:#ffffff40;--spectrum-button-text-color:white;--spectrum-button-text-color-hover:white;--spectrum-button-text-color-down:white;--spectrum-button-text-color-key-focus:white;--spectrum-button-text-color-disabled:#ffffff8c;--spectrum-button-background-color-hover:#ffffff1a;--spectrum-button-background-color-down:#ffffff26;--spectrum-button-background-color-key-focus:#ffffff1a}.spectrum-Button_e2d99e[data-static-color=white][data-variant=secondary][data-style=fill]{--spectrum-button-color:#ffffff12;--spectrum-button-color-hover:#ffffff1a;--spectrum-button-color-down:#ffffff26;--spectrum-button-color-key-focus:#ffffff1a;--spectrum-button-color-disabled:#ffffff1a;--spectrum-button-text-color:white;--spectrum-button-text-color-disabled:#ffffff8c}.spectrum-Button_e2d99e[data-static-color=white][data-variant=secondary][data-style=outline]{--spectrum-button-color:#ffffff40;--spectrum-button-color-hover:#fff6;--spectrum-button-color-down:#ffffff8c;--spectrum-button-color-key-focus:#fff6;--spectrum-button-color-disabled:#ffffff40;--spectrum-button-text-color:white;--spectrum-button-text-color-hover:white;--spectrum-button-text-color-down:white;--spectrum-button-text-color-key-focus:white;--spectrum-button-text-color-disabled:#ffffff8c;--spectrum-button-background-color-hover:#ffffff1a;--spectrum-button-background-color-down:#ffffff26;--spectrum-button-background-color-key-focus:#ffffff1a}.spectrum-Button_e2d99e[data-static-color=black]{--spectrum-focus-ring-color:black}.spectrum-Button_e2d99e[data-static-color=black][data-variant=accent][data-style=fill],.spectrum-Button_e2d99e[data-static-color=black][data-variant=negative][data-style=fill],.spectrum-Button_e2d99e[data-static-color=black][data-variant=primary][data-style=fill]{--spectrum-button-color:#000000e6;--spectrum-button-color-hover:black;--spectrum-button-color-down:black;--spectrum-button-color-key-focus:black;--spectrum-button-color-disabled:#0000001a;--spectrum-button-text-color:white;--spectrum-button-text-color-disabled:#0000008c}.spectrum-Button_e2d99e[data-static-color=black][data-variant=accent][data-style=outline],.spectrum-Button_e2d99e[data-static-color=black][data-variant=negative][data-style=outline],.spectrum-Button_e2d99e[data-static-color=black][data-variant=primary][data-style=outline]{--spectrum-button-color:#000000e6;--spectrum-button-color-hover:black;--spectrum-button-color-down:black;--spectrum-button-color-key-focus:black;--spectrum-button-color-disabled:#00000040;--spectrum-button-text-color:black;--spectrum-button-text-color-hover:black;--spectrum-button-text-color-down:black;--spectrum-button-text-color-key-focus:black;--spectrum-button-text-color-disabled:#0000008c;--spectrum-button-background-color-hover:#0000001a;--spectrum-button-background-color-down:#00000026;--spectrum-button-background-color-key-focus:#0000001a}.spectrum-Button_e2d99e[data-static-color=black][data-variant=secondary][data-style=fill]{--spectrum-button-color:#00000012;--spectrum-button-color-hover:#0000001a;--spectrum-button-color-down:#00000026;--spectrum-button-color-key-focus:#0000001a;--spectrum-button-color-disabled:#0000001a;--spectrum-button-text-color:black;--spectrum-button-text-color-disabled:#0000008c}.spectrum-Button_e2d99e[data-static-color=black][data-variant=secondary][data-style=outline]{--spectrum-button-color:#00000040;--spectrum-button-color-hover:#0006;--spectrum-button-color-down:#0000008c;--spectrum-button-color-key-focus:#0006;--spectrum-button-color-disabled:#00000040;--spectrum-button-text-color:black;--spectrum-button-text-color-hover:black;--spectrum-button-text-color-down:black;--spectrum-button-text-color-key-focus:black;--spectrum-button-text-color-disabled:#0000008c;--spectrum-button-background-color-hover:#0000001a;--spectrum-button-background-color-down:#00000026;--spectrum-button-background-color-key-focus:#0000001a}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=accent][data-style=fill]{--spectrum-button-color:var(--spectrum-accent-background-color-default);--spectrum-button-color-hover:var(--spectrum-accent-background-color-hover);--spectrum-button-color-down:var(--spectrum-accent-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-accent-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=accent][data-style=outline]{--spectrum-button-color:var(--spectrum-accent-color-900);--spectrum-button-color-hover:var(--spectrum-accent-color-1000);--spectrum-button-color-down:var(--spectrum-accent-color-1100);--spectrum-button-color-key-focus:var(--spectrum-accent-color-1000);--spectrum-button-background-color-hover:var(--spectrum-accent-color-200);--spectrum-button-background-color-down:var(--spectrum-accent-color-300);--spectrum-button-background-color-key-focus:var(--spectrum-accent-color-200)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=negative][data-style=fill]{--spectrum-button-color:var(--spectrum-negative-background-color-default);--spectrum-button-color-hover:var(--spectrum-negative-background-color-hover);--spectrum-button-color-down:var(--spectrum-negative-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-negative-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=negative][data-style=outline]{--spectrum-button-color:var(--spectrum-red-900);--spectrum-button-color-hover:var(--spectrum-red-1000);--spectrum-button-color-down:var(--spectrum-red-1100);--spectrum-button-color-key-focus:var(--spectrum-red-1000);--spectrum-button-background-color-hover:var(--spectrum-red-200);--spectrum-button-background-color-down:var(--spectrum-red-300);--spectrum-button-background-color-key-focus:var(--spectrum-red-200)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=primary][data-style=fill]{--spectrum-button-color:var(--spectrum-neutral-background-color-default);--spectrum-button-color-hover:var(--spectrum-neutral-background-color-hover);--spectrum-button-color-down:var(--spectrum-neutral-background-color-down);--spectrum-button-color-key-focus:var(--spectrum-neutral-background-color-key-focus)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=primary][data-style=outline]{--spectrum-button-color:var(--spectrum-gray-800);--spectrum-button-color-hover:var(--spectrum-gray-900);--spectrum-button-color-down:var(--spectrum-gray-900);--spectrum-button-color-key-focus:var(--spectrum-gray-900);--spectrum-button-background-color-hover:var(--spectrum-gray-300);--spectrum-button-background-color-down:var(--spectrum-gray-400);--spectrum-button-background-color-key-focus:var(--spectrum-gray-300)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary]{--spectrum-button-text-color:var(--spectrum-gray-800);--spectrum-button-text-color-hover:var(--spectrum-gray-900);--spectrum-button-text-color-down:var(--spectrum-gray-900);--spectrum-button-text-color-key-focus:var(--spectrum-gray-900)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary][data-style=fill]{--spectrum-button-color:var(--spectrum-gray-200);--spectrum-button-color-hover:var(--spectrum-gray-300);--spectrum-button-color-down:var(--spectrum-gray-400);--spectrum-button-color-key-focus:var(--spectrum-gray-300)}.spectrum-Button_e2d99e:not([data-static-color])[data-variant=secondary][data-style=outline]{--spectrum-button-color:var(--spectrum-gray-300);--spectrum-button-color-hover:var(--spectrum-gray-400);--spectrum-button-color-down:var(--spectrum-gray-500);--spectrum-button-color-key-focus:var(--spectrum-gray-400);--spectrum-button-background-color-hover:var(--spectrum-gray-300);--spectrum-button-background-color-down:var(--spectrum-gray-400);--spectrum-button-background-color-key-focus:var(--spectrum-gray-300)}@media (forced-colors:active){.spectrum-Button_e2d99e,.spectrum-ActionButton_e2d99e{forced-color-adjust:none;--spectrum-high-contrast-transparent:transparent;--spectrum-high-contrast-button-face:ButtonFace;--spectrum-high-contrast-button-text:ButtonText;--spectrum-high-contrast-highlight:Highlight;--spectrum-high-contrast-highlight-text:HighlightText;--spectrum-high-contrast-gray-text:GrayText;--spectrum-high-contrast-focus-ring-color:var(--spectrum-high-contrast-button-text)}}.spectrum-ActionButton_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color,var(--spectrum-global-color-gray-75)));border-color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-border-color,var(--spectrum-alias-border-color)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color,var(--spectrum-alias-text-color)))}.spectrum-ActionButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color,var(--spectrum-alias-icon-color)))}.spectrum-ActionButton_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color,var(--spectrum-alias-icon-color)))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-hover,var(--spectrum-global-color-gray-50)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-hover,var(--spectrum-alias-border-color-hover)));color:var(--spectrum-actionbutton-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color-hover,var(--spectrum-alias-icon-color-hover)))}.spectrum-ActionButton_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-hold-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-key-focus,var(--spectrum-global-color-gray-50)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-hover,var(--spectrum-alias-border-color-hover)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color-key-focus,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-icon-color-key-focus,var(--spectrum-alias-icon-color-focus)))}.spectrum-ActionButton_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color-key-focus,var(--spectrum-alias-icon-color-hover)))}.spectrum-ActionButton_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-down,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-border-color-down,var(--spectrum-alias-border-color-down)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-text-color-down,var(--spectrum-alias-text-color-down)))}.spectrum-ActionButton_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-hold-icon-color-down,var(--spectrum-alias-icon-color-down)))}.spectrum-ActionButton_e2d99e:disabled,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-border-color-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-icon-color-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-hold-icon-color-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-hover));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-key-focus));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-key-focus));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-alias-toggle-color-selected-down));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-alias-toggle-color-selected-down));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-gray-50))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-background-color-selected-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-border-color-selected-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-text-color-selected-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-icon-color-selected-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-default));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-default));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-key-focus));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-key-focus,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-key-focus,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-hover));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-hover));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-hover,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-hover,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-highlight,var(--spectrum-accent-background-color-down));border-color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-accent-background-color-down));color:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-text-color-selected-down,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-highlight-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-down,var(--spectrum-global-color-static-white)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-emphasized-background-color-selected-disabled,var(--spectrum-global-color-gray-200)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-border-color-selected-disabled,var(--spectrum-alias-border-color-disabled)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-text-color-selected-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--emphasized_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-emphasized-icon-color-selected-disabled,var(--spectrum-alias-icon-color-disabled)))}.spectrum-ActionButton--quiet_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-border-color,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color,var(--spectrum-alias-text-color)))}.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-hover,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-hover,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-hover,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton--quiet_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-hover,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-key-focus,var(--spectrum-alias-text-color-hover)))}.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-down,var(--spectrum-global-color-gray-300)));border-color:var(--spectrum-high-contrast-highlight,var(--spectrum-actionbutton-quiet-border-color-down,var(--spectrum-global-color-gray-300)));color:var(--spectrum-high-contrast-button-text,var(--spectrum-actionbutton-quiet-text-color-down,var(--spectrum-alias-text-color-down)))}.spectrum-ActionButton--quiet_e2d99e:disabled,.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-high-contrast-button-face,var(--spectrum-actionbutton-quiet-background-color-disabled,var(--spectrum-alias-background-color-transparent)));border-color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-quiet-border-color-disabled,var(--spectrum-alias-border-color-transparent)));color:var(--spectrum-high-contrast-gray-text,var(--spectrum-actionbutton-quiet-text-color-disabled,var(--spectrum-alias-text-color-disabled)))}.spectrum-ActionButton--staticWhite_e2d99e{mix-blend-mode:screen;--spectrum-actionbutton-static-background-color:var(--spectrum-actionbutton-static-white-background-color);--spectrum-actionbutton-static-background-color-hover:#ffffff1a;--spectrum-actionbutton-static-background-color-focus:#ffffff1a;--spectrum-actionbutton-static-background-color-active:#ffffff26;--spectrum-actionbutton-static-background-color-disabled:var(--spectrum-actionbutton-static-white-background-color-disabled);--spectrum-actionbutton-static-background-color-selected:#ffffffe6;--spectrum-actionbutton-static-background-color-selected-hover:white;--spectrum-actionbutton-static-background-color-selected-focus:white;--spectrum-actionbutton-static-background-color-selected-active:white;--spectrum-actionbutton-static-background-color-selected-disabled:#ffffff1a;--spectrum-actionbutton-static-border-color:var(--spectrum-actionbutton-static-white-border-color);--spectrum-actionbutton-static-border-color-hover:var(--spectrum-actionbutton-static-white-border-color-hover);--spectrum-actionbutton-static-border-color-active:var(--spectrum-actionbutton-static-white-border-color-down);--spectrum-actionbutton-static-border-color-focus:var(--spectrum-actionbutton-static-white-border-color-key-focus);--spectrum-actionbutton-static-border-disabled:var(--spectrum-actionbutton-static-white-border-color-disabled);--spectrum-actionbutton-static-border-color-selected-disabled:var(--spectrum-actionbutton-static-white-border-color-selected-disabled);--spectrum-actionbutton-static-color:white;--spectrum-actionbutton-static-color-selected:black;--spectrum-actionbutton-static-color-disabled:#ffffff8c}.spectrum-ActionButton--staticWhite_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-border-color:transparent;--spectrum-actionbutton-static-border-color-hover:transparent;--spectrum-actionbutton-static-border-color-active:transparent}.spectrum-ActionButton--staticBlack_e2d99e{mix-blend-mode:multiply;--spectrum-actionbutton-static-background-color:var(--spectrum-actionbutton-static-black-background-color);--spectrum-actionbutton-static-background-color-hover:#0000001a;--spectrum-actionbutton-static-background-color-focus:#0000001a;--spectrum-actionbutton-static-background-color-active:#00000026;--spectrum-actionbutton-static-background-color-selected:#000000e6;--spectrum-actionbutton-static-background-color-disabled:var(--spectrum-actionbutton-static-black-background-color-disabled);--spectrum-actionbutton-static-background-color-selected-hover:black;--spectrum-actionbutton-static-background-color-selected-focus:black;--spectrum-actionbutton-static-background-color-selected-active:black;--spectrum-actionbutton-static-background-color-selected-disabled:#0000001a;--spectrum-actionbutton-static-border-color:var(--spectrum-actionbutton-static-black-border-color);--spectrum-actionbutton-static-border-color-hover:var(--spectrum-actionbutton-static-black-border-color-hover);--spectrum-actionbutton-static-border-color-active:var(--spectrum-actionbutton-static-black-border-color-down);--spectrum-actionbutton-static-border-color-focus:var(--spectrum-actionbutton-static-black-border-color-key-focus);--spectrum-actionbutton-static-border-disabled:var(--spectrum-actionbutton-static-black-border-color-disabled);--spectrum-actionbutton-static-border-color-selected-disabled:var(--spectrum-actionbutton-static-black-border-color-selected-disabled);--spectrum-actionbutton-static-color:black;--spectrum-actionbutton-static-color-selected:white;--spectrum-actionbutton-static-color-disabled:#0000008c}.spectrum-ActionButton--staticBlack_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-border-color:transparent;--spectrum-actionbutton-static-border-color-hover:transparent;--spectrum-actionbutton-static-border-color-active:transparent}.spectrum-ActionButton--staticColor_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color);border-color:var(--spectrum-actionbutton-static-border-color);color:var(--spectrum-actionbutton-static-color);--spectrum-focus-ring-color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-hover);border-color:var(--spectrum-actionbutton-static-border-color-hover);color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-hovered_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-focus);border-color:var(--spectrum-actionbutton-static-border-color-focus);box-shadow:none;color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e.is-active_e2d99e{border-color:var(--spectrum-actionbutton-static-border-color-focus)}.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.focus-ring_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-active);border-color:var(--spectrum-actionbutton-static-border-color-active);color:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e.is-active_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color)}.spectrum-ActionButton--staticColor_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-disabled);border-color:var(--spectrum-actionbutton-static-border-disabled);color:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected);border-color:var(--spectrum-actionbutton-static-background-color-selected);color:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-focus);border-color:var(--spectrum-actionbutton-static-background-color-selected-focus);color:var(--spectrum-actionbutton-static-color-selected);box-shadow:none}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-hover);border-color:var(--spectrum-actionbutton-static-background-color-selected-hover);color:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-actionbutton-static-color-selected)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-actionbutton-static-background-color-selected-disabled);border-color:var(--spectrum-actionbutton-static-border-color-selected-disabled);color:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e:disabled .spectrum-ActionButton-hold_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.is-selected_e2d99e.is-disabled_e2d99e .spectrum-ActionButton-hold_e2d99e{fill:var(--spectrum-actionbutton-static-color-disabled)}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e{--spectrum-actionbutton-static-background-color:transparent;--spectrum-actionbutton-static-background-color-disabled:transparent}.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-hovered_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-active_e2d99e.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e:disabled.is-selected_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e,.spectrum-ActionButton--staticColor_e2d99e.spectrum-ActionButton--quiet_e2d99e.is-disabled_e2d99e.is-selected_e2d99e{border-color:#0000}.spectrum-LogicButton--and_e2d99e{background-color:var(--spectrum-global-color-static-blue-600,#1473e6);border-color:var(--spectrum-global-color-static-blue-600,#1473e6);color:var(--spectrum-logicbutton-and-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--and_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-global-color-static-blue-700,#0d66d0);border-color:var(--spectrum-global-color-static-blue-700,#0d66d0);color:var(--spectrum-logicbutton-and-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--and_e2d99e:disabled,.spectrum-LogicButton--and_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-logicbutton-and-background-color-disabled,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-logicbutton-and-border-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-logicbutton-and-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-LogicButton--or_e2d99e{background-color:var(--spectrum-global-color-static-magenta-500,#d83790);border-color:var(--spectrum-global-color-static-magenta-500,#d83790);color:var(--spectrum-logicbutton-or-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--or_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-global-color-static-magenta-600,#ca2982);border-color:var(--spectrum-global-color-static-magenta-600,#ca2982);color:var(--spectrum-logicbutton-or-text-color,var(--spectrum-global-color-static-white))}.spectrum-LogicButton--or_e2d99e:disabled,.spectrum-LogicButton--or_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-button-secondary-background-color-disabled,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-button-secondary-border-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-logicbutton-and-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldButton_e2d99e{color:var(--spectrum-fieldbutton-text-color,var(--spectrum-alias-text-color));background-color:var(--spectrum-fieldbutton-background-color,var(--spectrum-global-color-gray-75));border-color:var(--spectrum-fieldbutton-border-color,var(--spectrum-alias-border-color))}.spectrum-FieldButton_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color,var(--spectrum-alias-icon-color))}.spectrum-FieldButton_e2d99e.is-hovered_e2d99e{color:var(--spectrum-fieldbutton-text-color-hover,var(--spectrum-alias-text-color-hover));background-color:var(--spectrum-fieldbutton-background-color-hover,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-fieldbutton-border-color-hover,var(--spectrum-alias-border-color-hover))}.spectrum-FieldButton_e2d99e.is-hovered_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-hover,var(--spectrum-alias-icon-color-hover))}.spectrum-FieldButton_e2d99e.is-active_e2d99e,.spectrum-FieldButton_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-down,var(--spectrum-global-color-gray-200));border-color:var(--spectrum-fieldbutton-border-color-down,var(--spectrum-alias-border-color-down))}.spectrum-FieldButton_e2d99e.is-active_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-selected_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-down,var(--spectrum-alias-icon-color-down))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-key-focus,var(--spectrum-global-color-gray-50));border-color:var(--spectrum-fieldbutton-border-color-key-focus,var(--spectrum-alias-border-color-focus));color:var(--spectrum-fieldbutton-text-color-key-focus,var(--spectrum-alias-text-color-hover))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-key-focus,var(--spectrum-alias-icon-color-focus))}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e{fill:var(--spectrum-fieldbutton-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error,var(--spectrum-global-color-red-500))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-hovered_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-hover,var(--spectrum-global-color-red-600))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-active_e2d99e,.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-selected_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-down,var(--spectrum-global-color-red-600))}.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton_e2d99e.spectrum-FieldButton--invalid_e2d99e.is-focused_e2d99e{border-color:var(--spectrum-fieldbutton-border-color-error-key-focus,var(--spectrum-alias-border-color-focus))}.spectrum-FieldButton_e2d99e:disabled,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-fieldbutton-background-color-disabled,var(--spectrum-global-color-gray-200));color:var(--spectrum-fieldbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled))}.spectrum-FieldButton_e2d99e:disabled .spectrum-Icon_e2d99e,.spectrum-FieldButton_e2d99e.is-disabled_e2d99e .spectrum-Icon_e2d99e{fill:var(--spectrum-fieldbutton-icon-color-disabled,var(--spectrum-alias-icon-color-disabled))}.spectrum-FieldButton--quiet_e2d99e{color:var(--spectrum-fieldbutton-text-color,var(--spectrum-alias-text-color));border-color:var(--spectrum-fieldbutton-quiet-border-color,var(--spectrum-alias-border-color-transparent));background-color:var(--spectrum-fieldbutton-quiet-background-color,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.is-hovered_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-hover,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-fieldbutton-text-color-hover,var(--spectrum-alias-text-color-hover))}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.focus-ring_e2d99e.is-placeholder_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-focused_e2d99e.is-placeholder_e2d99e{color:var(--spectrum-fieldbutton-quiet-placeholder-text-color-key-focus,var(--spectrum-alias-placeholder-text-color-hover))}.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-down,var(--spectrum-alias-background-color-transparent));border-color:var(--spectrum-fieldbutton-quiet-border-color-down,var(--spectrum-alias-border-color-transparent))}.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-active_e2d99e.is-focused_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.focus-ring_e2d99e,.spectrum-FieldButton--quiet_e2d99e.is-selected_e2d99e.is-focused_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-key-focus,var(--spectrum-alias-background-color-transparent))}.spectrum-FieldButton--quiet_e2d99e:disabled,.spectrum-FieldButton--quiet_e2d99e.is-disabled_e2d99e{background-color:var(--spectrum-fieldbutton-quiet-background-color-disabled,var(--spectrum-alias-background-color-transparent));color:var(--spectrum-fieldbutton-text-color-disabled,var(--spectrum-alias-text-color-disabled))}@media (forced-colors:active){.spectrum-ActionButton_e2d99e,.spectrum-ClearButton_e2d99e,.spectrum-LogicButton_e2d99e,.spectrum-FieldButton_e2d99e{forced-color-adjust:none;--spectrum-clearbutton-medium-background-color:ButtonFace;--spectrum-clearbutton-medium-background-color-disabled:ButtonFace;--spectrum-clearbutton-medium-background-color-down:ButtonFace;--spectrum-clearbutton-medium-background-color-hover:ButtonFace;--spectrum-clearbutton-medium-background-color-key-focus:ButtonFace;--spectrum-clearbutton-medium-icon-color:ButtonText;--spectrum-clearbutton-medium-icon-color-disabled:GrayText;--spectrum-clearbutton-medium-icon-color-down:Highlight;--spectrum-clearbutton-medium-icon-color-hover:Highlight;--spectrum-clearbutton-medium-icon-color-key-focus:Highlight;--spectrum-fieldbutton-background-color:ButtonFace;--spectrum-fieldbutton-background-color-disabled:ButtonFace;--spectrum-fieldbutton-background-color-down:ButtonFace;--spectrum-fieldbutton-background-color-hover:ButtonFace;--spectrum-fieldbutton-background-color-key-focus:ButtonFace;--spectrum-fieldbutton-border-color:ButtonText;--spectrum-fieldbutton-border-color-down:Highlight;--spectrum-fieldbutton-border-color-error:ButtonText;--spectrum-fieldbutton-border-color-error-down:Highlight;--spectrum-fieldbutton-border-color-error-hover:Highlight;--spectrum-fieldbutton-border-color-error-key-focus:Highlight;--spectrum-fieldbutton-border-color-hover:Highlight;--spectrum-fieldbutton-border-color-key-focus:Highlight;--spectrum-fieldbutton-icon-color-disabled:GrayText;--spectrum-fieldbutton-placeholder-text-color-key-focus:ButtonText;--spectrum-fieldbutton-quiet-background-color:ButtonFace;--spectrum-fieldbutton-quiet-background-color-disabled:ButtonFace;--spectrum-fieldbutton-quiet-background-color-down:ButtonFace;--spectrum-fieldbutton-quiet-background-color-hover:ButtonFace;--spectrum-fieldbutton-quiet-background-color-key-focus:ButtonFace;--spectrum-fieldbutton-quiet-border-color:ButtonFace;--spectrum-fieldbutton-quiet-border-color-down:Highlight;--spectrum-fieldbutton-quiet-placeholder-text-color-key-focus:ButtonText;--spectrum-fieldbutton-text-color:ButtonText;--spectrum-fieldbutton-text-color-disabled:GrayText;--spectrum-fieldbutton-text-color-hover:ButtonText;--spectrum-fieldbutton-text-color-key-focus:ButtonText;--spectrum-logicbutton-and-background-color:ButtonFace;--spectrum-logicbutton-and-background-color-disabled:ButtonFace;--spectrum-logicbutton-and-background-color-hover:ButtonFace;--spectrum-logicbutton-and-border-color:ButtonText;--spectrum-logicbutton-and-border-color-disabled:GrayText;--spectrum-logicbutton-and-border-color-hover:Highlight;--spectrum-logicbutton-and-text-color:ButtonText;--spectrum-logicbutton-and-text-color-disabled:GrayText;--spectrum-logicbutton-or-background-color:ButtonFace;--spectrum-logicbutton-or-background-color-hover:ButtonFace;--spectrum-logicbutton-or-border-color:ButtonText;--spectrum-logicbutton-or-border-color-hover:Highlight;--spectrum-logicbutton-or-text-color:ButtonText;--spectrum-button-primary-focus-ring-color-key-focus:CanvasText;--spectrum-button-primary-focus-ring-size-key-focus:3px;--spectrum-dropdown-border-color-key-focus:Highlight}.spectrum-Button--overBackground_e2d99e{--spectrum-button-over-background-color:ButtonText}.spectrum-ActionButton--staticWhite_e2d99e,.spectrum-ActionButton--staticBlack_e2d99e{mix-blend-mode:normal;--spectrum-actionbutton-static-background-color-hover:ButtonFace;--spectrum-actionbutton-static-background-color-focus:ButtonFace;--spectrum-actionbutton-static-background-color-active:ButtonFace;--spectrum-actionbutton-static-background-color-selected:Highlight;--spectrum-actionbutton-static-background-color-selected-hover:Highlight;--spectrum-actionbutton-static-background-color-selected-focus:Highlight;--spectrum-actionbutton-static-background-color-selected-active:Highlight;--spectrum-actionbutton-static-border-color:ButtonText;--spectrum-actionbutton-static-border-color-hover:ButtonText;--spectrum-actionbutton-static-border-color-active:ButtonText;--spectrum-actionbutton-static-border-color-focus:CanvasText;--spectrum-actionbutton-static-border-disabled:GrayText;--spectrum-actionbutton-static-color:ButtonText;--spectrum-actionbutton-static-color-selected:HighlightText;--spectrum-actionbutton-static-color-disabled:GrayText}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e),.spectrum-FieldButton_e2d99e.is-focused_e2d99e:not(.spectrum-FieldButton--quiet_e2d99e){outline:2px solid Highlight}.spectrum-FieldButton_e2d99e.focus-ring_e2d99e.spectrum-FieldButton--quiet_e2d99e,.spectrum-FieldButton_e2d99e.is-focused_e2d99e.spectrum-FieldButton--quiet_e2d99e{forced-color-adjust:none;box-shadow:0 2px 0 0 var(--spectrum-dropdown-border-color-key-focus,var(--spectrum-alias-border-color-focus))}}"],"names":[],"version":3,"file":"index.6897f79f.css.map"} \ No newline at end of file diff --git a/tools/picker/dist/index.fce879da.js b/tools/picker/dist/index.fce879da.js new file mode 100644 index 00000000..dd64bb4c --- /dev/null +++ b/tools/picker/dist/index.fce879da.js @@ -0,0 +1,29 @@ +function e(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}function t(e){return e&&e.__esModule?e.default:e}var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r={},i={},l=n.parcelRequirebe40;null==l&&((l=function(e){if(e in r)return r[e].exports;if(e in i){var t=i[e];delete i[e];var n={id:e,exports:{}};return r[e]=n,t.call(n.exports,n,n.exports),n.exports}var l=new Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}).register=function(e,t){i[e]=t},n.parcelRequirebe40=l),l.register("acw62",(function(e,t){e.exports=l("2pUnB")})),l.register("2pUnB",(function(t,n){ +/** @license React v16.14.0 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var r,i,o,a,s,u,c,d,p,f,m,h,g,y,v,b,w,E,k,S,x,P,T,_,C,I,M,L;e(t.exports,"Children",(()=>r),(e=>r=e)),e(t.exports,"Component",(()=>i),(e=>i=e)),e(t.exports,"Fragment",(()=>o),(e=>o=e)),e(t.exports,"Profiler",(()=>a),(e=>a=e)),e(t.exports,"PureComponent",(()=>s),(e=>s=e)),e(t.exports,"StrictMode",(()=>u),(e=>u=e)),e(t.exports,"Suspense",(()=>c),(e=>c=e)),e(t.exports,"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED",(()=>d),(e=>d=e)),e(t.exports,"cloneElement",(()=>p),(e=>p=e)),e(t.exports,"createContext",(()=>f),(e=>f=e)),e(t.exports,"createElement",(()=>m),(e=>m=e)),e(t.exports,"createFactory",(()=>h),(e=>h=e)),e(t.exports,"createRef",(()=>g),(e=>g=e)),e(t.exports,"forwardRef",(()=>y),(e=>y=e)),e(t.exports,"isValidElement",(()=>v),(e=>v=e)),e(t.exports,"lazy",(()=>b),(e=>b=e)),e(t.exports,"memo",(()=>w),(e=>w=e)),e(t.exports,"useCallback",(()=>E),(e=>E=e)),e(t.exports,"useContext",(()=>k),(e=>k=e)),e(t.exports,"useDebugValue",(()=>S),(e=>S=e)),e(t.exports,"useEffect",(()=>x),(e=>x=e)),e(t.exports,"useImperativeHandle",(()=>P),(e=>P=e)),e(t.exports,"useLayoutEffect",(()=>T),(e=>T=e)),e(t.exports,"useMemo",(()=>_),(e=>_=e)),e(t.exports,"useReducer",(()=>C),(e=>C=e)),e(t.exports,"useRef",(()=>I),(e=>I=e)),e(t.exports,"useState",(()=>M),(e=>M=e)),e(t.exports,"version",(()=>L),(e=>L=e));var N=l("8coUR"),R="function"==typeof Symbol&&Symbol.for,O=R?Symbol.for("react.element"):60103,A=R?Symbol.for("react.portal"):60106,F=R?Symbol.for("react.fragment"):60107,z=R?Symbol.for("react.strict_mode"):60108,D=R?Symbol.for("react.profiler"):60114,K=R?Symbol.for("react.provider"):60109,V=R?Symbol.for("react.context"):60110,U=R?Symbol.for("react.forward_ref"):60112,B=R?Symbol.for("react.suspense"):60113,j=R?Symbol.for("react.memo"):60115,$=R?Symbol.for("react.lazy"):60116,H="function"==typeof Symbol&&Symbol.iterator;function W(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nle.length&&le.push(e)}function se(e,t,n,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var l=!1;if(null===e)l=!0;else switch(i){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case O:case A:l=!0}}if(l)return n(r,e,""===t?"."+ce(e,0):t),1;if(l=0,t=""===t?".":t+":",Array.isArray(e))for(var o=0;or),(e=>r=e)),e(t.exports,"createPortal",(()=>i),(e=>i=e)),e(t.exports,"findDOMNode",(()=>o),(e=>o=e)),e(t.exports,"flushSync",(()=>a),(e=>a=e)),e(t.exports,"hydrate",(()=>s),(e=>s=e)),e(t.exports,"render",(()=>u),(e=>u=e)),e(t.exports,"unmountComponentAtNode",(()=>c),(e=>c=e)),e(t.exports,"unstable_batchedUpdates",(()=>d),(e=>d=e)),e(t.exports,"unstable_createPortal",(()=>p),(e=>p=e)),e(t.exports,"unstable_renderSubtreeIntoContainer",(()=>f),(e=>f=e)),e(t.exports,"version",(()=>m),(e=>m=e));var h=l("acw62"),g=l("8coUR"),y=l("fO90s");function v(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
      \n \n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {MenuItem} from './MenuItem';\nimport {MenuSection} from './MenuSection';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {ReactElement, useContext} from 'react';\nimport {SpectrumMenuProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenu} from '@react-aria/menu';\nimport {useTreeState} from '@react-stately/tree';\n\nfunction Menu(props: SpectrumMenuProps, ref: DOMRef) {\n let contextProps = useContext(MenuContext);\n let completeProps = {\n ...mergeProps(contextProps, props)\n };\n\n let domRef = useDOMRef(ref);\n let state = useTreeState(completeProps);\n let {menuProps} = useMenu(completeProps, state, domRef);\n let {styleProps} = useStyleProps(completeProps);\n useSyncRef(contextProps, domRef);\n\n return (\n \n {[...state.collection].map(item => {\n if (item.type === 'section') {\n return (\n \n );\n }\n\n let menuItem = (\n \n );\n\n if (item.wrapper) {\n menuItem = item.wrapper(menuItem);\n }\n\n return menuItem;\n })}\n
    \n );\n}\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Menu = React.forwardRef(Menu) as (props: SpectrumMenuProps & {ref?: DOMRef}) => ReactElement;\nexport {_Menu as Menu};\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"moreActions\": \"المزيد من الإجراءات\"\n}\n","{\n \"moreActions\": \"Повече действия\"\n}\n","{\n \"moreActions\": \"Další akce\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Mehr Aktionen\"\n}\n","{\n \"moreActions\": \"Περισσότερες ενέργειες\"\n}\n","{\n \"moreActions\": \"More actions\"\n}","{\n \"moreActions\": \"Más acciones\"\n}\n","{\n \"moreActions\": \"Veel toiminguid\"\n}\n","{\n \"moreActions\": \"Lisää toimintoja\"\n}\n","{\n \"moreActions\": \"Autres actions\"\n}\n","{\n \"moreActions\": \"פעולות נוספות\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"További lehetőségek\"\n}\n","{\n \"moreActions\": \"Altre azioni\"\n}\n","{\n \"moreActions\": \"その他のアクション\"\n}\n","{\n \"moreActions\": \"기타 작업\"\n}\n","{\n \"moreActions\": \"Daugiau veiksmų\"\n}\n","{\n \"moreActions\": \"Citas darbības\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Meer handelingen\"\n}\n","{\n \"moreActions\": \"Więcej akcji\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mai multe acțiuni\"\n}\n","{\n \"moreActions\": \"Дополнительные действия\"\n}\n","{\n \"moreActions\": \"Ďalšie akcie\"\n}\n","{\n \"moreActions\": \"Več možnosti\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"Fler åtgärder\"\n}\n","{\n \"moreActions\": \"Daha fazla eylem\"\n}\n","{\n \"moreActions\": \"Більше дій\"\n}\n","{\n \"moreActions\": \"更多操作\"\n}\n","{\n \"moreActions\": \"更多動作\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from '@react-spectrum/button';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusableRef} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Menu} from './Menu';\nimport {MenuTrigger} from './MenuTrigger';\nimport More from '@spectrum-icons/workflow/More';\nimport React, {forwardRef, ReactElement} from 'react';\nimport {SpectrumActionMenuProps} from '@react-types/menu';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useSlotProps} from '@react-spectrum/utils';\n\nfunction ActionMenu(props: SpectrumActionMenuProps, ref: FocusableRef) {\n props = useSlotProps(props, 'actionMenu');\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let buttonProps = filterDOMProps(props, {labelable: true});\n if (buttonProps['aria-label'] === undefined) {\n buttonProps['aria-label'] = stringFormatter.format('moreActions');\n }\n\n return (\n \n \n \n \n \n \n );\n}\n\n/**\n * ActionMenu combines an ActionButton with a Menu for simple \"more actions\" use cases.\n */\nconst _ActionMenu = forwardRef(ActionMenu) as (props: SpectrumActionMenuProps & {ref?: FocusableRef}) => ReactElement;\nexport {_ActionMenu as ActionMenu};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLinkProps} from '@react-types/link';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface AriaLinkOptions extends AriaLinkProps {\n /** Whether the link is disabled. */\n isDisabled?: boolean,\n /**\n * The HTML element used to render the link, e.g. 'a', or 'span'.\n * @default 'a'\n */\n elementType?: string\n}\n\nexport interface LinkAria {\n /** Props for the link element. */\n linkProps: DOMAttributes,\n /** Whether the link is currently pressed. */\n isPressed: boolean\n}\n\n/**\n * Provides the behavior and accessibility implementation for a link component.\n * A link allows a user to navigate to another page or resource within a web page\n * or application.\n */\nexport function useLink(props: AriaLinkOptions, ref: RefObject): LinkAria {\n let {\n elementType = 'a',\n onPress,\n onPressStart,\n onPressEnd,\n // @ts-ignore\n onClick: deprecatedOnClick,\n isDisabled,\n ...otherProps\n } = props;\n\n let linkProps: DOMAttributes;\n if (elementType !== 'a') {\n linkProps = {\n role: 'link',\n tabIndex: !isDisabled ? 0 : undefined\n };\n }\n let {focusableProps} = useFocusable(props, ref);\n let {pressProps, isPressed} = usePress({onPress, onPressStart, onPressEnd, isDisabled, ref});\n let domProps = filterDOMProps(otherProps, {labelable: true});\n let interactionHandlers = mergeProps(focusableProps, pressProps);\n\n return {\n isPressed, // Used to indicate press state for visual\n linkProps: mergeProps(domProps, {\n ...interactionHandlers,\n ...linkProps,\n 'aria-disabled': isDisabled || undefined,\n onClick: (e) => {\n pressProps.onClick(e);\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {RefObject} from 'react';\nimport {useLink} from '@react-aria/link';\n\nexport interface BreadcrumbItemAria {\n /** Props for the breadcrumb item link element. */\n itemProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for an in a breadcrumbs component.\n * See `useBreadcrumbs` for details about breadcrumbs.\n */\nexport function useBreadcrumbItem(props: AriaBreadcrumbItemProps, ref: RefObject): BreadcrumbItemAria {\n let {\n isCurrent,\n isDisabled,\n 'aria-current': ariaCurrent,\n elementType = 'a',\n ...otherProps\n } = props;\n\n let {linkProps} = useLink({isDisabled: isDisabled || isCurrent, elementType, ...otherProps}, ref);\n let isHeading = /^h[1-6]$/.test(elementType);\n let itemProps: DOMAttributes = {};\n\n if (!isHeading) {\n itemProps = linkProps;\n }\n\n if (isCurrent) {\n itemProps['aria-current'] = ariaCurrent || 'page';\n // isCurrent sets isDisabled === true for the current item,\n // so we have to restore the tabIndex in order to support autoFocus.\n itemProps.tabIndex = props.autoFocus ? -1 : undefined;\n }\n\n return {\n itemProps: {\n 'aria-disabled': isDisabled,\n ...itemProps\n }\n };\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightSmall;\n\nvar _ChevronRightSmall = require(\"@adobe/react-spectrum-ui/dist/ChevronRightSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightSmall.ChevronRightSmall, null));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs navigation element. */\n navProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a breadcrumbs component.\n * Breadcrumbs display a hierarchy of links to the current page or resource in an application.\n */\nexport function useBreadcrumbs(props: AriaBreadcrumbsProps): BreadcrumbsAria {\n let {\n 'aria-label': ariaLabel,\n ...otherProps\n } = props;\n\n let strings = useLocalizedStringFormatter(intlMessages);\n return {\n navProps: {\n ...filterDOMProps(otherProps, {labelable: true}),\n 'aria-label': ariaLabel || strings.format('breadcrumbs')\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"breadcrumbs\": \"عناصر الواجهة\"\n}\n","{\n \"breadcrumbs\": \"Трохи хляб\"\n}\n","{\n \"breadcrumbs\": \"Popis cesty\"\n}\n","{\n \"breadcrumbs\": \"Brødkrummer\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Πλοηγήσεις breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Migas de pan\"\n}\n","{\n \"breadcrumbs\": \"Lingiread\"\n}\n","{\n \"breadcrumbs\": \"Navigointilinkit\"\n}\n","{\n \"breadcrumbs\": \"Chemin de navigation\"\n}\n","{\n \"breadcrumbs\": \"שבילי ניווט\"\n}\n","{\n \"breadcrumbs\": \"Navigacijski putovi\"\n}\n","{\n \"breadcrumbs\": \"Morzsamenü\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"パンくずリスト\"\n}\n","{\n \"breadcrumbs\": \"탐색 표시\"\n}\n","{\n \"breadcrumbs\": \"Naršymo kelias\"\n}\n","{\n \"breadcrumbs\": \"Atpakaļceļi\"\n}\n","{\n \"breadcrumbs\": \"Navigasjonsstier\"\n}\n","{\n \"breadcrumbs\": \"Broodkruimels\"\n}\n","{\n \"breadcrumbs\": \"Struktura nawigacyjna\"\n}\n","{\n \"breadcrumbs\": \"Caminho detalhado\"\n}\n","{\n \"breadcrumbs\": \"Categorias\"\n}\n","{\n \"breadcrumbs\": \"Miez de pâine\"\n}\n","{\n \"breadcrumbs\": \"Навигация\"\n}\n","{\n \"breadcrumbs\": \"Navigačné prvky Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Drobtine\"\n}\n","{\n \"breadcrumbs\": \"Putanje navigacije\"\n}\n","{\n \"breadcrumbs\": \"Sökvägar\"\n}\n","{\n \"breadcrumbs\": \"İçerik haritaları\"\n}\n","{\n \"breadcrumbs\": \"Навігаційна стежка\"\n}\n","{\n \"breadcrumbs\": \"导航栏\"\n}\n","{\n \"breadcrumbs\": \"導覽列\"\n}\n","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightSmall = ChevronRightSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z\"\n }));\n}\n\nChevronRightSmall.displayName = 'ChevronRightSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n \n \n {element}\n \n {isCurrent === false &&\n \n }\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs(props: SpectrumBreadcrumbsProps, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n autoFocusCurrent,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n let containerWidth = currListRef.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n \n \n \n \n \n \n {childArray}\n \n \n \n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n \n \n {child.props.children}\n \n
  • \n );\n });\n\n return (\n \n \n {breadcrumbItems}\n
\n \n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--darkest {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(0, 0, 0);\n --spectrum-gray-75: rgb(14, 14, 14);\n --spectrum-gray-100: rgb(29, 29, 29);\n --spectrum-gray-200: rgb(48, 48, 48);\n --spectrum-gray-300: rgb(75, 75, 75);\n --spectrum-gray-400: rgb(106, 106, 106);\n --spectrum-gray-500: rgb(141, 141, 141);\n --spectrum-gray-600: rgb(176, 176, 176);\n --spectrum-gray-700: rgb(208, 208, 208);\n --spectrum-gray-800: rgb(235, 235, 235);\n --spectrum-gray-900: rgb(255, 255, 255);\n --spectrum-red-100: rgb(87, 0, 0);\n --spectrum-red-200: rgb(110, 0, 0);\n --spectrum-red-300: rgb(138, 0, 0);\n --spectrum-red-400: rgb(167, 0, 0);\n --spectrum-red-500: rgb(196, 7, 6);\n --spectrum-red-600: rgb(221, 33, 24);\n --spectrum-red-700: rgb(238, 67, 49);\n --spectrum-red-800: rgb(249, 99, 76);\n --spectrum-red-900: rgb(255, 129, 107);\n --spectrum-red-1000: rgb(255, 158, 140);\n --spectrum-red-1100: rgb(255, 183, 169);\n --spectrum-red-1200: rgb(255, 205, 195);\n --spectrum-red-1300: rgb(255, 223, 217);\n --spectrum-red-1400: rgb(255, 237, 234);\n --spectrum-orange-100: rgb(72, 24, 1);\n --spectrum-orange-200: rgb(92, 32, 0);\n --spectrum-orange-300: rgb(115, 43, 0);\n --spectrum-orange-400: rgb(138, 55, 0);\n --spectrum-orange-500: rgb(162, 68, 0);\n --spectrum-orange-600: rgb(186, 82, 0);\n --spectrum-orange-700: rgb(210, 98, 0);\n --spectrum-orange-800: rgb(232, 116, 0);\n --spectrum-orange-900: rgb(249, 137, 23);\n --spectrum-orange-1000: rgb(255, 162, 59);\n --spectrum-orange-1100: rgb(255, 188, 102);\n --spectrum-orange-1200: rgb(253, 210, 145);\n --spectrum-orange-1300: rgb(255, 226, 181);\n --spectrum-orange-1400: rgb(255, 239, 213);\n --spectrum-yellow-100: rgb(53, 36, 0);\n --spectrum-yellow-200: rgb(68, 47, 0);\n --spectrum-yellow-300: rgb(86, 62, 0);\n --spectrum-yellow-400: rgb(103, 77, 0);\n --spectrum-yellow-500: rgb(122, 92, 0);\n --spectrum-yellow-600: rgb(141, 108, 0);\n --spectrum-yellow-700: rgb(161, 126, 0);\n --spectrum-yellow-800: rgb(180, 144, 0);\n --spectrum-yellow-900: rgb(199, 162, 0);\n --spectrum-yellow-1000: rgb(216, 181, 0);\n --spectrum-yellow-1100: rgb(233, 199, 0);\n --spectrum-yellow-1200: rgb(247, 216, 4);\n --spectrum-yellow-1300: rgb(249, 233, 97);\n --spectrum-yellow-1400: rgb(252, 243, 170);\n --spectrum-chartreuse-100: rgb(32, 43, 0);\n --spectrum-chartreuse-200: rgb(42, 56, 0);\n --spectrum-chartreuse-300: rgb(54, 72, 0);\n --spectrum-chartreuse-400: rgb(66, 88, 0);\n --spectrum-chartreuse-500: rgb(79, 105, 0);\n --spectrum-chartreuse-600: rgb(93, 123, 0);\n --spectrum-chartreuse-700: rgb(107, 142, 0);\n --spectrum-chartreuse-800: rgb(122, 161, 0);\n --spectrum-chartreuse-900: rgb(138, 180, 3);\n --spectrum-chartreuse-1000: rgb(154, 198, 11);\n --spectrum-chartreuse-1100: rgb(170, 216, 22);\n --spectrum-chartreuse-1200: rgb(187, 232, 41);\n --spectrum-chartreuse-1300: rgb(205, 246, 72);\n --spectrum-chartreuse-1400: rgb(225, 253, 132);\n --spectrum-celery-100: rgb(0, 47, 7);\n --spectrum-celery-200: rgb(0, 61, 9);\n --spectrum-celery-300: rgb(0, 77, 12);\n --spectrum-celery-400: rgb(0, 95, 15);\n --spectrum-celery-500: rgb(0, 113, 15);\n --spectrum-celery-600: rgb(0, 132, 15);\n --spectrum-celery-700: rgb(0, 151, 20);\n --spectrum-celery-800: rgb(13, 171, 37);\n --spectrum-celery-900: rgb(45, 191, 58);\n --spectrum-celery-1000: rgb(80, 208, 82);\n --spectrum-celery-1100: rgb(115, 224, 107);\n --spectrum-celery-1200: rgb(147, 237, 131);\n --spectrum-celery-1300: rgb(180, 247, 162);\n --spectrum-celery-1400: rgb(213, 252, 202);\n --spectrum-green-100: rgb(10, 44, 28);\n --spectrum-green-200: rgb(7, 59, 36);\n --spectrum-green-300: rgb(0, 76, 46);\n --spectrum-green-400: rgb(0, 93, 57);\n --spectrum-green-500: rgb(0, 111, 69);\n --spectrum-green-600: rgb(0, 130, 82);\n --spectrum-green-700: rgb(0, 149, 98);\n --spectrum-green-800: rgb(28, 168, 114);\n --spectrum-green-900: rgb(52, 187, 132);\n --spectrum-green-1000: rgb(75, 205, 149);\n --spectrum-green-1100: rgb(103, 222, 168);\n --spectrum-green-1200: rgb(137, 236, 188);\n --spectrum-green-1300: rgb(177, 244, 209);\n --spectrum-green-1400: rgb(214, 249, 228);\n --spectrum-seafoam-100: rgb(18, 43, 42);\n --spectrum-seafoam-200: rgb(19, 57, 55);\n --spectrum-seafoam-300: rgb(16, 73, 70);\n --spectrum-seafoam-400: rgb(3, 91, 88);\n --spectrum-seafoam-500: rgb(0, 108, 104);\n --spectrum-seafoam-600: rgb(0, 127, 121);\n --spectrum-seafoam-700: rgb(0, 146, 140);\n --spectrum-seafoam-800: rgb(0, 165, 159);\n --spectrum-seafoam-900: rgb(26, 185, 178);\n --spectrum-seafoam-1000: rgb(66, 202, 195);\n --spectrum-seafoam-1100: rgb(102, 218, 211);\n --spectrum-seafoam-1200: rgb(139, 232, 225);\n --spectrum-seafoam-1300: rgb(179, 242, 237);\n --spectrum-seafoam-1400: rgb(215, 248, 244);\n --spectrum-cyan-100: rgb(0, 41, 68);\n --spectrum-cyan-200: rgb(0, 54, 88);\n --spectrum-cyan-300: rgb(0, 69, 108);\n --spectrum-cyan-400: rgb(0, 86, 128);\n --spectrum-cyan-500: rgb(0, 103, 147);\n --spectrum-cyan-600: rgb(0, 121, 167);\n --spectrum-cyan-700: rgb(0, 140, 186);\n --spectrum-cyan-800: rgb(4, 160, 205);\n --spectrum-cyan-900: rgb(23, 180, 221);\n --spectrum-cyan-1000: rgb(57, 199, 234);\n --spectrum-cyan-1100: rgb(96, 216, 243);\n --spectrum-cyan-1200: rgb(134, 230, 250);\n --spectrum-cyan-1300: rgb(170, 242, 255);\n --spectrum-cyan-1400: rgb(206, 249, 255);\n --spectrum-blue-100: rgb(0, 38, 81);\n --spectrum-blue-200: rgb(0, 50, 106);\n --spectrum-blue-300: rgb(0, 64, 135);\n --spectrum-blue-400: rgb(0, 78, 166);\n --spectrum-blue-500: rgb(0, 92, 200);\n --spectrum-blue-600: rgb(6, 108, 231);\n --spectrum-blue-700: rgb(29, 128, 245);\n --spectrum-blue-800: rgb(64, 150, 243);\n --spectrum-blue-900: rgb(94, 170, 247);\n --spectrum-blue-1000: rgb(124, 189, 250);\n --spectrum-blue-1100: rgb(152, 206, 253);\n --spectrum-blue-1200: rgb(179, 222, 254);\n --spectrum-blue-1300: rgb(206, 234, 255);\n --spectrum-blue-1400: rgb(227, 243, 255);\n --spectrum-indigo-100: rgb(26, 29, 97);\n --spectrum-indigo-200: rgb(35, 39, 125);\n --spectrum-indigo-300: rgb(46, 50, 158);\n --spectrum-indigo-400: rgb(58, 63, 189);\n --spectrum-indigo-500: rgb(73, 78, 216);\n --spectrum-indigo-600: rgb(90, 96, 235);\n --spectrum-indigo-700: rgb(110, 115, 246);\n --spectrum-indigo-800: rgb(132, 136, 253);\n --spectrum-indigo-900: rgb(153, 157, 255);\n --spectrum-indigo-1000: rgb(174, 177, 255);\n --spectrum-indigo-1100: rgb(194, 196, 255);\n --spectrum-indigo-1200: rgb(212, 213, 255);\n --spectrum-indigo-1300: rgb(227, 228, 255);\n --spectrum-indigo-1400: rgb(240, 240, 255);\n --spectrum-purple-100: rgb(50, 16, 104);\n --spectrum-purple-200: rgb(67, 13, 140);\n --spectrum-purple-300: rgb(86, 16, 173);\n --spectrum-purple-400: rgb(106, 29, 200);\n --spectrum-purple-500: rgb(126, 49, 222);\n --spectrum-purple-600: rgb(145, 70, 236);\n --spectrum-purple-700: rgb(162, 94, 246);\n --spectrum-purple-800: rgb(178, 119, 250);\n --spectrum-purple-900: rgb(192, 143, 252);\n --spectrum-purple-1000: rgb(206, 166, 253);\n --spectrum-purple-1100: rgb(219, 188, 254);\n --spectrum-purple-1200: rgb(230, 207, 255);\n --spectrum-purple-1300: rgb(240, 224, 255);\n --spectrum-purple-1400: rgb(248, 237, 255);\n --spectrum-fuchsia-100: rgb(70, 14, 68);\n --spectrum-fuchsia-200: rgb(93, 9, 92);\n --spectrum-fuchsia-300: rgb(120, 0, 120);\n --spectrum-fuchsia-400: rgb(146, 0, 147);\n --spectrum-fuchsia-500: rgb(169, 19, 170);\n --spectrum-fuchsia-600: rgb(191, 43, 191);\n --spectrum-fuchsia-700: rgb(211, 65, 213);\n --spectrum-fuchsia-800: rgb(228, 91, 229);\n --spectrum-fuchsia-900: rgb(239, 120, 238);\n --spectrum-fuchsia-1000: rgb(246, 149, 243);\n --spectrum-fuchsia-1100: rgb(251, 175, 246);\n --spectrum-fuchsia-1200: rgb(254, 199, 248);\n --spectrum-fuchsia-1300: rgb(255, 220, 250);\n --spectrum-fuchsia-1400: rgb(255, 235, 252);\n --spectrum-magenta-100: rgb(83, 3, 41);\n --spectrum-magenta-200: rgb(106, 0, 52);\n --spectrum-magenta-300: rgb(133, 0, 65);\n --spectrum-magenta-400: rgb(161, 0, 78);\n --spectrum-magenta-500: rgb(186, 22, 93);\n --spectrum-magenta-600: rgb(209, 43, 114);\n --spectrum-magenta-700: rgb(227, 69, 137);\n --spectrum-magenta-800: rgb(241, 97, 156);\n --spectrum-magenta-900: rgb(252, 124, 173);\n --spectrum-magenta-1000: rgb(255, 152, 191);\n --spectrum-magenta-1100: rgb(255, 179, 207);\n --spectrum-magenta-1200: rgb(255, 202, 221);\n --spectrum-magenta-1300: rgb(255, 221, 233);\n --spectrum-magenta-1400: rgb(255, 236, 243);\n /* legacy color aliases matching closest v6 color to v5 name */\n --spectrum-legacy-color-celery-400: var(--spectrum-celery-800);\n --spectrum-legacy-color-celery-500: var(--spectrum-celery-900);\n --spectrum-legacy-color-celery-600: var(--spectrum-celery-1000);\n --spectrum-legacy-color-celery-700: var(--spectrum-celery-1100);\n --spectrum-legacy-color-chartreuse-400: var(--spectrum-chartreuse-900);\n --spectrum-legacy-color-chartreuse-500: var(--spectrum-chartreuse-1000);\n --spectrum-legacy-color-chartreuse-600: var(--spectrum-chartreuse-1100);\n --spectrum-legacy-color-chartreuse-700: var(--spectrum-chartreuse-1200);\n --spectrum-legacy-color-yellow-400: var(--spectrum-yellow-1000);\n --spectrum-legacy-color-yellow-500: var(--spectrum-yellow-1100);\n --spectrum-legacy-color-yellow-600: var(--spectrum-yellow-1200);\n --spectrum-legacy-color-yellow-700: var(--spectrum-yellow-1300);\n --spectrum-legacy-color-magenta-400: var(--spectrum-magenta-600);\n --spectrum-legacy-color-magenta-500: var(--spectrum-magenta-700);\n --spectrum-legacy-color-magenta-600: var(--spectrum-magenta-800);\n --spectrum-legacy-color-magenta-700: var(--spectrum-magenta-900);\n --spectrum-legacy-color-fuchsia-400: var(--spectrum-fuchsia-600);\n --spectrum-legacy-color-fuchsia-500: var(--spectrum-fuchsia-700);\n --spectrum-legacy-color-fuchsia-600: var(--spectrum-fuchsia-800);\n --spectrum-legacy-color-fuchsia-700: var(--spectrum-fuchsia-900);\n --spectrum-legacy-color-purple-400: var(--spectrum-purple-600);\n --spectrum-legacy-color-purple-500: var(--spectrum-purple-700);\n --spectrum-legacy-color-purple-600: var(--spectrum-purple-800);\n --spectrum-legacy-color-purple-700: var(--spectrum-purple-900);\n --spectrum-legacy-color-indigo-400: var(--spectrum-indigo-600);\n --spectrum-legacy-color-indigo-500: var(--spectrum-indigo-700);\n --spectrum-legacy-color-indigo-600: var(--spectrum-indigo-800);\n --spectrum-legacy-color-indigo-700: var(--spectrum-indigo-900);\n --spectrum-legacy-color-red-400: var(--spectrum-red-600);\n --spectrum-legacy-color-red-500: var(--spectrum-red-700);\n --spectrum-legacy-color-red-600: var(--spectrum-red-800);\n --spectrum-legacy-color-red-700: var(--spectrum-red-900);\n --spectrum-legacy-color-orange-400: var(--spectrum-orange-800);\n --spectrum-legacy-color-orange-500: var(--spectrum-orange-900);\n --spectrum-legacy-color-orange-600: var(--spectrum-orange-1000);\n --spectrum-legacy-color-orange-700: var(--spectrum-orange-1100);\n --spectrum-legacy-color-green-400: var(--spectrum-green-700);\n --spectrum-legacy-color-green-500: var(--spectrum-green-800);\n --spectrum-legacy-color-green-600: var(--spectrum-green-900);\n --spectrum-legacy-color-green-700: var(--spectrum-green-1000);\n --spectrum-legacy-color-blue-400: var(--spectrum-blue-700);\n --spectrum-legacy-color-blue-500: var(--spectrum-blue-800);\n --spectrum-legacy-color-blue-600: var(--spectrum-blue-900);\n --spectrum-legacy-color-blue-700: var(--spectrum-blue-1000);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.6);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.8);\n --spectrum-alias-background-color-hover-overlay: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-hover: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-active: rgba(239,239,239,0.15);\n --spectrum-alias-highlight-selected: rgba(64,150,243,0.2);\n --spectrum-alias-highlight-selected-hover: rgba(64,150,243,0.3);\n --spectrum-alias-highlight-invalid: rgba(221, 33, 24, 0.15); /* matches red-600 */\n --spectrum-alias-text-highlight-color: rgba(64,150,243,0.3);\n --spectrum-alias-background-color-quickactions: rgba(29,29,29,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(235,235,235,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-50);\n --spectrum-colorarea-border-color: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(38,128,235,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(38,128,235,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(235,235,235,0.02);\n --spectrum-well-border-color: rgba(239,239,239,0.05);\n /* BEGIN RSP PATCH */\n /* missing in spectrum-css */\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-100);\n /* END RSP PATCH */\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: var(--spectrum-global-color-gray-600); /* 4.8:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-600);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-500);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-400);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-500);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-600);\n --spectrum-negative-background-color-hover: var(--spectrum-red-500);\n --spectrum-negative-background-color-down: var(--spectrum-red-400);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-500);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-600);\n --spectrum-positive-background-color-hover: var(--spectrum-green-500);\n --spectrum-positive-background-color-down: var(--spectrum-green-400);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-500);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-600);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-500);\n --spectrum-informative-background-color-down: var(--spectrum-blue-400);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-500);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-700);\n --spectrum-orange-background-color-default: var(--spectrum-orange-800);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-1000);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-900);\n --spectrum-celery-background-color-default: var(--spectrum-celery-800);\n --spectrum-green-background-color-default: var(--spectrum-green-700);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-700);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-700);\n --spectrum-blue-background-color-default: var(--spectrum-blue-700);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-700);\n --spectrum-purple-background-color-default: var(--spectrum-purple-700);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-700);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-700);\n\n --spectrum-negative-visual-color: var(--spectrum-red-700);\n --spectrum-positive-visual-color: var(--spectrum-green-800);\n --spectrum-notice-visual-color: var(--spectrum-orange-900);\n --spectrum-informative-visual-color: var(--spectrum-blue-900);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-600);\n --spectrum-red-visual-color: var(--spectrum-red-700);\n --spectrum-orange-visual-color: var(--spectrum-orange-900);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-1100);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-900);\n --spectrum-celery-visual-color: var(--spectrum-celery-800);\n --spectrum-green-visual-color: var(--spectrum-green-800);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-800);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-900);\n --spectrum-blue-visual-color: var(--spectrum-blue-900);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-900);\n --spectrum-purple-visual-color: var(--spectrum-purple-900);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-900);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-900);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum { /* spectrum-animationGlobals.css */\n --spectrum-global-animation-duration-0: 0ms;\n --spectrum-global-animation-duration-100: 130ms;\n --spectrum-global-animation-duration-200: 160ms;\n --spectrum-global-animation-duration-300: 190ms;\n --spectrum-global-animation-duration-400: 220ms;\n --spectrum-global-animation-duration-500: 250ms;\n --spectrum-global-animation-duration-600: 300ms;\n --spectrum-global-animation-duration-700: 350ms;\n --spectrum-global-animation-duration-800: 400ms;\n --spectrum-global-animation-duration-900: 450ms;\n --spectrum-global-animation-duration-1000: 500ms;\n --spectrum-global-animation-duration-2000: 1000ms;\n --spectrum-global-animation-duration-4000: 2000ms;\n --spectrum-global-animation-ease-in-out: cubic-bezier(.45, 0, .40, 1);\n --spectrum-global-animation-ease-in: cubic-bezier(.50, 0, 1, 1);\n --spectrum-global-animation-ease-out: cubic-bezier(0, 0, 0.40, 1);\n --spectrum-global-animation-linear: cubic-bezier(0, 0, 1, 1);\n\n\n /* spectrum-colorGlobals.css */\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-global-color-static-black: rgb(0, 0, 0);\n --spectrum-global-color-static-white: rgb(255, 255, 255);\n --spectrum-global-color-static-blue: rgb(0, 87, 191);\n --spectrum-global-color-static-gray-50: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-75: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-100: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-200: rgb(235, 235, 235);\n --spectrum-global-color-static-gray-300: rgb(217, 217, 217);\n --spectrum-global-color-static-gray-400: rgb(179, 179, 179);\n --spectrum-global-color-static-gray-500: rgb(146, 146, 146);\n --spectrum-global-color-static-gray-600: rgb(110, 110, 110);\n --spectrum-global-color-static-gray-700: rgb(71, 71, 71);\n --spectrum-global-color-static-gray-800: rgb(34, 34, 34);\n --spectrum-global-color-static-gray-900: rgb(0, 0, 0);\n --spectrum-global-color-static-blue-200: rgb(130, 193, 251);\n --spectrum-global-color-static-blue-300: rgb(98, 173, 247);\n --spectrum-global-color-static-blue-400: rgb(66, 151, 244);\n --spectrum-global-color-static-blue-500: rgb(27, 127, 245);\n --spectrum-global-color-static-blue-600: rgb(4, 105, 227);\n --spectrum-global-color-static-blue-700: rgb(0, 87, 190);\n --spectrum-global-color-static-blue-800: rgb(0, 72, 153);\n --spectrum-global-color-static-red-400: rgb(237, 64, 48);\n --spectrum-global-color-static-red-500: rgb(217, 28, 21);\n --spectrum-global-color-static-red-600: rgb(187, 2, 2);\n --spectrum-global-color-static-red-700: rgb(154, 0, 0);\n --spectrum-global-color-static-orange-400: rgb(250, 139, 26);\n --spectrum-global-color-static-orange-500: rgb(233, 117, 0);\n --spectrum-global-color-static-orange-600: rgb(209, 97, 0);\n --spectrum-global-color-static-orange-700: rgb(182, 80, 0);\n --spectrum-global-color-static-green-400: rgb(29, 169, 115);\n --spectrum-global-color-static-green-500: rgb(0, 148, 97);\n --spectrum-global-color-static-green-600: rgb(0, 126, 80);\n --spectrum-global-color-static-green-700: rgb(0, 105, 65);\n --spectrum-global-color-static-celery-200: rgb(126, 229, 114);\n --spectrum-global-color-static-celery-300: rgb(87, 212, 86);\n --spectrum-global-color-static-celery-400: rgb(48, 193, 61);\n --spectrum-global-color-static-celery-500: rgb(15, 172, 38);\n --spectrum-global-color-static-celery-600: rgb(0, 150, 20);\n --spectrum-global-color-static-celery-700: rgb(0, 128, 15);\n --spectrum-global-color-static-chartreuse-300: rgb(176, 222, 27);\n --spectrum-global-color-static-chartreuse-400: rgb(157, 203, 13);\n --spectrum-global-color-static-chartreuse-500: rgb(139, 182, 4);\n --spectrum-global-color-static-chartreuse-600: rgb(122, 162, 0);\n --spectrum-global-color-static-chartreuse-700: rgb(106, 141, 0);\n --spectrum-global-color-static-yellow-200: rgb(250, 237, 123);\n --spectrum-global-color-static-yellow-300: rgb(250, 224, 23);\n --spectrum-global-color-static-yellow-400: rgb(238, 205, 0);\n --spectrum-global-color-static-yellow-500: rgb(221, 185, 0);\n --spectrum-global-color-static-yellow-600: rgb(201, 164, 0);\n --spectrum-global-color-static-yellow-700: rgb(181, 144, 0);\n --spectrum-global-color-static-magenta-200: rgb(253, 127, 175);\n --spectrum-global-color-static-magenta-300: rgb(242, 98, 157);\n --spectrum-global-color-static-magenta-400: rgb(226, 68, 135);\n --spectrum-global-color-static-magenta-500: rgb(205, 40, 111);\n --spectrum-global-color-static-magenta-600: rgb(179, 15, 89);\n --spectrum-global-color-static-magenta-700: rgb(149, 0, 72);\n --spectrum-global-color-static-fuchsia-400: rgb(228, 93, 230);\n --spectrum-global-color-static-fuchsia-500: rgb(211, 63, 212);\n --spectrum-global-color-static-fuchsia-600: rgb(188, 39, 187);\n --spectrum-global-color-static-fuchsia-700: rgb(163, 10, 163);\n --spectrum-global-color-static-purple-400: rgb(178, 121, 250);\n --spectrum-global-color-static-purple-500: rgb(161, 93, 246);\n --spectrum-global-color-static-purple-600: rgb(142, 67, 234);\n --spectrum-global-color-static-purple-700: rgb(120, 43, 216);\n --spectrum-global-color-static-purple-800: rgb(98, 23, 190);\n --spectrum-global-color-static-indigo-200: rgb(178, 181, 255);\n --spectrum-global-color-static-indigo-300: rgb(155, 159, 255);\n --spectrum-global-color-static-indigo-400: rgb(132, 137, 253);\n --spectrum-global-color-static-indigo-500: rgb(109, 115, 246);\n --spectrum-global-color-static-indigo-600: rgb(87, 93, 232);\n --spectrum-global-color-static-indigo-700: rgb(68, 74, 208);\n --spectrum-global-color-static-seafoam-200: rgb(75, 206, 199);\n --spectrum-global-color-static-seafoam-300: rgb(32, 187, 180);\n --spectrum-global-color-static-seafoam-400: rgb(0, 166, 160);\n --spectrum-global-color-static-seafoam-500: rgb(0, 145, 139);\n --spectrum-global-color-static-seafoam-600: rgb(0, 124, 118);\n --spectrum-global-color-static-seafoam-700: rgb(0, 103, 99);\n --spectrum-global-color-opacity-100: 1;\n --spectrum-global-color-opacity-90: 0.9;\n --spectrum-global-color-opacity-80: 0.8;\n --spectrum-global-color-opacity-60: 0.6;\n --spectrum-global-color-opacity-50: 0.5;\n --spectrum-global-color-opacity-42: 0.42;\n --spectrum-global-color-opacity-40: 0.4;\n --spectrum-global-color-opacity-30: 0.3;\n --spectrum-global-color-opacity-25: 0.25;\n --spectrum-global-color-opacity-20: 0.2;\n --spectrum-global-color-opacity-15: 0.15;\n --spectrum-global-color-opacity-10: 0.1;\n --spectrum-global-color-opacity-8: 0.08;\n --spectrum-global-color-opacity-7: 0.07;\n --spectrum-global-color-opacity-6: 0.06;\n --spectrum-global-color-opacity-5: 0.05;\n --spectrum-global-color-opacity-4: 0.04;\n\n /* mappings from v5 color indices to v6 color indices */\n --spectrum-global-color-celery-400: var(--spectrum-celery-600);\n --spectrum-global-color-celery-500: var(--spectrum-celery-700);\n --spectrum-global-color-celery-600: var(--spectrum-celery-800);\n --spectrum-global-color-celery-700: var(--spectrum-celery-900);\n --spectrum-global-color-chartreuse-400: var(--spectrum-chartreuse-500);\n --spectrum-global-color-chartreuse-500: var(--spectrum-chartreuse-600);\n --spectrum-global-color-chartreuse-600: var(--spectrum-chartreuse-700);\n --spectrum-global-color-chartreuse-700: var(--spectrum-chartreuse-800);\n --spectrum-global-color-yellow-400: var(--spectrum-yellow-400);\n --spectrum-global-color-yellow-500: var(--spectrum-yellow-500);\n --spectrum-global-color-yellow-600: var(--spectrum-yellow-600);\n --spectrum-global-color-yellow-700: var(--spectrum-yellow-700);\n --spectrum-global-color-magenta-400: var(--spectrum-magenta-800);\n --spectrum-global-color-magenta-500: var(--spectrum-magenta-900);\n --spectrum-global-color-magenta-600: var(--spectrum-magenta-1000);\n --spectrum-global-color-magenta-700: var(--spectrum-magenta-1100);\n --spectrum-global-color-fuchsia-400: var(--spectrum-fuchsia-800);\n --spectrum-global-color-fuchsia-500: var(--spectrum-fuchsia-900);\n --spectrum-global-color-fuchsia-600: var(--spectrum-fuchsia-1000);\n --spectrum-global-color-fuchsia-700: var(--spectrum-fuchsia-1100);\n --spectrum-global-color-purple-400: var(--spectrum-purple-800);\n --spectrum-global-color-purple-500: var(--spectrum-purple-900);\n --spectrum-global-color-purple-600: var(--spectrum-purple-1000);\n --spectrum-global-color-purple-700: var(--spectrum-purple-1100);\n --spectrum-global-color-indigo-400: var(--spectrum-indigo-800);\n --spectrum-global-color-indigo-500: var(--spectrum-indigo-900);\n --spectrum-global-color-indigo-600: var(--spectrum-indigo-1000);\n --spectrum-global-color-indigo-700: var(--spectrum-indigo-1100);\n --spectrum-global-color-seafoam-400: var(--spectrum-seafoam-700);\n --spectrum-global-color-seafoam-500: var(--spectrum-seafoam-800);\n --spectrum-global-color-seafoam-600: var(--spectrum-seafoam-900);\n --spectrum-global-color-seafoam-700: var(--spectrum-seafoam-1000);\n --spectrum-global-color-red-400: var(--spectrum-red-800);\n --spectrum-global-color-red-500: var(--spectrum-red-900);\n --spectrum-global-color-red-600: var(--spectrum-red-1000);\n --spectrum-global-color-red-700: var(--spectrum-red-1100);\n --spectrum-global-color-orange-400: var(--spectrum-orange-600);\n --spectrum-global-color-orange-500: var(--spectrum-orange-700);\n --spectrum-global-color-orange-600: var(--spectrum-orange-800);\n --spectrum-global-color-orange-700: var(--spectrum-orange-900);\n --spectrum-global-color-green-400: var(--spectrum-green-800);\n --spectrum-global-color-green-500: var(--spectrum-green-900);\n --spectrum-global-color-green-600: var(--spectrum-green-1000);\n --spectrum-global-color-green-700: var(--spectrum-green-1100);\n --spectrum-global-color-blue-400: var(--spectrum-blue-800);\n --spectrum-global-color-blue-500: var(--spectrum-blue-900);\n --spectrum-global-color-blue-600: var(--spectrum-blue-1000);\n --spectrum-global-color-blue-700: var(--spectrum-blue-1100);\n --spectrum-global-color-gray-50: var(--spectrum-gray-50);\n --spectrum-global-color-gray-75: var(--spectrum-gray-75);\n --spectrum-global-color-gray-100: var(--spectrum-gray-100);\n --spectrum-global-color-gray-200: var(--spectrum-gray-200);\n --spectrum-global-color-gray-300: var(--spectrum-gray-300);\n --spectrum-global-color-gray-400: var(--spectrum-gray-400);\n --spectrum-global-color-gray-500: var(--spectrum-gray-500);\n --spectrum-global-color-gray-600: var(--spectrum-gray-600);\n --spectrum-global-color-gray-700: var(--spectrum-gray-700);\n --spectrum-global-color-gray-800: var(--spectrum-gray-800);\n --spectrum-global-color-gray-900: var(--spectrum-gray-900);\n\n /* v6 aliases */\n --spectrum-accent-color-100: var(--spectrum-blue-100);\n --spectrum-accent-color-200: var(--spectrum-blue-200);\n --spectrum-accent-color-300: var(--spectrum-blue-300);\n --spectrum-accent-color-400: var(--spectrum-blue-400);\n --spectrum-accent-color-500: var(--spectrum-blue-500);\n --spectrum-accent-color-600: var(--spectrum-blue-600);\n --spectrum-accent-color-700: var(--spectrum-blue-700);\n --spectrum-accent-color-800: var(--spectrum-blue-800);\n --spectrum-accent-color-900: var(--spectrum-blue-900);\n --spectrum-accent-color-1000: var(--spectrum-blue-1000);\n --spectrum-accent-color-1100: var(--spectrum-blue-1100);\n --spectrum-accent-color-1200: var(--spectrum-blue-1200);\n --spectrum-accent-color-1300: var(--spectrum-blue-1300);\n --spectrum-accent-color-1400: var(--spectrum-blue-1400);\n\n /* spectrum-colorSemantics.css */\n --spectrum-semantic-negative-color-background: var(--spectrum-negative-background-color-default);\n --spectrum-semantic-negative-color-default: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-hover: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-dark: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-border: var(--spectrum-red-800);\n --spectrum-semantic-negative-color-icon: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-status: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-text-large: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-text-small: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-down: var(--spectrum-red-1100);\n --spectrum-semantic-negative-color-state-focus: var(--spectrum-red-1000);\n --spectrum-semantic-notice-color-background: var(--spectrum-global-color-static-orange-600);\n --spectrum-semantic-notice-color-default: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-dark: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-border: var(--spectrum-orange-600);\n --spectrum-semantic-notice-color-icon: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-status: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-text-large: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-text-small: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-state-down: var(--spectrum-orange-900);\n --spectrum-semantic-notice-color-state-focus: var(--spectrum-orange-600);\n --spectrum-semantic-positive-color-background: var(--spectrum-positive-background-color-default);\n --spectrum-semantic-positive-color-default: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-dark: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-border: var(--spectrum-green-800);\n --spectrum-semantic-positive-color-icon: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-status: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-text-large: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-text-small: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-state-down: var(--spectrum-green-1100);\n --spectrum-semantic-positive-color-state-focus: var(--spectrum-green-800);\n --spectrum-semantic-informative-color-background: var(--spectrum-informative-background-color-default);\n --spectrum-semantic-informative-color-default: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-dark: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-border: var(--spectrum-blue-800);\n --spectrum-semantic-informative-color-icon: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-status: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-text-large: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-text-small: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-state-down: var(--spectrum-blue-1100);\n --spectrum-semantic-informative-color-state-focus: var(--spectrum-blue-800);\n --spectrum-semantic-cta-color-background-default: var(--spectrum-accent-background-color-default);\n --spectrum-semantic-cta-color-background-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-semantic-cta-color-background-down: var(--spectrum-accent-background-color-down);\n --spectrum-semantic-cta-color-background-key-focus: var(--spectrum-accent-background-color-key-focus);\n --spectrum-semantic-background-color-key-focus: var(--spectrum-global-color-static-blue-600);\n --spectrum-semantic-neutral-color-background: var(--spectrum-neutral-subdued-background-color-default);\n --spectrum-semantic-presence-color-1: var(--spectrum-global-color-static-red-500);\n --spectrum-semantic-presence-color-2: var(--spectrum-global-color-static-orange-400);\n --spectrum-semantic-presence-color-3: var(--spectrum-global-color-static-yellow-400);\n --spectrum-semantic-presence-color-4: rgb(75, 204, 162);\n --spectrum-semantic-presence-color-5: rgb(0, 199, 255);\n --spectrum-semantic-presence-color-6: rgb(0, 140, 184);\n --spectrum-semantic-presence-color-7: rgb(126, 75, 243);\n --spectrum-semantic-presence-color-8: var(--spectrum-global-color-static-fuchsia-600);\n\n\n /* spectrum-dimensionGlobals.css */\n --spectrum-global-dimension-static-size-0: 0px;\n --spectrum-global-dimension-static-size-10: 1px;\n --spectrum-global-dimension-static-size-25: 2px;\n --spectrum-global-dimension-static-size-50: 4px;\n --spectrum-global-dimension-static-size-40: 3px;\n --spectrum-global-dimension-static-size-65: 5px;\n --spectrum-global-dimension-static-size-100: 8px;\n --spectrum-global-dimension-static-size-115: 9px;\n --spectrum-global-dimension-static-size-125: 10px;\n --spectrum-global-dimension-static-size-130: 11px;\n --spectrum-global-dimension-static-size-150: 12px;\n --spectrum-global-dimension-static-size-160: 13px;\n --spectrum-global-dimension-static-size-175: 14px;\n --spectrum-global-dimension-static-size-200: 16px;\n --spectrum-global-dimension-static-size-225: 18px;\n --spectrum-global-dimension-static-size-250: 20px;\n --spectrum-global-dimension-static-size-300: 24px;\n --spectrum-global-dimension-static-size-400: 32px;\n --spectrum-global-dimension-static-size-450: 36px;\n --spectrum-global-dimension-static-size-500: 40px;\n --spectrum-global-dimension-static-size-550: 44px;\n --spectrum-global-dimension-static-size-600: 48px;\n --spectrum-global-dimension-static-size-700: 56px;\n --spectrum-global-dimension-static-size-800: 64px;\n --spectrum-global-dimension-static-size-900: 72px;\n --spectrum-global-dimension-static-size-1000: 80px;\n --spectrum-global-dimension-static-size-1200: 96px;\n --spectrum-global-dimension-static-size-1700: 136px;\n --spectrum-global-dimension-static-size-2400: 192px;\n --spectrum-global-dimension-static-size-2600: 208px;\n --spectrum-global-dimension-static-size-3400: 272px;\n --spectrum-global-dimension-static-size-3600: 288px;\n --spectrum-global-dimension-static-size-4600: 368px;\n --spectrum-global-dimension-static-size-5000: 400px;\n --spectrum-global-dimension-static-size-6000: 480px;\n --spectrum-global-dimension-static-font-size-50: 11px;\n --spectrum-global-dimension-static-font-size-75: 12px;\n --spectrum-global-dimension-static-font-size-100: 14px;\n --spectrum-global-dimension-static-font-size-150: 15px;\n --spectrum-global-dimension-static-font-size-200: 16px;\n --spectrum-global-dimension-static-font-size-300: 18px;\n --spectrum-global-dimension-static-font-size-400: 20px;\n --spectrum-global-dimension-static-font-size-500: 22px;\n --spectrum-global-dimension-static-font-size-600: 25px;\n --spectrum-global-dimension-static-font-size-700: 28px;\n --spectrum-global-dimension-static-font-size-800: 32px;\n --spectrum-global-dimension-static-font-size-900: 36px;\n --spectrum-global-dimension-static-font-size-1000: 40px;\n --spectrum-global-dimension-static-percent-50: 50%;\n --spectrum-global-dimension-static-percent-100: 100%;\n --spectrum-global-dimension-static-breakpoint-xsmall: 304px;\n --spectrum-global-dimension-static-breakpoint-small: 768px;\n --spectrum-global-dimension-static-breakpoint-medium: 1280px;\n --spectrum-global-dimension-static-breakpoint-large: 1768px;\n --spectrum-global-dimension-static-breakpoint-xlarge: 2160px;\n --spectrum-global-dimension-static-grid-columns: 12;\n --spectrum-global-dimension-static-grid-fluid-width: 100%;\n --spectrum-global-dimension-static-grid-fixed-max-width: 1280px;\n\n\n /* spectrum-fontGlobals.css */\n --spectrum-global-font-family-base: adobe-clean, 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Trebuchet MS', 'Lucida Grande', sans-serif;\n --spectrum-global-font-family-serif: adobe-clean-serif, 'Source Serif Pro', Georgia, serif;\n --spectrum-global-font-family-code: 'Source Code Pro', Monaco, monospace;\n --spectrum-global-font-weight-thin: 100;\n --spectrum-global-font-weight-ultra-light: 200;\n --spectrum-global-font-weight-light: 300;\n --spectrum-global-font-weight-regular: 400;\n --spectrum-global-font-weight-medium: 500;\n --spectrum-global-font-weight-semi-bold: 600;\n --spectrum-global-font-weight-bold: 700;\n --spectrum-global-font-weight-extra-bold: 800;\n --spectrum-global-font-weight-black: 900;\n --spectrum-global-font-style-regular: normal;\n --spectrum-global-font-style-italic: italic;\n --spectrum-global-font-letter-spacing-none: 0;\n --spectrum-global-font-letter-spacing-small: 0.0125em;\n --spectrum-global-font-letter-spacing-han: 0.05em;\n --spectrum-global-font-letter-spacing-medium: 0.06em;\n --spectrum-global-font-line-height-large: 1.7;\n --spectrum-global-font-line-height-medium: 1.5;\n --spectrum-global-font-line-height-small: 1.3;\n --spectrum-global-font-multiplier-25: 0.25em;\n --spectrum-global-font-multiplier-75: 0.75em;\n\n\n /* spectrum-staticAliases.css */\n --spectrum-alias-border-size-thin: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-size-thick: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-size-thicker: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-size-thickest: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-input-border-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-offset-thin: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-offset-thick: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-offset-thicker: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-border-offset-thickest: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-baseline: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-grid-gutter-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-gutter-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-gutter-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-gutter-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-gutter-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-margin-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-margin-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-margin-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-margin-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-margin-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-layout-region-margin-bottom-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-layout-region-margin-bottom-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-layout-region-margin-bottom-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-layout-region-margin-bottom-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-layout-region-margin-bottom-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-radial-reaction-size-default: var(--spectrum-global-dimension-static-size-550);\n --spectrum-alias-font-family-ar: var(--spectrum-global-font-font-family-ar);\n --spectrum-alias-font-family-he: var(--spectrum-global-font-font-family-he);\n --spectrum-alias-font-family-zh: var(--spectrum-global-font-font-family-zh);\n --spectrum-alias-font-family-zhhans: var(--spectrum-global-font-font-family-zhhans);\n --spectrum-alias-font-family-ko: var(--spectrum-global-font-font-family-ko);\n --spectrum-alias-font-family-ja: var(--spectrum-global-font-font-family-ja);\n --spectrum-alias-font-family-condensed: var(--spectrum-global-font-font-family-condensed);\n --spectrum-alias-line-height-body: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-line-height-title: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-body-han-text-line-height: var(--spectrum-global-font-line-height-large);\n --spectrum-alias-body-text-font-family: var(--spectrum-global-font-family-base);\n --spectrum-alias-body-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-body-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-button-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-han-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-detail-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-detail-text-font-weight-light: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-serif-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-detail-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-font-family: var(--spectrum-global-font-family-code);\n --spectrum-alias-han-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-quiet-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-light: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-light-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-light-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-body-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-body-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-subheading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-subheading-text-font-weight-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-detail-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-code-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-code-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-margin-bottom: var(--spectrum-global-font-multiplier-25);\n --spectrum-alias-body-margin-bottom: var(--spectrum-global-font-multiplier-75);\n --spectrum-alias-focus-ring-gap: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-gap: var(--spectrum-global-dimension-static-size-0);\n --spectrum-alias-focus-ring-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-loupe-entry-animation-duration: var(--spectrum-global-animation-duration-300);\n --spectrum-alias-loupe-exit-animation-duration: var(--spectrum-global-animation-duration-300);\n}\n\n.spectrum--medium,\n.spectrum--large {\n /* spectrum-dimensionAliases.css */\n --spectrum-alias-dropshadow-blur: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-dropshadow-offset-y: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-font-size-default: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-line-height-small: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-line-height-medium: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-line-height-large: var(--spectrum-global-dimension-size-300);\n --spectrum-alias-line-height-xlarge: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-line-height-xxlarge: var(--spectrum-global-dimension-size-600);\n --spectrum-alias-layout-label-gap-size: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-pill-button-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-pill-button-text-baseline: var(--spectrum-global-dimension-static-size-150);\n --spectrum-alias-border-radius-xsmall: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-border-radius-small: var(--spectrum-global-dimension-size-25);\n --spectrum-alias-border-radius-regular: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-border-radius-medium: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-border-radius-large: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-single-line-height: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-single-line-width: var(--spectrum-global-dimension-size-2400);\n --spectrum-alias-workflow-icon-size: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-heading-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-han-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display2-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-xxl-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-display2-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xxl-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-xxl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xxl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading1-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-xl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xl-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-han-xl-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-l-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-l-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-han-l-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-han-l-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-m-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-m-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-han-m-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-han-m-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-s-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-s-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-xs-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xs-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xxs-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-heading-xxs-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-avatar-size-50: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-avatar-size-75: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-avatar-size-200: var(--spectrum-global-dimension-size-275);\n --spectrum-alias-avatar-size-300: var(--spectrum-global-dimension-size-325);\n --spectrum-alias-avatar-size-500: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-avatar-size-700: var(--spectrum-global-dimension-size-500);\n}\n\n.spectrum--darkest,\n.spectrum--dark,\n.spectrum--light,\n.spectrum--lightest {\n /* spectrum-colorAliases.css */\n --spectrum-alias-background-color-default: var(--spectrum-gray-100);\n --spectrum-alias-background-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-background-color-transparent: transparent;\n --spectrum-alias-background-color-label-gray: rgb(112, 112, 112);\n --spectrum-alias-background-color-quickactions-overlay: rgba(0,0,0,0.2);\n --spectrum-alias-placeholder-text-color: var(--spectrum-gray-800);\n --spectrum-alias-placeholder-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-selected: var(--spectrum-gray-800);\n --spectrum-alias-label-text-color: var(--spectrum-gray-700);\n --spectrum-alias-text-color: var(--spectrum-gray-800);\n --spectrum-alias-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-text-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-mouse-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-text-color-invalid: var(--spectrum-red-900);\n --spectrum-alias-text-color-selected: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-title-text-color: var(--spectrum-gray-900);\n --spectrum-alias-heading-text-color: var(--spectrum-gray-900);\n --spectrum-alias-border-color: var(--spectrum-gray-500);\n --spectrum-alias-border-color-hover: var(--spectrum-gray-600);\n --spectrum-alias-border-color-down: var(--spectrum-gray-600);\n --spectrum-alias-border-color-focus: var(--spectrum-blue-800);\n --spectrum-alias-input-border-color-key-focus: var(--spectrum-alias-border-color-focus);\n --spectrum-alias-border-color-mouse-focus: var(--spectrum-blue-900);\n --spectrum-alias-border-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-border-color-extralight: var(--spectrum-gray-100);\n --spectrum-alias-border-color-light: var(--spectrum-gray-200);\n --spectrum-alias-border-color-mid: var(--spectrum-gray-300);\n --spectrum-alias-border-color-dark: var(--spectrum-gray-400);\n --spectrum-alias-border-color-transparent: transparent;\n --spectrum-alias-border-color-translucent-dark: rgba(0,0,0,0.05);\n --spectrum-alias-border-color-translucent-darker: rgba(0,0,0,0.1);\n --spectrum-alias-focus-color: var(--spectrum-blue-800);\n --spectrum-alias-focus-ring-color: var(--spectrum-alias-focus-color);\n --spectrum-alias-track-color-default: var(--spectrum-gray-300);\n --spectrum-alias-track-color-disabled: var(--spectrum-gray-300);\n --spectrum-alias-track-color-over-background: rgba(255,255,255,0.2);\n --spectrum-alias-icon-color: var(--spectrum-gray-700);\n --spectrum-alias-icon-color-over-background: var(--spectrum-global-color-static-white);\n --spectrum-alias-icon-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-down: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-focus: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-icon-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-selected: var(--spectrum-blue-900);\n --spectrum-alias-icon-color-selected-hover: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-selected-down: var(--spectrum-blue-1100);\n --spectrum-alias-icon-color-selected-focus: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-error: var(--spectrum-red-800);\n --spectrum-alias-toolbar-background-color: var(--spectrum-gray-100);\n --spectrum-alias-colorhandle-outer-border-color: rgba(0,0,0,0.42);\n --spectrum-alias-categorical-color-1: var(--spectrum-global-color-static-seafoam-200);\n --spectrum-alias-categorical-color-2: var(--spectrum-global-color-static-indigo-700);\n --spectrum-alias-categorical-color-3: var(--spectrum-global-color-static-orange-500);\n --spectrum-alias-categorical-color-4: var(--spectrum-global-color-static-magenta-500);\n --spectrum-alias-categorical-color-5: var(--spectrum-global-color-static-indigo-200);\n --spectrum-alias-categorical-color-6: var(--spectrum-global-color-static-celery-200);\n --spectrum-alias-categorical-color-7: var(--spectrum-global-color-static-blue-500);\n --spectrum-alias-categorical-color-8: var(--spectrum-global-color-static-purple-800);\n --spectrum-alias-categorical-color-9: var(--spectrum-global-color-static-yellow-500);\n --spectrum-alias-categorical-color-10: var(--spectrum-global-color-static-orange-700);\n --spectrum-alias-categorical-color-11: var(--spectrum-global-color-static-green-600);\n --spectrum-alias-categorical-color-12: var(--spectrum-global-color-static-chartreuse-300);\n --spectrum-alias-categorical-color-13: var(--spectrum-global-color-static-blue-200);\n --spectrum-alias-categorical-color-14: var(--spectrum-global-color-static-fuchsia-500);\n --spectrum-alias-categorical-color-15: var(--spectrum-global-color-static-magenta-200);\n --spectrum-alias-categorical-color-16: var(--spectrum-global-color-static-yellow-200);\n\n --spectrum-alias-toggle-color-default: var(--spectrum-gray-600);\n --spectrum-alias-toggle-color-hover: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-key-focus: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected-hover: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-key-focus: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-down: var(--spectrum-gray-900);\n\n --spectrum-actionbutton-background-color-disabled: transparent;\n --spectrum-actionbutton-border-color-disabled: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-quiet-background-color-hover: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-key-focus: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-down: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-static-black-border-color: rgba(0, 0, 0, 0.4);\n --spectrum-actionbutton-static-black-border-color-hover: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-key-focus: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-down: rgba(0, 0, 0, 0.7);\n --spectrum-actionbutton-static-black-border-color-disabled: rgba(0, 0, 0, 0.25);\n --spectrum-actionbutton-static-black-border-color-selected-disabled: rgba(0, 0, 0, 0.1);\n --spectrum-actionbutton-static-black-background-color: transparent;\n --spectrum-actionbutton-static-black-background-color-disabled: transparent;\n\n --spectrum-actionbutton-static-white-border-color: rgba(255, 255, 255, 0.4);\n --spectrum-actionbutton-static-white-border-color-hover: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-key-focus: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-down: rgba(255, 255, 255, 0.7);\n --spectrum-actionbutton-static-white-border-color-disabled: rgba(255, 255, 255, 0.25);\n --spectrum-actionbutton-static-white-border-color-selected-disabled: rgba(255, 255, 255, 0.1);\n --spectrum-actionbutton-static-white-background-color: transparent;\n --spectrum-actionbutton-static-white-background-color-disabled: transparent;\n\n --spectrum-combobox-fieldbutton-inset: 0;\n --spectrum-combobox-fieldbutton-border-left-width: var(--spectrum-alias-input-border-size);\n --spectrum-combobox-fieldbutton-focus-ring-border-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius);\n --spectrum-combobox-fieldbutton-start-border-radius: 0;\n --spectrum-combobox-fieldbutton-end-border-radius: var(--spectrum-alias-border-radius-regular);\n\n --spectrum-actiongroup-compact-button-gap: calc(-1 * var(--spectrum-actionbutton-border-size));\n\n --spectrum-tooltip-background-color: var(--spectrum-neutral-subdued-background-color-default);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--large {\n --spectrum-global-dimension-scale-factor: 1.25;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 4px;\n --spectrum-global-dimension-size-50: 5px;\n --spectrum-global-dimension-size-65: 6px;\n --spectrum-global-dimension-size-75: 8px;\n --spectrum-global-dimension-size-85: 9px;\n --spectrum-global-dimension-size-100: 10px;\n --spectrum-global-dimension-size-115: 11px;\n --spectrum-global-dimension-size-125: 13px;\n --spectrum-global-dimension-size-130: 14px;\n --spectrum-global-dimension-size-150: 15px;\n --spectrum-global-dimension-size-160: 16px;\n --spectrum-global-dimension-size-175: 18px;\n --spectrum-global-dimension-size-200: 20px;\n --spectrum-global-dimension-size-225: 22px;\n --spectrum-global-dimension-size-250: 25px;\n --spectrum-global-dimension-size-275: 28px;\n --spectrum-global-dimension-size-300: 30px;\n --spectrum-global-dimension-size-325: 32px;\n --spectrum-global-dimension-size-350: 35px;\n --spectrum-global-dimension-size-400: 40px;\n --spectrum-global-dimension-size-450: 45px;\n --spectrum-global-dimension-size-500: 50px;\n --spectrum-global-dimension-size-550: 56px;\n --spectrum-global-dimension-size-600: 60px;\n --spectrum-global-dimension-size-675: 68px;\n --spectrum-global-dimension-size-700: 70px;\n --spectrum-global-dimension-size-800: 80px;\n --spectrum-global-dimension-size-900: 90px;\n --spectrum-global-dimension-size-1000: 100px;\n --spectrum-global-dimension-size-1200: 120px;\n --spectrum-global-dimension-size-1250: 125px;\n --spectrum-global-dimension-size-1600: 160px;\n --spectrum-global-dimension-size-1700: 170px;\n --spectrum-global-dimension-size-2000: 200px;\n --spectrum-global-dimension-size-2400: 240px;\n --spectrum-global-dimension-size-3000: 300px;\n --spectrum-global-dimension-size-3400: 340px;\n --spectrum-global-dimension-size-3600: 360px;\n --spectrum-global-dimension-size-4600: 460px;\n --spectrum-global-dimension-size-5000: 500px;\n --spectrum-global-dimension-size-6000: 600px;\n --spectrum-global-dimension-font-size-25: 12px;\n --spectrum-global-dimension-font-size-50: 13px;\n --spectrum-global-dimension-font-size-75: 15px;\n --spectrum-global-dimension-font-size-100: 17px;\n --spectrum-global-dimension-font-size-150: 18px;\n --spectrum-global-dimension-font-size-200: 19px;\n --spectrum-global-dimension-font-size-300: 22px;\n --spectrum-global-dimension-font-size-400: 24px;\n --spectrum-global-dimension-font-size-500: 27px;\n --spectrum-global-dimension-font-size-600: 31px;\n --spectrum-global-dimension-font-size-700: 34px;\n --spectrum-global-dimension-font-size-800: 39px;\n --spectrum-global-dimension-font-size-900: 44px;\n --spectrum-global-dimension-font-size-1000: 49px;\n --spectrum-global-dimension-font-size-1100: 55px;\n --spectrum-global-dimension-font-size-1200: 62px;\n --spectrum-global-dimension-font-size-1300: 70px;\n --spectrum-alias-avatar-size-100: 26px;\n --spectrum-alias-avatar-size-400: 36px;\n --spectrum-alias-avatar-size-600: 46px;\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-barloader-large-border-radius: 4px;\n --spectrum-barloader-large-indeterminate-border-radius: 4px;\n --spectrum-barloader-large-over-background-border-radius: 4px;\n --spectrum-barloader-small-border-radius: 3px;\n --spectrum-barloader-small-indeterminate-border-radius: 3px;\n --spectrum-barloader-small-over-background-border-radius: 3px;\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-cta-min-width: 90px;\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-over-background-min-width: 90px;\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-primary-min-width: 90px;\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-over-background-min-width: 90px;\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-primary-min-width: 90px;\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-secondary-min-width: 90px;\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-warning-min-width: 90px;\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-secondary-min-width: 90px;\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-warning-min-width: 90px;\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-small-border-size: 3px;\n --spectrum-circleloader-small-over-background-border-size: 3px;\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-85);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-static-size-2600);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-85);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-icon-arrow-down-small-height: 12px;\n --spectrum-icon-arrow-left-medium-height: 12px;\n --spectrum-icon-checkmark-medium-width: 16px;\n --spectrum-icon-checkmark-medium-height: 16px;\n --spectrum-icon-checkmark-small-width: 12px;\n --spectrum-icon-checkmark-small-height: 12px;\n --spectrum-icon-chevron-down-medium-width: 12px;\n --spectrum-icon-chevron-left-large-width: 16px;\n --spectrum-icon-chevron-left-medium-height: 12px;\n --spectrum-icon-chevron-right-large-width: 16px;\n --spectrum-icon-chevron-right-medium-height: 12px;\n --spectrum-icon-cross-large-width: 16px;\n --spectrum-icon-cross-large-height: 16px;\n --spectrum-icon-dash-small-width: 12px;\n --spectrum-icon-dash-small-height: 12px;\n --spectrum-icon-skip-left-width: 10px;\n --spectrum-icon-skip-left-height: 12px;\n --spectrum-icon-skip-right-width: 10px;\n --spectrum-icon-skip-right-height: 12px;\n --spectrum-icon-triplegripper-width: 12px;\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-600);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-600);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin).\n */\n --spectrum-selectlist-option-padding-height: var(--spectrum-global-dimension-static-size-160);\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-loader-bar-large-border-radius: 4px;\n --spectrum-loader-bar-large-over-background-border-radius: 4px;\n --spectrum-loader-bar-small-border-radius: 3px;\n --spectrum-loader-bar-small-over-background-border-radius: 3px;\n --spectrum-loader-circle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-small-border-size: 3px;\n --spectrum-loader-circle-small-over-background-border-size: 3px;\n --spectrum-meter-large-border-radius: 4px;\n --spectrum-meter-small-border-radius: 3px;\n --spectrum-pagination-page-button-line-height: 32px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 8px;\n --spectrum-overlay-negative-transform-distance: -8px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progressbar-large-border-radius: 4px;\n --spectrum-progressbar-large-indeterminate-border-radius: 4px;\n --spectrum-progressbar-large-over-background-border-radius: 4px;\n --spectrum-progressbar-small-border-radius: 3px;\n --spectrum-progressbar-small-indeterminate-border-radius: 3px;\n --spectrum-progressbar-small-over-background-border-radius: 3px;\n --spectrum-progresscircle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-small-border-size: 3px;\n --spectrum-progresscircle-small-indeterminate-border-size: 3px;\n --spectrum-progresscircle-small-over-background-border-size: 3px;\n --spectrum-progresscircle-medium-indeterminate-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-icon-width: 30px;\n --spectrum-rating-indicator-width: 20px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-emphasized-icon-width: 30px;\n --spectrum-rating-emphasized-indicator-width: 20px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-quiet-icon-width: 30px;\n --spectrum-rating-quiet-indicator-width: 20px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-sidenav-item-touch-hit-bottom: 3px;\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: 3px;\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-handle-border-radius: 9px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 18px;\n --spectrum-switch-handle-transform-x-rtl: -18px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-emphasized-handle-border-radius: 9px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-quiet-handle-border-radius: 9px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tabs-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-margin-left: -11px;\n --spectrum-tabs-compact-margin-right: -11px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-focus-ring-border-radius: 6px;\n --spectrum-tabs-margin-left: -11px;\n --spectrum-tabs-margin-right: -11px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-emphasized-margin-left: -11px;\n --spectrum-tabs-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-margin-left: -11px;\n --spectrum-tabs-quiet-margin-right: -11px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-margin-left: -11px;\n --spectrum-tabs-quiet-compact-margin-right: -11px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-vertical-focus-ring-border-radius: 6px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tooltip-padding-bottom: 6px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 6px;\n --spectrum-tooltip-info-content-max-width: 126px;\n --spectrum-tooltip-negative-padding-bottom: 6px;\n --spectrum-tooltip-negative-content-max-width: 126px;\n --spectrum-tooltip-positive-padding-bottom: 6px;\n --spectrum-tooltip-positive-content-max-width: 126px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--light {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(255, 255, 255);\n --spectrum-gray-75: rgb(253, 253, 253);\n --spectrum-gray-100: rgb(248, 248, 248);\n --spectrum-gray-200: rgb(230, 230, 230);\n --spectrum-gray-300: rgb(213, 213, 213);\n --spectrum-gray-400: rgb(177, 177, 177);\n --spectrum-gray-500: rgb(144, 144, 144);\n --spectrum-gray-600: rgb(109, 109, 109);\n --spectrum-gray-700: rgb(70, 70, 70);\n --spectrum-gray-800: rgb(34, 34, 34);\n --spectrum-gray-900: rgb(0, 0, 0);\n --spectrum-red-100: rgb(255, 235, 231);\n --spectrum-red-200: rgb(255, 221, 214);\n --spectrum-red-300: rgb(255, 205, 195);\n --spectrum-red-400: rgb(255, 183, 169);\n --spectrum-red-500: rgb(255, 155, 136);\n --spectrum-red-600: rgb(255, 124, 101);\n --spectrum-red-700: rgb(247, 92, 70);\n --spectrum-red-800: rgb(234, 56, 41);\n --spectrum-red-900: rgb(211, 21, 16);\n --spectrum-red-1000: rgb(180, 0, 0);\n --spectrum-red-1100: rgb(147, 0, 0);\n --spectrum-red-1200: rgb(116, 0, 0);\n --spectrum-red-1300: rgb(89, 0, 0);\n --spectrum-red-1400: rgb(67, 0, 0);\n --spectrum-orange-100: rgb(255, 236, 204);\n --spectrum-orange-200: rgb(255, 223, 173);\n --spectrum-orange-300: rgb(253, 210, 145);\n --spectrum-orange-400: rgb(255, 187, 99);\n --spectrum-orange-500: rgb(255, 160, 55);\n --spectrum-orange-600: rgb(246, 133, 17);\n --spectrum-orange-700: rgb(228, 111, 0);\n --spectrum-orange-800: rgb(203, 93, 0);\n --spectrum-orange-900: rgb(177, 76, 0);\n --spectrum-orange-1000: rgb(149, 61, 0);\n --spectrum-orange-1100: rgb(122, 47, 0);\n --spectrum-orange-1200: rgb(97, 35, 0);\n --spectrum-orange-1300: rgb(73, 25, 1);\n --spectrum-orange-1400: rgb(53, 18, 1);\n --spectrum-yellow-100: rgb(251, 241, 152);\n --spectrum-yellow-200: rgb(248, 231, 80);\n --spectrum-yellow-300: rgb(248, 217, 4);\n --spectrum-yellow-400: rgb(232, 198, 0);\n --spectrum-yellow-500: rgb(215, 179, 0);\n --spectrum-yellow-600: rgb(196, 159, 0);\n --spectrum-yellow-700: rgb(176, 140, 0);\n --spectrum-yellow-800: rgb(155, 120, 0);\n --spectrum-yellow-900: rgb(133, 102, 0);\n --spectrum-yellow-1000: rgb(112, 83, 0);\n --spectrum-yellow-1100: rgb(91, 67, 0);\n --spectrum-yellow-1200: rgb(72, 51, 0);\n --spectrum-yellow-1300: rgb(54, 37, 0);\n --spectrum-yellow-1400: rgb(40, 26, 0);\n --spectrum-chartreuse-100: rgb(219, 252, 110);\n --spectrum-chartreuse-200: rgb(203, 244, 67);\n --spectrum-chartreuse-300: rgb(188, 233, 42);\n --spectrum-chartreuse-400: rgb(170, 216, 22);\n --spectrum-chartreuse-500: rgb(152, 197, 10);\n --spectrum-chartreuse-600: rgb(135, 177, 3);\n --spectrum-chartreuse-700: rgb(118, 156, 0);\n --spectrum-chartreuse-800: rgb(103, 136, 0);\n --spectrum-chartreuse-900: rgb(87, 116, 0);\n --spectrum-chartreuse-1000: rgb(72, 96, 0);\n --spectrum-chartreuse-1100: rgb(58, 77, 0);\n --spectrum-chartreuse-1200: rgb(44, 59, 0);\n --spectrum-chartreuse-1300: rgb(33, 44, 0);\n --spectrum-chartreuse-1400: rgb(24, 31, 0);\n --spectrum-celery-100: rgb(205, 252, 191);\n --spectrum-celery-200: rgb(174, 246, 157);\n --spectrum-celery-300: rgb(150, 238, 133);\n --spectrum-celery-400: rgb(114, 224, 106);\n --spectrum-celery-500: rgb(78, 207, 80);\n --spectrum-celery-600: rgb(39, 187, 54);\n --spectrum-celery-700: rgb(7, 167, 33);\n --spectrum-celery-800: rgb(0, 145, 18);\n --spectrum-celery-900: rgb(0, 124, 15);\n --spectrum-celery-1000: rgb(0, 103, 15);\n --spectrum-celery-1100: rgb(0, 83, 13);\n --spectrum-celery-1200: rgb(0, 64, 10);\n --spectrum-celery-1300: rgb(0, 48, 7);\n --spectrum-celery-1400: rgb(0, 34, 5);\n --spectrum-green-100: rgb(206, 248, 224);\n --spectrum-green-200: rgb(173, 244, 206);\n --spectrum-green-300: rgb(137, 236, 188);\n --spectrum-green-400: rgb(103, 222, 168);\n --spectrum-green-500: rgb(73, 204, 147);\n --spectrum-green-600: rgb(47, 184, 128);\n --spectrum-green-700: rgb(21, 164, 110);\n --spectrum-green-800: rgb(0, 143, 93);\n --spectrum-green-900: rgb(0, 122, 77);\n --spectrum-green-1000: rgb(0, 101, 62);\n --spectrum-green-1100: rgb(0, 81, 50);\n --spectrum-green-1200: rgb(5, 63, 39);\n --spectrum-green-1300: rgb(10, 46, 29);\n --spectrum-green-1400: rgb(10, 32, 21);\n --spectrum-seafoam-100: rgb(206, 247, 243);\n --spectrum-seafoam-200: rgb(170, 241, 234);\n --spectrum-seafoam-300: rgb(140, 233, 226);\n --spectrum-seafoam-400: rgb(101, 218, 210);\n --spectrum-seafoam-500: rgb(63, 201, 193);\n --spectrum-seafoam-600: rgb(15, 181, 174);\n --spectrum-seafoam-700: rgb(0, 161, 154);\n --spectrum-seafoam-800: rgb(0, 140, 135);\n --spectrum-seafoam-900: rgb(0, 119, 114);\n --spectrum-seafoam-1000: rgb(0, 99, 95);\n --spectrum-seafoam-1100: rgb(12, 79, 76);\n --spectrum-seafoam-1200: rgb(18, 60, 58);\n --spectrum-seafoam-1300: rgb(18, 44, 43);\n --spectrum-seafoam-1400: rgb(15, 31, 30);\n --spectrum-cyan-100: rgb(197, 248, 255);\n --spectrum-cyan-200: rgb(164, 240, 255);\n --spectrum-cyan-300: rgb(136, 231, 250);\n --spectrum-cyan-400: rgb(96, 216, 243);\n --spectrum-cyan-500: rgb(51, 197, 232);\n --spectrum-cyan-600: rgb(18, 176, 218);\n --spectrum-cyan-700: rgb(1, 156, 200);\n --spectrum-cyan-800: rgb(0, 134, 180);\n --spectrum-cyan-900: rgb(0, 113, 159);\n --spectrum-cyan-1000: rgb(0, 93, 137);\n --spectrum-cyan-1100: rgb(0, 74, 115);\n --spectrum-cyan-1200: rgb(0, 57, 93);\n --spectrum-cyan-1300: rgb(0, 42, 70);\n --spectrum-cyan-1400: rgb(0, 30, 51);\n --spectrum-blue-100: rgb(224, 242, 255);\n --spectrum-blue-200: rgb(202, 232, 255);\n --spectrum-blue-300: rgb(181, 222, 255);\n --spectrum-blue-400: rgb(150, 206, 253);\n --spectrum-blue-500: rgb(120, 187, 250);\n --spectrum-blue-600: rgb(89, 167, 246);\n --spectrum-blue-700: rgb(56, 146, 243);\n --spectrum-blue-800: rgb(20, 122, 243);\n --spectrum-blue-900: rgb(2, 101, 220);\n --spectrum-blue-1000: rgb(0, 84, 182);\n --spectrum-blue-1100: rgb(0, 68, 145);\n --spectrum-blue-1200: rgb(0, 53, 113);\n --spectrum-blue-1300: rgb(0, 39, 84);\n --spectrum-blue-1400: rgb(0, 28, 60);\n --spectrum-indigo-100: rgb(237, 238, 255);\n --spectrum-indigo-200: rgb(224, 226, 255);\n --spectrum-indigo-300: rgb(211, 213, 255);\n --spectrum-indigo-400: rgb(193, 196, 255);\n --spectrum-indigo-500: rgb(172, 175, 255);\n --spectrum-indigo-600: rgb(149, 153, 255);\n --spectrum-indigo-700: rgb(126, 132, 252);\n --spectrum-indigo-800: rgb(104, 109, 244);\n --spectrum-indigo-900: rgb(82, 88, 228);\n --spectrum-indigo-1000: rgb(64, 70, 202);\n --spectrum-indigo-1100: rgb(50, 54, 168);\n --spectrum-indigo-1200: rgb(38, 41, 134);\n --spectrum-indigo-1300: rgb(27, 30, 100);\n --spectrum-indigo-1400: rgb(20, 22, 72);\n --spectrum-purple-100: rgb(246, 235, 255);\n --spectrum-purple-200: rgb(238, 221, 255);\n --spectrum-purple-300: rgb(230, 208, 255);\n --spectrum-purple-400: rgb(219, 187, 254);\n --spectrum-purple-500: rgb(204, 164, 253);\n --spectrum-purple-600: rgb(189, 139, 252);\n --spectrum-purple-700: rgb(174, 114, 249);\n --spectrum-purple-800: rgb(157, 87, 244);\n --spectrum-purple-900: rgb(137, 61, 231);\n --spectrum-purple-1000: rgb(115, 38, 211);\n --spectrum-purple-1100: rgb(93, 19, 183);\n --spectrum-purple-1200: rgb(71, 12, 148);\n --spectrum-purple-1300: rgb(51, 16, 106);\n --spectrum-purple-1400: rgb(35, 15, 73);\n --spectrum-fuchsia-100: rgb(255, 233, 252);\n --spectrum-fuchsia-200: rgb(255, 218, 250);\n --spectrum-fuchsia-300: rgb(254, 199, 248);\n --spectrum-fuchsia-400: rgb(251, 174, 246);\n --spectrum-fuchsia-500: rgb(245, 146, 243);\n --spectrum-fuchsia-600: rgb(237, 116, 237);\n --spectrum-fuchsia-700: rgb(224, 85, 226);\n --spectrum-fuchsia-800: rgb(205, 58, 206);\n --spectrum-fuchsia-900: rgb(182, 34, 183);\n --spectrum-fuchsia-1000: rgb(157, 3, 158);\n --spectrum-fuchsia-1100: rgb(128, 0, 129);\n --spectrum-fuchsia-1200: rgb(100, 6, 100);\n --spectrum-fuchsia-1300: rgb(71, 14, 70);\n --spectrum-fuchsia-1400: rgb(50, 13, 49);\n --spectrum-magenta-100: rgb(255, 234, 241);\n --spectrum-magenta-200: rgb(255, 220, 232);\n --spectrum-magenta-300: rgb(255, 202, 221);\n --spectrum-magenta-400: rgb(255, 178, 206);\n --spectrum-magenta-500: rgb(255, 149, 189);\n --spectrum-magenta-600: rgb(250, 119, 170);\n --spectrum-magenta-700: rgb(239, 90, 152);\n --spectrum-magenta-800: rgb(222, 61, 130);\n --spectrum-magenta-900: rgb(200, 34, 105);\n --spectrum-magenta-1000: rgb(173, 9, 85);\n --spectrum-magenta-1100: rgb(142, 0, 69);\n --spectrum-magenta-1200: rgb(112, 0, 55);\n --spectrum-magenta-1300: rgb(84, 3, 42);\n --spectrum-magenta-1400: rgb(60, 6, 29);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.4);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.15);\n --spectrum-alias-background-color-hover-overlay: rgba(0,0,0,0.04);\n --spectrum-alias-highlight-hover: rgba(0,0,0,0.06);\n --spectrum-alias-highlight-active: rgba(44,44,44,0.1);\n --spectrum-alias-highlight-selected: rgba(2,101,220,0.1);\n --spectrum-alias-highlight-selected-hover: rgba(2,101,220,0.2);\n --spectrum-alias-highlight-invalid: rgba(211, 21, 16, 0.15); /* matches red-900 */\n --spectrum-alias-text-highlight-color: rgba(2,101,220,0.2);\n --spectrum-alias-background-color-quickactions: rgba(248,248,248,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(34,34,34,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-300);\n --spectrum-colorarea-border-color: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(20,115,230,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(20,115,230,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(34,34,34,0.02);\n --spectrum-well-border-color: rgba(0,0,0,0.05);\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-50);\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: rgb(118, 118, 118); /* 4.54:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-900);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-1100);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-1000);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-800);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-900);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-600);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-700);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-800);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-700);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-900);\n --spectrum-negative-background-color-hover: var(--spectrum-red-1000);\n --spectrum-negative-background-color-down: var(--spectrum-red-1100);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-1000);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-900);\n --spectrum-positive-background-color-hover: var(--spectrum-green-1000);\n --spectrum-positive-background-color-down: var(--spectrum-green-1100);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-1000);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-900);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-1000);\n --spectrum-informative-background-color-down: var(--spectrum-blue-1100);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-1000);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-600);\n --spectrum-orange-background-color-default: var(--spectrum-orange-600);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-400);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-500);\n --spectrum-celery-background-color-default: var(--spectrum-celery-600);\n --spectrum-green-background-color-default: var(--spectrum-green-900);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-900);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-900);\n --spectrum-blue-background-color-default: var(--spectrum-blue-900);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-900);\n --spectrum-purple-background-color-default: var(--spectrum-purple-900);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-900);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-900);\n\n --spectrum-negative-visual-color: var(--spectrum-red-800);\n --spectrum-positive-visual-color: var(--spectrum-green-700);\n --spectrum-notice-visual-color: var(--spectrum-orange-700);\n --spectrum-informative-visual-color: var(--spectrum-blue-800);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-500);\n --spectrum-red-visual-color: var(--spectrum-red-800);\n --spectrum-orange-visual-color: var(--spectrum-orange-700);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-600);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-600);\n --spectrum-celery-visual-color: var(--spectrum-celery-700);\n --spectrum-green-visual-color: var(--spectrum-green-700);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-700);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-600);\n --spectrum-blue-visual-color: var(--spectrum-blue-800);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-800);\n --spectrum-purple-visual-color: var(--spectrum-purple-800);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-800);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-800);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--medium {\n --spectrum-global-dimension-scale-factor: 1;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 3px;\n --spectrum-global-dimension-size-50: 4px;\n --spectrum-global-dimension-size-65: 5px;\n --spectrum-global-dimension-size-75: 6px;\n --spectrum-global-dimension-size-85: 7px;\n --spectrum-global-dimension-size-100: 8px;\n --spectrum-global-dimension-size-115: 9px;\n --spectrum-global-dimension-size-125: 10px;\n --spectrum-global-dimension-size-130: 11px;\n --spectrum-global-dimension-size-150: 12px;\n --spectrum-global-dimension-size-160: 13px;\n --spectrum-global-dimension-size-175: 14px;\n --spectrum-global-dimension-size-200: 16px;\n --spectrum-global-dimension-size-225: 18px;\n --spectrum-global-dimension-size-250: 20px;\n --spectrum-global-dimension-size-275: 22px;\n --spectrum-global-dimension-size-300: 24px;\n --spectrum-global-dimension-size-325: 26px;\n --spectrum-global-dimension-size-350: 28px;\n --spectrum-global-dimension-size-400: 32px;\n --spectrum-global-dimension-size-450: 36px;\n --spectrum-global-dimension-size-500: 40px;\n --spectrum-global-dimension-size-550: 44px;\n --spectrum-global-dimension-size-600: 48px;\n --spectrum-global-dimension-size-675: 54px;\n --spectrum-global-dimension-size-700: 56px;\n --spectrum-global-dimension-size-800: 64px;\n --spectrum-global-dimension-size-900: 72px;\n --spectrum-global-dimension-size-1000: 80px;\n --spectrum-global-dimension-size-1200: 96px;\n --spectrum-global-dimension-size-1250: 100px;\n --spectrum-global-dimension-size-1600: 128px;\n --spectrum-global-dimension-size-1700: 136px;\n --spectrum-global-dimension-size-2000: 160px;\n --spectrum-global-dimension-size-2400: 192px;\n --spectrum-global-dimension-size-3000: 240px;\n --spectrum-global-dimension-size-3400: 272px;\n --spectrum-global-dimension-size-3600: 288px;\n --spectrum-global-dimension-size-4600: 368px;\n --spectrum-global-dimension-size-5000: 400px;\n --spectrum-global-dimension-size-6000: 480px;\n --spectrum-global-dimension-font-size-25: 10px;\n --spectrum-global-dimension-font-size-50: 11px;\n --spectrum-global-dimension-font-size-75: 12px;\n --spectrum-global-dimension-font-size-100: 14px;\n --spectrum-global-dimension-font-size-150: 15px;\n --spectrum-global-dimension-font-size-200: 16px;\n --spectrum-global-dimension-font-size-300: 18px;\n --spectrum-global-dimension-font-size-400: 20px;\n --spectrum-global-dimension-font-size-500: 22px;\n --spectrum-global-dimension-font-size-600: 25px;\n --spectrum-global-dimension-font-size-700: 28px;\n --spectrum-global-dimension-font-size-800: 32px;\n --spectrum-global-dimension-font-size-900: 36px;\n --spectrum-global-dimension-font-size-1000: 40px;\n --spectrum-global-dimension-font-size-1100: 45px;\n --spectrum-global-dimension-font-size-1200: 50px;\n --spectrum-global-dimension-font-size-1300: 60px;\n --spectrum-alias-avatar-size-100: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-avatar-size-400: var(--spectrum-global-dimension-size-350);\n --spectrum-alias-avatar-size-600: var(--spectrum-global-dimension-size-450);\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-barloader-large-border-radius: 3px;\n --spectrum-barloader-large-indeterminate-border-radius: 3px;\n --spectrum-barloader-large-over-background-border-radius: 3px;\n --spectrum-barloader-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-cta-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-circleloader-medium-border-size: 3px;\n --spectrum-circleloader-medium-over-background-border-size: 3px;\n --spectrum-circleloader-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-circleloader-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-150);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-size-2400);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-150);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-icon-arrow-down-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-arrow-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-medium-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-medium-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-down-medium-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-left-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-right-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-right-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-cross-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-cross-large-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-dash-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-dash-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-left-width: 9px;\n --spectrum-icon-skip-left-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-right-width: 9px;\n --spectrum-icon-skip-right-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-triplegripper-width: var(--spectrum-global-dimension-size-125);\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-400);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-400);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin). Replaced var(--spectrum-global-dimension-static-size-85) with\n static 7px value since a fallback isn't generated anymore due to the rename.\n */\n --spectrum-selectlist-option-padding-height: 7px;\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-loader-bar-large-border-radius: 3px;\n --spectrum-loader-bar-large-over-background-border-radius: 3px;\n --spectrum-loader-bar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-bar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-medium-border-size: 3px;\n --spectrum-loader-circle-medium-over-background-border-size: 3px;\n --spectrum-loader-circle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-meter-large-border-radius: 3px;\n --spectrum-meter-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-pagination-page-button-line-height: 26px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 6px;\n --spectrum-overlay-negative-transform-distance: -6px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-progressbar-large-border-radius: 3px;\n --spectrum-progressbar-large-indeterminate-border-radius: 3px;\n --spectrum-progressbar-large-over-background-border-radius: 3px;\n --spectrum-progressbar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-border-size: 3px;\n --spectrum-progresscircle-medium-over-background-border-size: 3px;\n --spectrum-progresscircle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-indeterminate-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-indeterminate-border-size: 3px;\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-margin-bottom: 0px;\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-margin-bottom: 0px;\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-margin-bottom: 0px;\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-icon-width: 24px;\n --spectrum-rating-indicator-width: 16px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-emphasized-icon-width: 24px;\n --spectrum-rating-emphasized-indicator-width: 16px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-quiet-icon-width: 24px;\n --spectrum-rating-quiet-indicator-width: 16px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-sidenav-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-track-width: 26px;\n --spectrum-switch-handle-border-radius: 7px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 12px;\n --spectrum-switch-handle-transform-x-rtl: -12px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-track-width: 26px;\n --spectrum-switch-emphasized-handle-border-radius: 7px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-track-width: 26px;\n --spectrum-switch-quiet-handle-border-radius: 7px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tabs-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-margin-left: -8px;\n --spectrum-tabs-compact-margin-right: -8px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-focus-ring-border-radius: 5px;\n --spectrum-tabs-margin-left: -8px;\n --spectrum-tabs-margin-right: -8px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-emphasized-margin-left: -8px;\n --spectrum-tabs-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-margin-left: -8px;\n --spectrum-tabs-quiet-margin-right: -8px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-margin-left: -8px;\n --spectrum-tabs-quiet-compact-margin-right: -8px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-vertical-focus-ring-border-radius: 5px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tooltip-padding-bottom: 5px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 5px;\n --spectrum-tooltip-info-content-max-width: 101px;\n --spectrum-tooltip-negative-padding-bottom: 5px;\n --spectrum-tooltip-negative-content-max-width: 101px;\n --spectrum-tooltip-positive-padding-bottom: 5px;\n --spectrum-tooltip-positive-content-max-width: 101px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/// \n\nimport darkest from '@adobe/spectrum-css-temp/vars/spectrum-darkest.css';\nimport global from '@adobe/spectrum-css-temp/vars/spectrum-global.css';\nimport large from '@adobe/spectrum-css-temp/vars/spectrum-large.css';\nimport light from '@adobe/spectrum-css-temp/vars/spectrum-light.css';\nimport medium from '@adobe/spectrum-css-temp/vars/spectrum-medium.css';\nimport {Theme} from '@react-types/provider';\n\nexport let theme: Theme = {\n global,\n light,\n dark: darkest,\n medium,\n large\n};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumImageProps} from '@react-types/image';\nimport styles from '@adobe/spectrum-css-temp/components/image/vars.css';\nimport {useProviderProps} from '@react-spectrum/provider';\n\n// incomplete component for show right now\n\nfunction Image(props: SpectrumImageProps, ref: DOMRef) {\n /* Slots should be able to pass an alt for default behavior, but in Images, the child may know better. */\n let userProvidedAlt = props.alt;\n props = useSlotProps(props, 'image');\n props = useProviderProps(props);\n let {\n objectFit,\n src,\n alt,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n if (alt == null) {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n return (\n \n \n
\n );\n}\n\n/**\n * Image is used to insert and display an image within a component.\n */\nconst _Image = React.forwardRef(Image);\nexport {_Image as Image};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {InvalidationContext} from './types';\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\n// import {Point} from './Point';\nimport {Rect} from './Rect';\nimport {Size} from './Size';\nimport {Virtualizer} from './Virtualizer';\n// import { DragTarget, DropTarget } from '@react-types/shared';\n\n/**\n * [CollectionView]{@link CollectionView} supports arbitrary layout objects, which compute what views are visible, and how\n * to position and style them. However, layouts do not create the views themselves directly. Instead,\n * layouts produce lightweight {@link LayoutInfo} objects which describe various properties of a view,\n * such as its position and size. The {@link CollectionView} is then responsible for creating the actual\n * views as needed, based on this layout information.\n *\n * Every layout extends from the {@link Layout} abstract base class. Layouts must implement a minimum of the\n * two methods listed below. All other methods can be optionally overridden to implement custom behavior.\n *\n * @see {@link getVisibleLayoutInfos}\n * @see {@link getLayoutInfo}\n */\nexport abstract class Layout {\n /** The CollectionView the layout is currently attached to. */\n virtualizer: Virtualizer;\n\n /**\n * Returns whether the layout should invalidate in response to\n * visible rectangle changes. By default, it only invalidates\n * when the collection view's size changes. Return true always\n * to make the layout invalidate while scrolling (e.g. sticky headers).\n */\n shouldInvalidate(newRect: Rect, oldRect: Rect): boolean {\n // By default, invalidate when the size changes\n return newRect.width !== oldRect.width\n || newRect.height !== oldRect.height;\n }\n\n /**\n * This method allows the layout to perform any pre-computation\n * it needs to in order to prepare {@link LayoutInfo}s for retrieval.\n * Called by the collection view before {@link getVisibleLayoutInfos}\n * or {@link getLayoutInfo} are called.\n */\n validate(invalidationContext: InvalidationContext) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * Returns an array of {@link LayoutInfo} objects which are inside the given rectangle.\n * Should be implemented by subclasses.\n * @param rect The rectangle that should contain the returned LayoutInfo objects.\n */\n abstract getVisibleLayoutInfos(rect: Rect): LayoutInfo[];\n\n /**\n * Returns a {@link LayoutInfo} for the given key.\n * Should be implemented by subclasses.\n * @param key The key of the LayoutInfo to retrieve.\n */\n abstract getLayoutInfo(key: Key): LayoutInfo;\n\n /**\n * Returns size of the content. By default, it returns collectionView's size.\n */\n abstract getContentSize(): Size;\n\n /**\n * Returns a {@link DragTarget} describing a view at the given point to be dragged.\n * Return `null` to cancel the drag. The default implementation returns the view at the given point.\n * @param point The point at which the drag occurred.\n */\n // getDragTarget(point: Point): DragTarget | null {\n // let target = this.virtualizer.keyAtPoint(point);\n // if (!target) {\n // return null;\n // }\n\n // return {\n // type: 'item',\n // key: target\n // };\n // }\n\n /**\n * Returns a {@link DragTarget} object describing where a drop should occur. Return `null`\n * to reject the drop. The dropped items will be inserted before the resulting target.\n * @param point The point at which the drop occurred.\n */\n // getDropTarget(point: Point): DropTarget | null {\n // return null;\n // }\n\n /**\n * Returns the starting attributes for an animated insertion.\n * The view is animated from this {@link LayoutInfo} to the one returned by {@link getLayoutInfo}.\n * The default implementation just returns its input.\n *\n * @param layoutInfo The proposed LayoutInfo for this view.\n */\n getInitialLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n\n /**\n * Returns the ending attributes for an animated removal.\n * The view is animated from the {@link LayoutInfo} returned by {@link getLayoutInfo}\n * to the one returned by this method. The default implementation returns its input.\n *\n * @param layoutInfo The original LayoutInfo for this view.\n */\n getFinalLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {Rect} from './Rect';\n\n/**\n * Instances of this lightweight class are created by {@link Layout} subclasses\n * to represent each view in the {@link CollectionView}. LayoutInfo objects describe\n * various properties of a view, such as its position and size, and style information.\n * The collection view uses this information when creating actual views to display.\n */\nexport class LayoutInfo {\n /**\n * A string representing the view type. Should be `'item'` for item views.\n * Other types are used by supplementary views.\n */\n type: string;\n\n /**\n * A unique key for this view. For item views, it should match the content key.\n */\n key: Key;\n\n /**\n * The key for a parent layout info, if any.\n */\n parentKey: Key | null;\n\n /**\n * The rectangle describing the size and position of this view.\n */\n rect: Rect;\n\n /**\n * Whether the size is estimated. `false` by default.\n */\n estimatedSize: boolean;\n\n /**\n * Whether the layout info sticks to the viewport when scrolling.\n */\n isSticky: boolean;\n\n /**\n * The view's opacity. 1 by default.\n */\n opacity: number;\n\n /**\n * A CSS transform string to apply to the view. `null` by default.\n */\n transform: string | null;\n\n /**\n * The z-index of the view. 0 by default.\n */\n zIndex: number;\n\n /**\n * Whether the layout info allows its contents to overflow its container.\n * @default false\n */\n allowOverflow: boolean;\n\n /**\n * @param type A string representing the view type. Should be `'item'` for item views.\n Other types are used by supplementary views.\n * @param key The unique key for this view.\n * @param rect The rectangle describing the size and position of this view.\n */\n constructor(type: string, key: Key, rect: Rect) {\n this.type = type;\n this.key = key;\n this.parentKey = null;\n this.rect = rect;\n this.estimatedSize = false;\n this.isSticky = false;\n this.opacity = 1;\n this.transform = null;\n this.zIndex = 0;\n this.allowOverflow = false;\n }\n\n /**\n * Returns a copy of the LayoutInfo.\n */\n copy(): LayoutInfo {\n let res = new LayoutInfo(this.type, this.key, this.rect.copy());\n res.estimatedSize = this.estimatedSize;\n res.opacity = this.opacity;\n res.transform = this.transform;\n res.parentKey = this.parentKey;\n res.isSticky = this.isSticky;\n res.zIndex = this.zIndex;\n res.allowOverflow = this.allowOverflow;\n return res;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Point {\n /** The x-coordinate of the point. */\n x: number;\n\n /** The y-coordinate of the point. */\n y: number;\n\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n\n /**\n * Returns a copy of this point.\n */\n copy(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * Checks if two points are equal.\n */\n equals(point: Point): boolean {\n return this.x === point.x && this.y === point.y;\n }\n\n /**\n * Returns true if this point is the origin.\n */\n isOrigin(): boolean {\n return this.x === 0 && this.y === 0;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Size} from './Size';\n\nexport type RectCorner = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\n\n/**\n * Represents a rectangle.\n */\nexport class Rect {\n /** The x-coordinate of the rectangle. */\n x: number;\n\n /** The y-coordinate of the rectangle. */\n y: number;\n\n /** The width of the rectangle. */\n width: number;\n\n /** The height of the rectangle. */\n height: number;\n\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n /**\n * The maximum x-coordinate in the rectangle.\n */\n get maxX(): number {\n return this.x + this.width;\n }\n\n /**\n * The maximum y-coordinate in the rectangle.\n */\n get maxY(): number {\n return this.y + this.height;\n }\n\n /**\n * The area of the rectangle.\n */\n get area(): number {\n return this.width * this.height;\n }\n\n /**\n * The top left corner of the rectangle.\n */\n get topLeft(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * The top right corner of the rectangle.\n */\n get topRight(): Point {\n return new Point(this.maxX, this.y);\n }\n\n /**\n * The bottom left corner of the rectangle.\n */\n get bottomLeft(): Point {\n return new Point(this.x, this.maxY);\n }\n\n /**\n * The bottom right corner of the rectangle.\n */\n get bottomRight(): Point {\n return new Point(this.maxX, this.maxY);\n }\n\n /**\n * Returns whether this rectangle intersects another rectangle.\n * @param rect - The rectangle to check.\n */\n intersects(rect: Rect): boolean {\n return this.x <= rect.x + rect.width\n && rect.x <= this.x + this.width\n && this.y <= rect.y + rect.height\n && rect.y <= this.y + this.height;\n }\n\n /**\n * Returns whether this rectangle fully contains another rectangle.\n * @param rect - The rectangle to check.\n */\n containsRect(rect: Rect): boolean {\n return this.x <= rect.x\n && this.y <= rect.y\n && this.maxX >= rect.maxX\n && this.maxY >= rect.maxY;\n }\n\n /**\n * Returns whether the rectangle contains the given point.\n * @param point - The point to check.\n */\n containsPoint(point: Point): boolean {\n return this.x <= point.x\n && this.y <= point.y\n && this.maxX >= point.x\n && this.maxY >= point.y;\n }\n\n /**\n * Returns the first corner of this rectangle (from top to bottom, left to right)\n * that is contained in the given rectangle, or null of the rectangles do not intersect.\n * @param rect - The rectangle to check.\n */\n getCornerInRect(rect: Rect): RectCorner | null {\n for (let key of ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']) {\n if (rect.containsPoint(this[key])) {\n return key as RectCorner;\n }\n }\n\n return null;\n }\n\n equals(rect: Rect) {\n return rect.x === this.x\n && rect.y === this.y\n && rect.width === this.width\n && rect.height === this.height;\n }\n\n pointEquals(point: Point | Rect) {\n return this.x === point.x\n && this.y === point.y;\n }\n\n sizeEquals(size: Size | Rect) {\n return this.width === size.width\n && this.height === size.height;\n }\n\n /**\n * Returns the union of this Rect and another.\n */\n union(other: Rect) {\n let x = Math.min(this.x, other.x);\n let y = Math.min(this.y, other.y);\n let width = Math.max(this.maxX, other.maxX) - x;\n let height = Math.max(this.maxY, other.maxY) - y;\n return new Rect(x, y, width, height);\n }\n\n /**\n * Returns the intersection of this Rect with another.\n * If the rectangles do not intersect, an all zero Rect is returned.\n */\n intersection(other: Rect): Rect {\n if (!this.intersects(other)) {\n return new Rect(0, 0, 0, 0);\n }\n\n let x = Math.max(this.x, other.x);\n let y = Math.max(this.y, other.y);\n return new Rect(\n x,\n y,\n Math.min(this.maxX, other.maxX) - x,\n Math.min(this.maxY, other.maxY) - y\n );\n }\n\n /**\n * Returns a copy of this rectangle.\n */\n copy(): Rect {\n return new Rect(this.x, this.y, this.width, this.height);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Size {\n width: number;\n height: number;\n\n constructor(width = 0, height = 0) {\n this.width = width;\n this.height = height;\n }\n\n /**\n * Returns a copy of this size.\n */\n copy(): Size {\n return new Size(this.width, this.height);\n }\n\n /**\n * Returns whether this size is equal to another one.\n */\n equals(other: Size): boolean {\n return this.width === other.width\n && this.height === other.height;\n }\n\n /**\n * The total area of the Size.\n */\n get area() {\n return this.width * this.height;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {Virtualizer} from './Virtualizer';\n\nlet KEY = 0;\n\n/**\n * [CollectionView]{@link CollectionView} creates instances of the [ReusableView]{@link ReusableView} class to\n * represent views currently being displayed. ReusableViews manage a DOM node, handle\n * applying {@link LayoutInfo} objects to the view, and render content\n * as needed. Subclasses must implement the {@link render} method at a\n * minimum. Other methods can be overridden to customize behavior.\n */\nexport class ReusableView {\n /** The CollectionVirtualizer this view is a part of. */\n virtualizer: Virtualizer;\n\n /** The LayoutInfo this view is currently representing. */\n layoutInfo: LayoutInfo | null;\n\n /** The content currently being displayed by this view, set by the collection view. */\n content: T;\n\n rendered: V;\n\n viewType: string;\n key: Key;\n\n constructor(virtualizer: Virtualizer) {\n this.virtualizer = virtualizer;\n this.key = ++KEY;\n }\n\n /**\n * Prepares the view for reuse. Called just before the view is removed from the DOM.\n */\n prepareForReuse() {\n this.content = null;\n this.rendered = null;\n this.layoutInfo = null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\n\n// use high res timer if available\nlet perf = typeof window !== 'undefined' ? window.performance : null;\n// @ts-ignore\nlet perfNow = perf && (perf.now || perf.webkitNow || perf.msNow || perf.mozNow);\nlet getTime = perfNow ? perfNow.bind(perf) : function () {\n return Date.now ? Date.now() : new Date().getTime();\n};\n\nlet fixTs: boolean;\n\nexport interface CancelablePromise extends Promise {\n cancel(): void\n}\n\nexport function tween(begin, end, duration, ease, fn): CancelablePromise {\n let canceled = false;\n let raf_id: number;\n\n let promise = new Promise(resolve => {\n let start = getTime();\n let diffX = end.x - begin.x;\n let diffY = end.y - begin.y;\n\n raf_id = requestAnimationFrame(function run(t) {\n // if we're using a high res timer, make sure timestamp is not the old epoch-based value.\n // http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision\n if (fixTs == null) {\n fixTs = t > 1e12 !== getTime() > 1e12;\n }\n\n if (fixTs) {\n t = getTime();\n }\n\n // check if we're done\n let delta = t - start;\n if (delta > duration) {\n fn(end);\n resolve();\n } else {\n // call frame callback after computing eased time and get the next frame\n let proceed = fn(new Point(\n begin.x + diffX * ease(delta / duration),\n begin.y + diffY * ease(delta / duration)\n ));\n\n if (proceed !== false && !canceled) {\n raf_id = requestAnimationFrame(run);\n }\n }\n });\n }) as CancelablePromise;\n\n promise.cancel = function () {\n canceled = true;\n cancelAnimationFrame(raf_id);\n };\n\n return promise;\n}\n\n// easing functions\nexport function linearEasing(t) {\n return t;\n}\n\nexport function easeOut(t) {\n return Math.sin(t * Math.PI / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function keyDiff(a: Map, b: Map): Set {\n let res = new Set();\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n\n/**\n * Returns the key difference between two maps. Returns a set of\n * keys to add to and remove from a to make it equal to b.\n * @private\n */\nexport function difference(a: Map, b: Map) {\n let toRemove = keyDiff(a, b);\n let toAdd = keyDiff(b, a);\n let toUpdate = new Set;\n for (let key of a.keys()) {\n if (b.has(key)) {\n toUpdate.add(key);\n }\n }\n return {toRemove, toAdd, toUpdate};\n}\n\n/**\n * Returns an iterator that yields the items in all of the given iterators.\n * @private\n */\nexport function* concatIterators(...iterators: Iterable[]) {\n for (let iterator of iterators) {\n yield* iterator;\n }\n}\n\n/**\n * Inverts the keys and values of an object.\n * @private\n */\nexport function invert(object) {\n let res = {};\n for (let key in object) {\n res[object[key]] = key;\n }\n\n return res;\n}\n\n/** Returns whether two sets are equal. */\nexport function isSetEqual(a: Set, b: Set): boolean {\n if (a === b) {\n return true;\n }\n\n if (a.size !== b.size) {\n return false;\n }\n\n for (let key of a) {\n if (!b.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Rect} from './Rect';\n\nclass RollingAverage {\n private count: number = 0;\n value: number = 0;\n \n addSample(sample: number) {\n this.count++;\n this.value += (sample - this.value) / this.count;\n }\n}\n\nexport class OverscanManager {\n private startTime = 0;\n private averagePerf = new RollingAverage();\n private averageTime = new RollingAverage();\n private velocity = new Point(5, 5);\n private overscanX = new RollingAverage();\n private overscanY = new RollingAverage();\n private visibleRect = new Rect();\n \n setVisibleRect(rect: Rect) {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averageTime.addSample(time);\n\n if (rect.x !== this.visibleRect.x && time > 0) {\n this.velocity.x = (rect.x - this.visibleRect.x) / time;\n }\n\n if (rect.y !== this.visibleRect.y && time > 0) {\n this.velocity.y = (rect.y - this.visibleRect.y) / time;\n }\n }\n\n this.startTime = performance.now();\n this.visibleRect = rect;\n }\n\n collectMetrics() {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averagePerf.addSample(time);\n }\n\n if (this.visibleRect.height > 0) {\n let o = Math.abs(this.velocity.y * (this.averageTime.value + this.averagePerf.value)); \n this.overscanY.addSample(o);\n }\n\n if (this.visibleRect.width > 0) {\n let o = Math.abs(this.velocity.x * (this.averageTime.value + this.averagePerf.value)); \n this.overscanX.addSample(o);\n }\n }\n\n getOverscannedRect() {\n let overscanned = this.visibleRect.copy();\n\n let overscanY = Math.round(Math.min(this.visibleRect.height * 2, this.overscanY.value) / 100) * 100;\n if (this.velocity.y > 0) {\n overscanned.y -= overscanY * 0.2;\n overscanned.height += overscanY + overscanY * 0.2;\n } else {\n overscanned.y -= overscanY;\n overscanned.height += overscanY + overscanY * 0.2;\n }\n\n let overscanX = Math.round(Math.min(this.visibleRect.width * 2, this.overscanX.value) / 100) * 100;\n if (this.velocity.x > 0) {\n overscanned.x -= overscanX * 0.2;\n overscanned.width += overscanX + overscanX * 0.2;\n } else {\n overscanned.x -= overscanX;\n overscanned.width += overscanX + overscanX * 0.2;\n }\n\n return overscanned;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {ReusableView} from './ReusableView';\n\ntype LayoutInfoMap = Map;\nexport class Transaction {\n level = 0;\n actions: (() => void)[] = [];\n animated = true;\n initialMap: LayoutInfoMap = new Map();\n finalMap: LayoutInfoMap = new Map();\n initialLayoutInfo: LayoutInfoMap = new Map();\n finalLayoutInfo: LayoutInfoMap = new Map();\n removed: Map> = new Map();\n toRemove: Map> = new Map();\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CancelablePromise, easeOut, tween} from './tween';\nimport {Collection} from '@react-types/shared';\nimport {concatIterators, difference, isSetEqual} from './utils';\nimport {\n InvalidationContext,\n ScrollAnchor,\n ScrollToItemOptions,\n VirtualizerDelegate,\n VirtualizerOptions\n} from './types';\nimport {Key} from 'react';\nimport {Layout} from './Layout';\nimport {LayoutInfo} from './LayoutInfo';\nimport {OverscanManager} from './OverscanManager';\nimport {Point} from './Point';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {Transaction} from './Transaction';\n\n/**\n * The CollectionView class renders a scrollable collection of data using customizable layouts,\n * and manages animated updates to the data over time. It supports very large collections by\n * only rendering visible views to the DOM, reusing them as you scroll. Collection views can\n * present any type of view, including non-item views such as section headers and footers.\n * Optionally, the {@link EditableCollectionView} subclass can be used to enable user interaction\n * with the collection, including drag and drop, multiple selection, and keyboard interacton.\n *\n * Collection views get their data from a {@link DataSource} object that you provide. Items are\n * grouped into sections by the data source, and the collection view calls its methods to retrieve\n * the data. When data changes, the data source emits change events, and the collection view\n * updates as appropriate, optionally with an animated transition. There is one built-in data source\n * implementation, {@link ArrayDataSource}, which renders content from a 2d array.\n *\n * Collection views use {@link Layout} objects to compute what views should be visible, and how\n * to position and style them. This means that collection views can have their items arranged in\n * a stack, a grid, a circle, or any other layout you can think of. The layout can be changed\n * dynamically at runtime as well, optionally with an animated transition between the layouts.\n *\n * Layouts produce information on what views should appear in the collection view, but do not create\n * the views themselves directly. It is the responsibility of the {@link CollectionViewDelegate} object\n * to create instances of {@link ReusableView} subclasses which render the items into DOM nodes.\n * The delegate determines what type of view to display for each item, and creates instances of\n * views as needed by the collection view. Those views are then reused by the collection view as\n * the user scrolls through the content.\n */\nexport class Virtualizer {\n /**\n * The collection view delegate. The delegate is used by the collection view\n * to create and configure views.\n */\n delegate: VirtualizerDelegate;\n\n /** The duration of animated layout changes, in milliseconds. Default is 500ms. */\n transitionDuration: number;\n\n /**\n * Whether to enable scroll anchoring. This will attempt to restore the scroll position\n * after layout changes outside the viewport. Default is off.\n */\n anchorScrollPosition: boolean;\n\n /** Whether to anchor the scroll position when at the top of the content. Default is off. */\n anchorScrollPositionAtTop: boolean;\n\n /**\n * Whether to overscan the visible area to pre-render items slightly outside and\n * improve performance. Default is on.\n */\n shouldOverscan: boolean;\n\n private _collection: Collection;\n private _layout: Layout;\n private _contentSize: Size;\n private _visibleRect: Rect;\n private _visibleLayoutInfos: Map;\n private _reusableViews: {[type: string]: ReusableView[]};\n private _visibleViews: Map>;\n private _renderedContent: WeakMap;\n private _children: Set>;\n private _invalidationContext: InvalidationContext | null;\n private _overscanManager: OverscanManager;\n private _persistedKeys: Set;\n private _relayoutRaf: number | null;\n private _scrollAnimation: CancelablePromise | null;\n private _isScrolling: boolean;\n private _sizeUpdateQueue: Map;\n private _animatedContentOffset: Point;\n private _transaction: Transaction | null;\n private _nextTransaction: Transaction | null;\n private _transactionQueue: Transaction[];\n\n constructor(options: VirtualizerOptions = {}) {\n this._contentSize = new Size;\n this._visibleRect = new Rect;\n\n this._reusableViews = {};\n this._visibleLayoutInfos = new Map();\n this._visibleViews = new Map();\n this._renderedContent = new WeakMap();\n this._children = new Set();\n this._invalidationContext = null;\n this._overscanManager = new OverscanManager();\n this._persistedKeys = new Set();\n\n this._scrollAnimation = null;\n this._isScrolling = false;\n this._sizeUpdateQueue = new Map();\n this._animatedContentOffset = new Point(0, 0);\n\n this._transaction = null;\n this._nextTransaction = null;\n this._transactionQueue = [];\n\n // Set options from passed object if given\n this.transitionDuration = options.transitionDuration ?? 500;\n this.anchorScrollPosition = options.anchorScrollPosition || false;\n this.anchorScrollPositionAtTop = options.anchorScrollPositionAtTop || false;\n this.shouldOverscan = options.shouldOverscan !== false;\n for (let key of ['delegate', 'size', 'layout', 'collection']) {\n if (options[key]) {\n this[key] = options[key];\n }\n }\n }\n\n _setContentSize(size: Size) {\n this._contentSize = size;\n this.delegate.setContentSize(size);\n }\n\n _setContentOffset(offset: Point) {\n let rect = new Rect(offset.x, offset.y, this._visibleRect.width, this._visibleRect.height);\n this.delegate.setVisibleRect(rect);\n }\n\n /**\n * Get the size of the scrollable content.\n */\n get contentSize(): Size {\n return this._contentSize;\n }\n\n /**\n * Get the collection view's currently visible rectangle.\n */\n get visibleRect(): Rect {\n return this._visibleRect;\n }\n\n /**\n * Set the collection view's currently visible rectangle.\n */\n set visibleRect(rect: Rect) {\n this._setVisibleRect(rect);\n }\n\n _setVisibleRect(rect: Rect, forceUpdate = false) {\n let current = this._visibleRect;\n\n // Ignore if the rects are equal\n if (rect.equals(current)) {\n return;\n }\n\n if (this.shouldOverscan) {\n this._overscanManager.setVisibleRect(rect);\n }\n\n let shouldInvalidate = this.layout && this.layout.shouldInvalidate(rect, this._visibleRect);\n\n this._resetAnimatedContentOffset();\n this._visibleRect = rect;\n\n if (shouldInvalidate) {\n this.relayout({\n offsetChanged: !rect.pointEquals(current),\n sizeChanged: !rect.sizeEquals(current)\n });\n } else {\n this.updateSubviews(forceUpdate);\n }\n }\n\n get collection(): Collection {\n return this._collection;\n }\n\n set collection(data: Collection) {\n this._setData(data);\n }\n\n private _setData(data: Collection) {\n if (data === this._collection) {\n return;\n }\n\n if (this._collection) {\n this._runTransaction(() => {\n this._collection = data;\n }, this.transitionDuration > 0);\n } else {\n this._collection = data;\n this.reloadData();\n }\n }\n\n /**\n * Reloads the data from the data source and relayouts the collection view.\n * Does not animate any changes. Equivalent to re-assigning the same data source\n * to the collection view.\n */\n reloadData() {\n this.relayout({\n contentChanged: true\n });\n }\n\n /**\n * Returns the item with the given key.\n */\n getItem(key: Key) {\n return this._collection ? this._collection.getItem(key) : null;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n get persistedKeys(): Set {\n return this._persistedKeys;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n set persistedKeys(persistedKeys: Set) {\n if (!isSetEqual(persistedKeys, this._persistedKeys)) {\n this._persistedKeys = persistedKeys;\n this.updateSubviews();\n }\n }\n\n /** Returns whether the given key, or an ancestor, is persisted. */\n isPersistedKey(key: Key) {\n // Quick check if the key is directly in the set of persisted keys.\n if (this._persistedKeys.has(key)) {\n return true;\n }\n\n // If not, check if the key is an ancestor of any of the persisted keys.\n for (let k of this._persistedKeys) {\n while (k != null) {\n let layoutInfo = this.layout.getLayoutInfo(k);\n if (!layoutInfo) {\n break;\n }\n\n k = layoutInfo.parentKey;\n\n if (k === key) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Get the collection view's layout.\n */\n get layout(): Layout {\n return this._layout;\n }\n\n /**\n * Set the collection view's layout.\n */\n set layout(layout: Layout) {\n this.setLayout(layout);\n }\n\n /**\n * Sets the collection view's layout, optionally with an animated transition\n * from the current layout to the new layout.\n * @param layout The layout to switch to.\n * @param animated Whether to animate the layout change.\n */\n setLayout(layout: Layout, animated = false) {\n if (layout === this._layout) {\n return;\n }\n\n let applyLayout = () => {\n if (this._layout) {\n // @ts-ignore\n this._layout.virtualizer = null;\n }\n\n layout.virtualizer = this;\n this._layout = layout;\n };\n\n if (animated) {\n // Animated layout transitions are really simple, thanks to our transaction support.\n // We just set the layout inside a transaction action, which runs after the initial\n // layout infos for the animation are retrieved from the previous layout. Then, the\n // final layout infos are retrieved from the new layout, and animations occur.\n this._runTransaction(applyLayout);\n } else {\n applyLayout();\n this.relayout();\n }\n }\n\n private _getReuseType(layoutInfo: LayoutInfo, content: T | null) {\n if (layoutInfo.type === 'item' && content) {\n let type = this.delegate.getType ? this.delegate.getType(content) : 'item';\n let reuseType = type === 'item' ? 'item' : layoutInfo.type + '_' + type;\n return {type, reuseType};\n }\n\n return {\n type: layoutInfo.type,\n reuseType: layoutInfo.type\n };\n }\n\n getReusableView(layoutInfo: LayoutInfo): ReusableView {\n let content = this.getItem(layoutInfo.key);\n let {reuseType} = this._getReuseType(layoutInfo, content);\n\n if (!this._reusableViews[reuseType]) {\n this._reusableViews[reuseType] = [];\n }\n\n let reusable = this._reusableViews[reuseType];\n let view = reusable.length > 0\n ? reusable.pop()\n : new ReusableView(this);\n\n view.viewType = reuseType;\n\n if (!this._animatedContentOffset.isOrigin()) {\n layoutInfo = layoutInfo.copy();\n layoutInfo.rect.x += this._animatedContentOffset.x;\n layoutInfo.rect.y += this._animatedContentOffset.y;\n }\n\n view.layoutInfo = layoutInfo;\n\n this._renderView(view);\n return view;\n }\n\n private _renderView(reusableView: ReusableView) {\n let {type, key} = reusableView.layoutInfo;\n reusableView.content = this.getItem(key);\n reusableView.rendered = this._renderContent(type, reusableView.content);\n }\n\n private _renderContent(type: string, content: T) {\n let cached = this._renderedContent.get(content);\n if (cached != null) {\n return cached;\n }\n\n let rendered = this.delegate.renderView(type, content);\n if (content) {\n this._renderedContent.set(content, rendered);\n }\n return rendered;\n }\n\n /**\n * Returns an array of all currently visible views, including both\n * item views and supplementary views.\n */\n get visibleViews(): ReusableView[] {\n return Array.from(this._visibleViews.values());\n }\n\n /**\n * Gets the visible view for the given type and key. Returns null if\n * the view is not currently visible.\n *\n * @param key The key of the view to retrieve.\n */\n getView(key: Key): ReusableView | null {\n return this._visibleViews.get(key) || null;\n }\n\n /**\n * Returns an array of visible views matching the given type.\n * @param type The view type to find.\n */\n getViewsOfType(type: string): ReusableView[] {\n return this.visibleViews.filter(v => v.layoutInfo && v.layoutInfo.type === type);\n }\n\n /**\n * Returns the key for the given view. Returns null\n * if the view is not currently visible.\n */\n keyForView(view: ReusableView): Key | null {\n if (view && view.layoutInfo) {\n return view.layoutInfo.key;\n }\n\n return null;\n }\n\n /**\n * Returns the key for the item view currently at the given point.\n */\n keyAtPoint(point: Point): Key | null {\n let rect = new Rect(point.x, point.y, 1, 1);\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n\n // Layout may return multiple layout infos in the case of\n // persisted keys, so find the first one that actually intersects.\n for (let layoutInfo of layoutInfos) {\n if (layoutInfo.rect.intersects(rect)) {\n return layoutInfo.key;\n }\n }\n\n return null;\n }\n\n /**\n * Cleanup for when the Virtualizer will be unmounted.\n */\n willUnmount() {\n cancelAnimationFrame(this._relayoutRaf);\n }\n\n /**\n * Triggers a layout invalidation, and updates the visible subviews.\n */\n relayout(context: InvalidationContext = {}) {\n // Ignore relayouts while animating the scroll position\n if (this._scrollAnimation || typeof requestAnimationFrame === 'undefined') {\n return;\n }\n\n // If we already scheduled a relayout, extend the invalidation\n // context so we coalesce multiple relayouts in the same frame.\n if (this._invalidationContext) {\n Object.assign(this._invalidationContext, context);\n return;\n }\n\n this._invalidationContext = context;\n this._relayoutRaf = requestAnimationFrame(() => {\n this._relayoutRaf = null;\n this.relayoutNow();\n });\n }\n\n /**\n * Performs a relayout immediately. Prefer {@link relayout} over this method\n * where possible, since it coalesces multiple layout passes in the same tick.\n */\n relayoutNow(context: InvalidationContext = this._invalidationContext || {}) {\n // Cancel the scheduled relayout, since we're doing it now.\n if (this._relayoutRaf) {\n cancelAnimationFrame(this._relayoutRaf);\n this._relayoutRaf = null;\n // Update the provided context with the current invalidationContext since we are cancelling\n // a scheduled relayoutNow call that has this._invalidationContext set as its default context arg (relayoutNow() in relayout)\n context = {...this._invalidationContext, ...context};\n }\n\n // Reset the invalidation context\n this._invalidationContext = null;\n\n // Do nothing if we don't have a layout or content, or we are\n // in the middle of an animated scroll transition.\n if (!this.layout || !this._collection || this._scrollAnimation) {\n return;\n }\n\n let scrollAnchor = this._getScrollAnchor();\n\n // Trigger the beforeLayout hook, if provided\n if (typeof context.beforeLayout === 'function') {\n context.beforeLayout();\n }\n\n // Validate the layout\n this.layout.validate(context);\n this._setContentSize(this.layout.getContentSize());\n\n // Trigger the afterLayout hook, if provided\n if (typeof context.afterLayout === 'function') {\n context.afterLayout();\n }\n\n // Adjust scroll position based on scroll anchor, and constrain.\n // If the content changed, scroll to the top.\n let visibleRect = this.getVisibleRect();\n let restoredScrollAnchor = this._restoreScrollAnchor(scrollAnchor, context);\n let contentOffsetX = context.contentChanged ? 0 : restoredScrollAnchor.x;\n let contentOffsetY = context.contentChanged ? 0 : restoredScrollAnchor.y;\n contentOffsetX = Math.max(0, Math.min(this.contentSize.width - visibleRect.width, contentOffsetX));\n contentOffsetY = Math.max(0, Math.min(this.contentSize.height - visibleRect.height, contentOffsetY));\n\n let hasLayoutUpdates = false;\n if (contentOffsetX !== visibleRect.x || contentOffsetY !== visibleRect.y) {\n // If this is an animated relayout, we do not immediately scroll because it would be jittery.\n // Save the difference between the current and new content offsets, and apply it to the\n // individual content items instead. At the end of the animation, we'll reset and set the\n // scroll offset for real. This ensures jitter-free animation since we don't need to sync\n // the scroll animation and the content animation.\n if (context.animated || !this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset.x += visibleRect.x - contentOffsetX;\n this._animatedContentOffset.y += visibleRect.y - contentOffsetY;\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n } else {\n this._setContentOffset(new Point(contentOffsetX, contentOffsetY));\n }\n } else {\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n }\n\n // Apply layout infos, unless this is coming from an animated transaction\n if (!(context.transaction && context.animated)) {\n this._applyLayoutInfos();\n }\n\n // Wait for animations, and apply the afterAnimation hook, if provided\n if (context.animated && hasLayoutUpdates) {\n this._enableTransitions();\n\n let done = () => {\n this._disableTransitions();\n\n // Reset scroll position after animations (see above comment).\n if (!this._animatedContentOffset.isOrigin()) {\n // Get the content offset to scroll to, taking _animatedContentOffset into account.\n let {x, y} = this.getVisibleRect();\n this._resetAnimatedContentOffset();\n this._setContentOffset(new Point(x, y));\n }\n\n if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n };\n\n // Sometimes the animation takes slightly longer than expected.\n setTimeout(done, this.transitionDuration + 100);\n return;\n } else if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n }\n\n /**\n * Corrects DOM order of visible views to match item order of collection.\n */\n private _correctItemOrder() {\n // Defer until after scrolling and animated transactions are complete\n if (this._isScrolling || this._transaction) {\n return;\n }\n\n for (let key of this._visibleLayoutInfos.keys()) {\n let view = this._visibleViews.get(key);\n this._children.delete(view);\n this._children.add(view);\n }\n }\n\n private _enableTransitions() {\n this.delegate.beginAnimations();\n }\n\n private _disableTransitions() {\n this.delegate.endAnimations();\n }\n\n private _getScrollAnchor(): ScrollAnchor | null {\n if (!this.anchorScrollPosition) {\n return null;\n }\n\n let visibleRect = this.getVisibleRect();\n\n // Ask the delegate to provide a scroll anchor, if possible\n if (this.delegate.getScrollAnchor) {\n let key = this.delegate.getScrollAnchor(visibleRect);\n if (key != null) {\n let layoutInfo = this.layout.getLayoutInfo(key);\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n if (corner) {\n let key = layoutInfo.key;\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n return {key, layoutInfo, corner, offset};\n }\n }\n }\n\n // No need to anchor the scroll position if it is at the top\n if (visibleRect.y === 0 && !this.anchorScrollPositionAtTop) {\n return null;\n }\n\n // Find a view with a visible corner that has the smallest distance to the top of the collection view\n let cornerAnchor: ScrollAnchor | null = null;\n\n for (let [key, view] of this._visibleViews) {\n let layoutInfo = view.layoutInfo;\n if (layoutInfo && layoutInfo.rect.area > 0) {\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n\n if (corner) {\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n if (!cornerAnchor || (offset < cornerAnchor.offset)) {\n cornerAnchor = {key, layoutInfo, corner, offset};\n }\n }\n }\n }\n\n return cornerAnchor;\n }\n\n private _restoreScrollAnchor(scrollAnchor: ScrollAnchor | null, context: InvalidationContext) {\n let contentOffset = this.getVisibleRect();\n\n if (scrollAnchor) {\n let finalAnchor = context.transaction?.animated\n ? context.transaction.finalMap.get(scrollAnchor.key)\n : this.layout.getLayoutInfo(scrollAnchor.layoutInfo.key);\n\n if (finalAnchor) {\n let adjustment = (finalAnchor.rect[scrollAnchor.corner].y - contentOffset.y) - scrollAnchor.offset;\n contentOffset.y += adjustment;\n }\n }\n\n return contentOffset;\n }\n\n getVisibleRect(): Rect {\n let v = this.visibleRect;\n let x = v.x - this._animatedContentOffset.x;\n let y = v.y - this._animatedContentOffset.y;\n return new Rect(x, y, v.width, v.height);\n }\n\n getVisibleLayoutInfos() {\n let rect = this.shouldOverscan ? this._overscanManager.getOverscannedRect() : this.getVisibleRect();\n this._visibleLayoutInfos = this._getLayoutInfoMap(rect);\n return this._visibleLayoutInfos;\n }\n\n private _getLayoutInfoMap(rect: Rect, copy = false) {\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n let map = new Map;\n\n for (let layoutInfo of layoutInfos) {\n if (copy) {\n layoutInfo = layoutInfo.copy();\n }\n\n map.set(layoutInfo.key, layoutInfo);\n }\n\n return map;\n }\n\n updateSubviews(forceUpdate = false) {\n if (!this._collection) {\n return;\n }\n\n let visibleLayoutInfos = this.getVisibleLayoutInfos();\n let currentlyVisible = this._visibleViews;\n let toAdd, toRemove, toUpdate;\n\n // If this is a force update, remove and re-add all views.\n // Otherwise, find and update the diff.\n if (forceUpdate) {\n toAdd = visibleLayoutInfos;\n toRemove = currentlyVisible;\n toUpdate = new Set();\n } else {\n ({toAdd, toRemove, toUpdate} = difference(currentlyVisible, visibleLayoutInfos));\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key);\n if (!view || !view.layoutInfo) {\n continue;\n }\n\n let item = this.getItem(visibleLayoutInfos.get(key).key);\n if (view.content === item) {\n toUpdate.delete(key);\n } else {\n // If the view type changes, delete and recreate the view instead of updating\n let {reuseType} = this._getReuseType(view.layoutInfo, item);\n if (view.viewType !== reuseType) {\n toUpdate.delete(key);\n toAdd.add(key);\n toRemove.add(key);\n }\n }\n }\n\n // We are done if the sets are equal\n if (toAdd.size === 0 && toRemove.size === 0 && toUpdate.size === 0) {\n if (this._transaction) {\n this._applyLayoutInfos();\n }\n\n return;\n }\n }\n\n // Track views that should be removed. They are not removed from\n // the DOM immediately, since we may reuse and need to re-insert\n // them back into the DOM anyway.\n let removed = new Set>();\n\n for (let key of toRemove.keys()) {\n let view = this._visibleViews.get(key);\n if (view) {\n removed.add(view);\n this._visibleViews.delete(key);\n\n // If we are in the middle of a transaction, wait until the end\n // of the animations to remove the views from the DOM. Also means\n // we can't reuse those views immediately.\n if (this._transaction) {\n this._transaction.toRemove.set(key, view);\n } else {\n this.reuseView(view);\n }\n }\n }\n\n for (let key of toAdd.keys()) {\n let layoutInfo = visibleLayoutInfos.get(key);\n let view: ReusableView | void;\n\n // If we're in a transaction, and a layout change happens\n // during the animations such that a view that was going\n // to be removed is now not, we don't create a new view\n // since the old one is still in the DOM, marked as toRemove.\n if (this._transaction) {\n // if transaction, get initial layout attributes for the animation\n if (this._transaction.initialLayoutInfo.has(key)) {\n layoutInfo = this._transaction.initialLayoutInfo.get(key);\n }\n\n view = this._transaction.toRemove.get(key);\n if (view) {\n this._transaction.toRemove.delete(key);\n this._applyLayoutInfo(view, layoutInfo);\n }\n }\n\n if (!view) {\n // Create or reuse a view for this row\n view = this.getReusableView(layoutInfo);\n\n // Add the view to the DOM if needed\n if (!removed.has(view)) {\n this._children.add(view);\n }\n }\n\n this._visibleViews.set(key, view);\n removed.delete(view);\n }\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key) as ReusableView;\n this._renderedContent.delete(key);\n this._renderView(view);\n }\n\n // Remove the remaining rows to delete from the DOM\n if (!this._transaction) {\n this.removeViews(removed);\n }\n\n this._correctItemOrder();\n this._flushVisibleViews();\n\n let hasLayoutUpdates = this._transaction && (toAdd.size > 0 || toRemove.size > 0 || this._hasLayoutUpdates());\n if (hasLayoutUpdates) {\n requestAnimationFrame(() => {\n // If we're in a transaction, apply animations to visible views\n // and \"to be removed\" views, which animate off screen.\n if (this._transaction) {\n requestAnimationFrame(() => this._applyLayoutInfos());\n }\n });\n }\n\n return hasLayoutUpdates;\n }\n\n afterRender() {\n if (this.shouldOverscan) {\n this._overscanManager.collectMetrics();\n }\n }\n\n private _flushVisibleViews() {\n // CollectionVirtualizer deals with a flattened set of LayoutInfos, but they can represent heirarchy\n // by referencing a parentKey. Just before rendering the visible views, we rebuild this heirarchy\n // by creating a mapping of views by parent key and recursively calling the delegate's renderWrapper\n // method to build the final tree.\n let viewsByParentKey = new Map([[null, []]]);\n for (let view of this._children) {\n if (view.layoutInfo?.parentKey != null && !viewsByParentKey.has(view.layoutInfo.parentKey)) {\n viewsByParentKey.set(view.layoutInfo.parentKey, []);\n }\n\n viewsByParentKey.get(view.layoutInfo?.parentKey)?.push(view);\n if (!viewsByParentKey.has(view.layoutInfo?.key)) {\n viewsByParentKey.set(view.layoutInfo?.key, []);\n }\n }\n\n let buildTree = (parent: ReusableView, views: ReusableView[]): W[] => views.map(view => {\n let children = viewsByParentKey.get(view.layoutInfo.key);\n return this.delegate.renderWrapper(\n parent,\n view,\n children,\n (childViews) => buildTree(view, childViews)\n );\n });\n\n let children = buildTree(null, viewsByParentKey.get(null));\n this.delegate.setVisibleViews(children);\n }\n\n private _applyLayoutInfo(view: ReusableView, layoutInfo: LayoutInfo) {\n if (view.layoutInfo === layoutInfo) {\n return false;\n }\n\n view.layoutInfo = layoutInfo;\n return true;\n }\n\n private _applyLayoutInfos() {\n let updated = false;\n\n // Apply layout infos to visible views\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n // Apply final layout infos for views that will be removed\n if (this._transaction) {\n for (let view of this._transaction.toRemove.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n for (let view of this._transaction.removed.values()) {\n let cur = view.layoutInfo;\n let layoutInfo = this._transaction.finalLayoutInfo.get(cur.key) || cur;\n layoutInfo = this.layout.getFinalLayoutInfo(layoutInfo.copy());\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n if (updated) {\n this._flushVisibleViews();\n }\n }\n\n private _hasLayoutUpdates() {\n if (!this._transaction) {\n return false;\n }\n\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (!cur) {\n return true;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (\n // Uses equals rather than pointEquals so that width/height changes are taken into account\n !cur.rect.equals(layoutInfo.rect) ||\n cur.opacity !== layoutInfo.opacity ||\n cur.transform !== layoutInfo.transform\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n reuseView(view: ReusableView) {\n view.prepareForReuse();\n this._reusableViews[view.viewType].push(view);\n }\n\n removeViews(toRemove: Set>) {\n for (let view of toRemove) {\n this._children.delete(view);\n }\n }\n\n updateItemSize(key: Key, size: Size) {\n // TODO: we should be able to invalidate a single index path\n // @ts-ignore\n if (!this.layout.updateItemSize) {\n return;\n }\n\n // If the scroll position is currently animating, add the update\n // to a queue to be processed after the animation is complete.\n if (this._scrollAnimation) {\n this._sizeUpdateQueue.set(key, size);\n return;\n }\n\n // @ts-ignore\n let changed = this.layout.updateItemSize(key, size);\n if (changed) {\n this.relayout();\n }\n }\n\n startScrolling() {\n this._isScrolling = true;\n }\n\n endScrolling() {\n this._isScrolling = false;\n this._correctItemOrder();\n this._flushVisibleViews();\n }\n\n private _resetAnimatedContentOffset() {\n // Reset the animated content offset of subviews. See comment in relayoutNow for details.\n if (!this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset = new Point(0, 0);\n this._applyLayoutInfos();\n }\n }\n\n /**\n * Scrolls the item with the given key into view, optionally with an animation.\n * @param key The key of the item to scroll into view.\n * @param duration The duration of the scroll animation.\n */\n scrollToItem(key: Key, options?: ScrollToItemOptions) {\n // key can be 0, so check if null or undefined\n if (key == null) {\n return;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(key);\n if (!layoutInfo) {\n return;\n }\n\n let {\n duration = 300,\n shouldScrollX = true,\n shouldScrollY = true,\n offsetX = 0,\n offsetY = 0\n } = options;\n\n let x = this.visibleRect.x;\n let y = this.visibleRect.y;\n let minX = layoutInfo.rect.x - offsetX;\n let minY = layoutInfo.rect.y - offsetY;\n let maxX = x + this.visibleRect.width;\n let maxY = y + this.visibleRect.height;\n\n if (shouldScrollX) {\n if (minX <= x || maxX === 0) {\n x = minX;\n } else if (layoutInfo.rect.maxX > maxX) {\n x += layoutInfo.rect.maxX - maxX;\n }\n }\n\n if (shouldScrollY) {\n if (minY <= y || maxY === 0) {\n y = minY;\n } else if (layoutInfo.rect.maxY > maxY) {\n y += layoutInfo.rect.maxY - maxY;\n }\n }\n\n return this.scrollTo(new Point(x, y), duration);\n }\n\n /**\n * Performs an animated scroll to the given offset.\n * @param offset - The offset to scroll to.\n * @param duration The duration of the animation.\n * @returns A promise that resolves when the animation is complete.\n */\n scrollTo(offset: Point, duration: number = 300): Promise {\n // Cancel the current scroll animation\n if (this._scrollAnimation) {\n this._scrollAnimation.cancel();\n this._scrollAnimation = null;\n }\n\n // Set the content offset synchronously if the duration is zero\n if (duration <= 0 || this.visibleRect.pointEquals(offset)) {\n this._setContentOffset(offset);\n return Promise.resolve();\n }\n\n this.startScrolling();\n\n this._scrollAnimation = tween(this.visibleRect, offset, duration, easeOut, offset => {this._setContentOffset(offset);});\n this._scrollAnimation.then(() => {\n this._scrollAnimation = null;\n\n // Process view size updates that occurred during the animation.\n // Only views that are still visible will be actually updated.\n for (let [key, size] of this._sizeUpdateQueue) {\n this.updateItemSize(key, size);\n }\n\n this._sizeUpdateQueue.clear();\n this.relayout();\n this._processTransactionQueue();\n this.endScrolling();\n });\n\n return this._scrollAnimation;\n }\n\n private _runTransaction(action: () => void, animated?: boolean) {\n this._startTransaction();\n if (this._nextTransaction) {\n this._nextTransaction.actions.push(action);\n }\n this._endTransaction(animated);\n }\n\n private _startTransaction() {\n if (!this._nextTransaction) {\n this._nextTransaction = new Transaction;\n }\n\n this._nextTransaction.level++;\n }\n\n private _endTransaction(animated?: boolean) {\n if (!this._nextTransaction) {\n return false;\n }\n\n // Save whether the transaction should be animated.\n if (animated != null) {\n this._nextTransaction.animated = animated;\n }\n\n // If we haven't reached level 0, we are still in a\n // nested transaction. Wait for the parent to end.\n if (--this._nextTransaction.level > 0) {\n return false;\n }\n\n // Do nothing for empty transactions\n if (this._nextTransaction.actions.length === 0) {\n this._nextTransaction = null;\n return false;\n }\n\n // Default animations to true\n if (this._nextTransaction.animated == null) {\n this._nextTransaction.animated = true;\n }\n\n // Enqueue the transaction\n this._transactionQueue.push(this._nextTransaction);\n this._nextTransaction = null;\n\n this._processTransactionQueue();\n return true;\n }\n\n private _processTransactionQueue() {\n // If the current transaction is animating, wait until the end\n // to process the next transaction.\n if (this._transaction || this._scrollAnimation) {\n return;\n }\n\n let next = this._transactionQueue.shift();\n if (next) {\n this._performTransaction(next);\n }\n }\n\n private _getContentRect(): Rect {\n return new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n }\n\n private _performTransaction(transaction: Transaction) {\n this._transaction = transaction;\n\n this.relayoutNow({\n transaction: transaction,\n animated: transaction.animated,\n\n beforeLayout: () => {\n // Get the initial layout infos for all views before the updates\n // so we can figure out which views to add and remove.\n if (transaction.animated) {\n transaction.initialMap = this._getLayoutInfoMap(this._getContentRect(), true);\n }\n\n // Apply the actions that occurred during this transaction\n for (let action of transaction.actions) {\n action();\n }\n },\n\n afterLayout: () => {\n // Get the final layout infos after the updates\n if (transaction.animated) {\n transaction.finalMap = this._getLayoutInfoMap(this._getContentRect());\n this._setupTransactionAnimations(transaction);\n } else {\n this._transaction = null;\n }\n },\n\n afterAnimation: () => {\n // Remove and reuse views when animations are done\n if (transaction.toRemove.size > 0 || transaction.removed.size > 0) {\n for (let view of concatIterators(transaction.toRemove.values(), transaction.removed.values())) {\n this._children.delete(view);\n this.reuseView(view);\n }\n }\n\n this._transaction = null;\n\n // Ensure DOM order is correct for accessibility after animations are complete\n this._correctItemOrder();\n this._flushVisibleViews();\n\n this._processTransactionQueue();\n }\n });\n }\n\n private _setupTransactionAnimations(transaction: Transaction) {\n let {initialMap, finalMap} = transaction;\n\n // Store initial and final layout infos for animations\n for (let [key, layoutInfo] of initialMap) {\n if (finalMap.has(key)) {\n // Store the initial layout info for use during animations.\n transaction.initialLayoutInfo.set(key, layoutInfo);\n } else {\n // This view was removed. Store the layout info for use\n // in Layout#getFinalLayoutInfo during animations.\n transaction.finalLayoutInfo.set(layoutInfo.key, layoutInfo);\n }\n }\n\n // Get initial layout infos for views that were added\n for (let [key, layoutInfo] of finalMap) {\n if (!initialMap.has(key)) {\n let initialLayoutInfo = this.layout.getInitialLayoutInfo(layoutInfo.copy());\n transaction.initialLayoutInfo.set(key, initialLayoutInfo);\n }\n }\n\n // Figure out which views were removed.\n for (let [key, view] of this._visibleViews) {\n // If an item has a width of 0, there is no need to remove it from the _visibleViews.\n // Removing an item with width of 0 can cause a loop where the item gets added, removed,\n // added, removed... etc in a loop.\n if (!finalMap.has(key) && view.layoutInfo.rect.width > 0) {\n transaction.removed.set(key, view);\n this._visibleViews.delete(key);\n\n // In case something weird happened, where we have a view but no\n // initial layout info, use the one attached to the view.\n if (view.layoutInfo) {\n if (!transaction.finalLayoutInfo.has(view.layoutInfo.key)) {\n transaction.finalLayoutInfo.set(view.layoutInfo.key, view.layoutInfo);\n }\n }\n }\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {Key, useCallback, useEffect, useMemo, useState} from 'react';\nimport {Layout} from './Layout';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {Virtualizer} from './Virtualizer';\n\ninterface VirtualizerProps {\n renderView(type: string, content: T): V,\n renderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => W[]\n ): W,\n layout: Layout,\n collection: Collection,\n onVisibleRectChange(rect: Rect): void,\n getScrollAnchor?(rect: Rect): Key,\n transitionDuration?: number\n}\n\nexport interface VirtualizerState {\n visibleViews: W[],\n setVisibleRect: (rect: Rect) => void,\n contentSize: Size,\n isAnimating: boolean,\n virtualizer: Virtualizer,\n isScrolling: boolean,\n startScrolling: () => void,\n endScrolling: () => void\n}\n\nexport function useVirtualizerState(opts: VirtualizerProps): VirtualizerState {\n let [visibleViews, setVisibleViews] = useState([]);\n let [contentSize, setContentSize] = useState(new Size());\n let [isAnimating, setAnimating] = useState(false);\n let [isScrolling, setScrolling] = useState(false);\n let virtualizer = useMemo(() => new Virtualizer(), []);\n\n virtualizer.delegate = {\n setVisibleViews,\n setVisibleRect(rect) {\n virtualizer.visibleRect = rect;\n opts.onVisibleRectChange(rect);\n },\n setContentSize,\n renderView: opts.renderView,\n renderWrapper: opts.renderWrapper,\n beginAnimations: () => setAnimating(true),\n endAnimations: () => setAnimating(false),\n getScrollAnchor: opts.getScrollAnchor\n };\n\n virtualizer.layout = opts.layout;\n virtualizer.collection = opts.collection;\n virtualizer.transitionDuration = opts.transitionDuration;\n\n useLayoutEffect(() => {\n virtualizer.afterRender();\n });\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => virtualizer.willUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let setVisibleRect = useCallback((rect) => {\n virtualizer.visibleRect = rect;\n }, [virtualizer]);\n let startScrolling = useCallback(() => {\n virtualizer.startScrolling();\n setScrolling(true);\n }, [virtualizer]);\n let endScrolling = useCallback(() => {\n virtualizer.endScrolling();\n setScrolling(false);\n }, [virtualizer]);\n\n let state = useMemo(() => ({\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n }), [\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n ]);\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ntype Assertiveness = 'assertive' | 'polite';\n\n/* Inspired by https://github.com/AlmeroSteyn/react-aria-live */\nconst LIVEREGION_TIMEOUT_DELAY = 7000;\n\nlet liveAnnouncer: LiveAnnouncer = null;\n\n/**\n * Announces the message using screen reader technology.\n */\nexport function announce(\n message: string,\n assertiveness: Assertiveness = 'assertive',\n timeout = LIVEREGION_TIMEOUT_DELAY\n) {\n if (!liveAnnouncer) {\n liveAnnouncer = new LiveAnnouncer();\n }\n\n liveAnnouncer.announce(message, assertiveness, timeout);\n}\n\n/**\n * Stops all queued announcements.\n */\nexport function clearAnnouncer(assertiveness: Assertiveness) {\n if (liveAnnouncer) {\n liveAnnouncer.clear(assertiveness);\n }\n}\n\n/**\n * Removes the announcer from the DOM.\n */\nexport function destroyAnnouncer() {\n if (liveAnnouncer) {\n liveAnnouncer.destroy();\n liveAnnouncer = null;\n }\n}\n\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass LiveAnnouncer {\n node: HTMLElement;\n assertiveLog: HTMLElement;\n politeLog: HTMLElement;\n\n constructor() {\n this.node = document.createElement('div');\n this.node.dataset.liveAnnouncer = 'true';\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n });\n\n this.assertiveLog = this.createLog('assertive');\n this.node.appendChild(this.assertiveLog);\n\n this.politeLog = this.createLog('polite');\n this.node.appendChild(this.politeLog);\n\n document.body.prepend(this.node);\n }\n\n createLog(ariaLive: string) {\n let node = document.createElement('div');\n node.setAttribute('role', 'log');\n node.setAttribute('aria-live', ariaLive);\n node.setAttribute('aria-relevant', 'additions');\n return node;\n }\n\n destroy() {\n if (!this.node) {\n return;\n }\n\n document.body.removeChild(this.node);\n this.node = null;\n }\n\n announce(message: string, assertiveness = 'assertive', timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) {\n return;\n }\n\n let node = document.createElement('div');\n node.textContent = message;\n\n if (assertiveness === 'assertive') {\n this.assertiveLog.appendChild(node);\n } else {\n this.politeLog.appendChild(node);\n }\n\n if (message !== '') {\n setTimeout(() => {\n node.remove();\n }, timeout);\n }\n }\n\n clear(assertiveness: Assertiveness) {\n if (!this.node) {\n return;\n }\n\n if (!assertiveness || assertiveness === 'assertive') {\n this.assertiveLog.innerHTML = '';\n }\n\n if (!assertiveness || assertiveness === 'polite') {\n this.politeLog.innerHTML = '';\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {GridCollection} from '@react-types/grid';\nimport type {GridState} from '@react-stately/grid';\nimport {Key} from 'react';\nimport type {KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate,\n actions: {\n onRowAction: (key: Key) => void,\n onCellAction: (key: Key) => void\n }\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap = new WeakMap>, GridMapShared>();\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '@react-aria/live-announcer';\nimport {Collection, Node, Selection} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key, useRef} from 'react';\nimport {SelectionManager} from '@react-stately/selection';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useUpdateEffect} from '@react-aria/utils';\n\nexport interface GridSelectionAnnouncementProps {\n /**\n * A function that returns the text that should be announced by assistive technology when a row is added or removed from selection.\n * @default (key) => state.collection.getItem(key)?.textValue\n */\n getRowText?: (key: Key) => string\n}\n\ninterface GridSelectionState {\n /** A collection of items in the grid. */\n collection: Collection>,\n /** A set of items that are disabled. */\n disabledKeys: Set,\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\nexport function useGridSelectionAnnouncement(props: GridSelectionAnnouncementProps, state: GridSelectionState) {\n let {\n getRowText = (key) => state.collection.getItem(key)?.textValue\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n // Many screen readers do not announce when items in a grid are selected/deselected.\n // We do this using an ARIA live region.\n let selection = state.selectionManager.rawSelection;\n let lastSelection = useRef(selection);\n useUpdateEffect(() => {\n if (!state.selectionManager.isFocused) {\n lastSelection.current = selection;\n\n return;\n }\n\n let addedKeys = diffSelection(selection, lastSelection.current);\n let removedKeys = diffSelection(lastSelection.current, selection);\n\n // If adding or removing a single row from the selection, announce the name of that item.\n let isReplace = state.selectionManager.selectionBehavior === 'replace';\n let messages = [];\n\n if ((state.selectionManager.selectedKeys.size === 1 && isReplace)) {\n if (state.collection.getItem(state.selectionManager.selectedKeys.keys().next().value)) {\n let currentSelectionText = getRowText(state.selectionManager.selectedKeys.keys().next().value);\n if (currentSelectionText) {\n messages.push(stringFormatter.format('selectedItem', {item: currentSelectionText}));\n }\n }\n } else if (addedKeys.size === 1 && removedKeys.size === 0) {\n let addedText = getRowText(addedKeys.keys().next().value);\n if (addedText) {\n messages.push(stringFormatter.format('selectedItem', {item: addedText}));\n }\n } else if (removedKeys.size === 1 && addedKeys.size === 0) {\n if (state.collection.getItem(removedKeys.keys().next().value)) {\n let removedText = getRowText(removedKeys.keys().next().value);\n if (removedText) {\n messages.push(stringFormatter.format('deselectedItem', {item: removedText}));\n }\n }\n }\n\n // Announce how many items are selected, except when selecting the first item.\n if (state.selectionManager.selectionMode === 'multiple') {\n if (messages.length === 0 || selection === 'all' || selection.size > 1 || lastSelection.current === 'all' || lastSelection.current?.size > 1) {\n messages.push(selection === 'all'\n ? stringFormatter.format('selectedAll')\n : stringFormatter.format('selectedCount', {count: selection.size})\n );\n }\n }\n\n if (messages.length > 0) {\n announce(messages.join(' '));\n }\n\n lastSelection.current = selection;\n }, [selection]);\n}\n\nfunction diffSelection(a: Selection, b: Selection): Set {\n let res = new Set();\n if (a === 'all' || b === 'all') {\n return res;\n }\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useDescription} from '@react-aria/utils';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\nexport interface HighlightSelectionDescriptionProps {\n selectionManager: MultipleSelectionManager,\n hasItemActions?: boolean\n}\n\n/**\n * Computes the description for a grid selectable collection.\n * @param props\n */\nexport function useHighlightSelectionDescription(props: HighlightSelectionDescriptionProps): AriaLabelingProps {\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let modality = useInteractionModality();\n // null is the default if the user hasn't interacted with the table at all yet or the rest of the page\n let shouldLongPress = (modality === 'pointer' || modality === 'virtual' || modality == null)\n && typeof window !== 'undefined' && 'ontouchstart' in window;\n\n let interactionDescription = useMemo(() => {\n let selectionMode = props.selectionManager.selectionMode;\n let selectionBehavior = props.selectionManager.selectionBehavior;\n\n let message = undefined;\n if (shouldLongPress) {\n message = stringFormatter.format('longPressToSelect');\n }\n\n return selectionBehavior === 'replace' && selectionMode !== 'none' && props.hasItemActions ? message : undefined;\n }, [props.selectionManager.selectionMode, props.selectionManager.selectionBehavior, props.hasItemActions, stringFormatter, shouldLongPress]);\n\n let descriptionProps = useDescription(interactionDescription);\n return descriptionProps;\n}\n","import {AriaCheckboxProps} from '@react-types/checkbox';\nimport {GridCollection} from '@react-types/grid';\nimport {GridState} from '@react-stately/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface AriaGridSelectionCheckboxProps {\n /** A unique key for the checkbox. */\n key: Key\n}\n\nexport interface GridSelectionCheckboxAria {\n /** Props for the row selection checkbox element. */\n checkboxProps: AriaCheckboxProps\n}\n\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid.\n * @param props - Props for the selection checkbox.\n * @param state - State of the grid, as returned by `useGridState`.\n */\nexport function useGridSelectionCheckbox>(props: AriaGridSelectionCheckboxProps, state: GridState): GridSelectionCheckboxAria {\n let {key} = props;\n\n let manager = state.selectionManager;\n let checkboxId = useId();\n let isDisabled = !state.selectionManager.canSelectItem(key);\n let isSelected = state.selectionManager.isSelected(key);\n\n let onChange = () => manager.select(key);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return {\n checkboxProps: {\n id: checkboxId,\n 'aria-label': stringFormatter.format('select'),\n isSelected,\n isDisabled,\n onChange\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"deselectedItem\": \"{item} غير المحدد\",\n \"longPressToSelect\": \"اضغط مطولًا للدخول إلى وضع التحديد.\",\n \"select\": \"تحديد\",\n \"selectedAll\": \"جميع العناصر المحددة.\",\n \"selectedCount\": \"{count, plural, =0 {لم يتم تحديد عناصر} one {# عنصر محدد} other {# عنصر محدد}}.\",\n \"selectedItem\": \"{item} المحدد\"\n}\n","{\n \"deselectedItem\": \"{item} не е избран.\",\n \"longPressToSelect\": \"Натиснете и задръжте за да влезете в избирателен режим.\",\n \"select\": \"Изберете\",\n \"selectedAll\": \"Всички елементи са избрани.\",\n \"selectedCount\": \"{count, plural, =0 {Няма избрани елементи} one {# избран елемент} other {# избрани елементи}}.\",\n \"selectedItem\": \"{item} избран.\"\n}\n","{\n \"deselectedItem\": \"Položka {item} není vybrána.\",\n \"longPressToSelect\": \"Dlouhým stisknutím přejdete do režimu výběru.\",\n \"select\": \"Vybrat\",\n \"selectedAll\": \"Vybrány všechny položky.\",\n \"selectedCount\": \"{count, plural, =0 {Nevybrány žádné položky} one {Vybrána # položka} other {Vybráno # položek}}.\",\n \"selectedItem\": \"Vybrána položka {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} ikke valgt.\",\n \"longPressToSelect\": \"Lav et langt tryk for at aktivere valgtilstand.\",\n \"select\": \"Vælg\",\n \"selectedAll\": \"Alle elementer valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer valgt} one {# element valgt} other {# elementer valgt}}.\",\n \"selectedItem\": \"{item} valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} nicht ausgewählt.\",\n \"longPressToSelect\": \"Gedrückt halten, um Auswahlmodus zu öffnen.\",\n \"select\": \"Auswählen\",\n \"selectedAll\": \"Alle Elemente ausgewählt.\",\n \"selectedCount\": \"{count, plural, =0 {Keine Elemente ausgewählt} one {# Element ausgewählt} other {# Elemente ausgewählt}}.\",\n \"selectedItem\": \"{item} ausgewählt.\"\n}\n","{\n \"deselectedItem\": \"Δεν επιλέχθηκε το στοιχείο {item}.\",\n \"longPressToSelect\": \"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.\",\n \"select\": \"Επιλογή\",\n \"selectedAll\": \"Επιλέχθηκαν όλα τα στοιχεία.\",\n \"selectedCount\": \"{count, plural, =0 {Δεν επιλέχθηκαν στοιχεία} one {Επιλέχθηκε # στοιχείο} other {Επιλέχθηκαν # στοιχεία}}.\",\n \"selectedItem\": \"Επιλέχθηκε το στοιχείο {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} not selected.\",\n \"select\": \"Select\",\n \"selectedCount\": \"{count, plural, =0 {No items selected} one {# item selected} other {# items selected}}.\",\n \"selectedAll\": \"All items selected.\",\n \"selectedItem\": \"{item} selected.\",\n \"longPressToSelect\": \"Long press to enter selection mode.\"\n}\n","{\n \"deselectedItem\": \"{item} no seleccionado.\",\n \"longPressToSelect\": \"Mantenga pulsado para abrir el modo de selección.\",\n \"select\": \"Seleccionar\",\n \"selectedAll\": \"Todos los elementos seleccionados.\",\n \"selectedCount\": \"{count, plural, =0 {Ningún elemento seleccionado} one {# elemento seleccionado} other {# elementos seleccionados}}.\",\n \"selectedItem\": \"{item} seleccionado.\"\n}\n","{\n \"deselectedItem\": \"{item} pole valitud.\",\n \"longPressToSelect\": \"Valikurežiimi sisenemiseks vajutage pikalt.\",\n \"select\": \"Vali\",\n \"selectedAll\": \"Kõik üksused valitud.\",\n \"selectedCount\": \"{count, plural, =0 {Üksusi pole valitud} one {# üksus valitud} other {# üksust valitud}}.\",\n \"selectedItem\": \"{item} valitud.\"\n}\n","{\n \"deselectedItem\": \"Kohdetta {item} ei valittu.\",\n \"longPressToSelect\": \"Siirry valintatilaan painamalla pitkään.\",\n \"select\": \"Valitse\",\n \"selectedAll\": \"Kaikki kohteet valittu.\",\n \"selectedCount\": \"{count, plural, =0 {Ei yhtään kohdetta valittu} one {# kohde valittu} other {# kohdetta valittu}}.\",\n \"selectedItem\": \"{item} valittu.\"\n}\n","{\n \"deselectedItem\": \"{item} non sélectionné.\",\n \"longPressToSelect\": \"Appuyez de manière prolongée pour passer en mode de sélection.\",\n \"select\": \"Sélectionner\",\n \"selectedAll\": \"Tous les éléments sélectionnés.\",\n \"selectedCount\": \"{count, plural, =0 {Aucun élément sélectionné} one {# élément sélectionné} other {# éléments sélectionnés}}.\",\n \"selectedItem\": \"{item} sélectionné.\"\n}\n","{\n \"deselectedItem\": \"{item} לא נבחר.\",\n \"longPressToSelect\": \"הקשה ארוכה לכניסה למצב בחירה.\",\n \"select\": \"בחר\",\n \"selectedAll\": \"כל הפריטים נבחרו.\",\n \"selectedCount\": \"{count, plural, =0 {לא נבחרו פריטים} one {פריט # נבחר} other {# פריטים נבחרו}}.\",\n \"selectedItem\": \"{item} נבחר.\"\n}\n","{\n \"deselectedItem\": \"Stavka {item} nije odabrana.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u način odabira.\",\n \"select\": \"Odaberite\",\n \"selectedAll\": \"Odabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije odabrana nijedna stavka} one {Odabrana je # stavka} other {Odabrano je # stavki}}.\",\n \"selectedItem\": \"Stavka {item} je odabrana.\"\n}\n","{\n \"deselectedItem\": \"{item} nincs kijelölve.\",\n \"longPressToSelect\": \"Nyomja hosszan a kijelöléshez.\",\n \"select\": \"Kijelölés\",\n \"selectedAll\": \"Az összes elem kijelölve.\",\n \"selectedCount\": \"{count, plural, =0 {Egy elem sincs kijelölve} one {# elem kijelölve} other {# elem kijelölve}}.\",\n \"selectedItem\": \"{item} kijelölve.\"\n}\n","{\n \"deselectedItem\": \"{item} non selezionato.\",\n \"longPressToSelect\": \"Premi a lungo per passare alla modalità di selezione.\",\n \"select\": \"Seleziona\",\n \"selectedAll\": \"Tutti gli elementi selezionati.\",\n \"selectedCount\": \"{count, plural, =0 {Nessun elemento selezionato} one {# elemento selezionato} other {# elementi selezionati}}.\",\n \"selectedItem\": \"{item} selezionato.\"\n}\n","{\n \"deselectedItem\": \"{item} が選択されていません。\",\n \"longPressToSelect\": \"長押しして選択モードを開きます。\",\n \"select\": \"選択\",\n \"selectedAll\": \"すべての項目を選択しました。\",\n \"selectedCount\": \"{count, plural, =0 {項目が選択されていません} one {# 項目を選択しました} other {# 項目を選択しました}}。\",\n \"selectedItem\": \"{item} を選択しました。\"\n}\n","{\n \"deselectedItem\": \"{item}이(가) 선택되지 않았습니다.\",\n \"longPressToSelect\": \"선택 모드로 들어가려면 길게 누르십시오.\",\n \"select\": \"선택\",\n \"selectedAll\": \"모든 항목이 선택되었습니다.\",\n \"selectedCount\": \"{count, plural, =0 {선택된 항목이 없습니다} one {#개 항목이 선택되었습니다} other {#개 항목이 선택되었습니다}}.\",\n \"selectedItem\": \"{item}이(가) 선택되었습니다.\"\n}\n","{\n \"deselectedItem\": \"{item} nepasirinkta.\",\n \"longPressToSelect\": \"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.\",\n \"select\": \"Pasirinkti\",\n \"selectedAll\": \"Pasirinkti visi elementai.\",\n \"selectedCount\": \"{count, plural, =0 {Nepasirinktas nė vienas elementas} one {Pasirinktas # elementas} other {Pasirinkta elementų: #}}.\",\n \"selectedItem\": \"Pasirinkta: {item}.\"\n}\n","{\n \"deselectedItem\": \"Vienums {item} nav atlasīts.\",\n \"longPressToSelect\": \"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.\",\n \"select\": \"Atlasīt\",\n \"selectedAll\": \"Atlasīti visi vienumi.\",\n \"selectedCount\": \"{count, plural, =0 {Nav atlasīts neviens vienums} one {Atlasīto vienumu skaits: #} other {Atlasīto vienumu skaits: #}}.\",\n \"selectedItem\": \"Atlasīts vienums {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} er ikke valgt.\",\n \"longPressToSelect\": \"Bruk et langt trykk for å gå inn i valgmodus.\",\n \"select\": \"Velg\",\n \"selectedAll\": \"Alle elementer er valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer er valgt} one {# element er valgt} other {# elementer er valgt}}.\",\n \"selectedItem\": \"{item} er valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} niet geselecteerd.\",\n \"longPressToSelect\": \"Druk lang om de selectiemodus te openen.\",\n \"select\": \"Selecteren\",\n \"selectedAll\": \"Alle items geselecteerd.\",\n \"selectedCount\": \"{count, plural, =0 {Geen items geselecteerd} one {# item geselecteerd} other {# items geselecteerd}}.\",\n \"selectedItem\": \"{item} geselecteerd.\"\n}\n","{\n \"deselectedItem\": \"Nie zaznaczono {item}.\",\n \"longPressToSelect\": \"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.\",\n \"select\": \"Zaznacz\",\n \"selectedAll\": \"Wszystkie zaznaczone elementy.\",\n \"selectedCount\": \"{count, plural, =0 {Nie zaznaczono żadnych elementów} one {# zaznaczony element} other {# zaznaczonych elementów}}.\",\n \"selectedItem\": \"Zaznaczono {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Mantenha pressionado para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Prima continuamente para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} neselectat.\",\n \"longPressToSelect\": \"Apăsați lung pentru a intra în modul de selectare.\",\n \"select\": \"Selectare\",\n \"selectedAll\": \"Toate elementele selectate.\",\n \"selectedCount\": \"{count, plural, =0 {Niciun element selectat} one {# element selectat} other {# elemente selectate}}.\",\n \"selectedItem\": \"{item} selectat.\"\n}\n","{\n \"deselectedItem\": \"{item} не выбрано.\",\n \"longPressToSelect\": \"Нажмите и удерживайте для входа в режим выбора.\",\n \"select\": \"Выбрать\",\n \"selectedAll\": \"Выбраны все элементы.\",\n \"selectedCount\": \"{count, plural, =0 {Нет выбранных элементов} one {# элемент выбран} other {# элементов выбрано}}.\",\n \"selectedItem\": \"{item} выбрано.\"\n}\n","{\n \"deselectedItem\": \"Nevybraté položky: {item}.\",\n \"longPressToSelect\": \"Dlhším stlačením prejdite do režimu výberu.\",\n \"select\": \"Vybrať\",\n \"selectedAll\": \"Všetky vybraté položky.\",\n \"selectedCount\": \"{count, plural, =0 {Žiadne vybraté položky} one {# vybratá položka} other {Počet vybratých položiek:#}}.\",\n \"selectedItem\": \"Vybraté položky: {item}.\"\n}\n","{\n \"deselectedItem\": \"Element {item} ni izbran.\",\n \"longPressToSelect\": \"Za izbirni način pritisnite in dlje časa držite.\",\n \"select\": \"Izberite\",\n \"selectedAll\": \"Vsi elementi so izbrani.\",\n \"selectedCount\": \"{count, plural, =0 {Noben element ni izbran} one {# element je izbran} other {# elementov je izbranih}}.\",\n \"selectedItem\": \"Element {item} je izbran.\"\n}\n","{\n \"deselectedItem\": \"{item} nije izabrano.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u režim biranja.\",\n \"select\": \"Izaberite\",\n \"selectedAll\": \"Izabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije izabrana nijedna stavka} one {Izabrana je # stavka} other {Izabrano je # stavki}}.\",\n \"selectedItem\": \"{item} je izabrano.\"\n}\n","{\n \"deselectedItem\": \"{item} ej markerat.\",\n \"longPressToSelect\": \"Tryck länge när du vill öppna väljarläge.\",\n \"select\": \"Markera\",\n \"selectedAll\": \"Alla markerade objekt.\",\n \"selectedCount\": \"{count, plural, =0 {Inga markerade objekt} one {# markerat objekt} other {# markerade objekt}}.\",\n \"selectedItem\": \"{item} markerat.\"\n}\n","{\n \"deselectedItem\": \"{item} seçilmedi.\",\n \"longPressToSelect\": \"Seçim moduna girmek için uzun basın.\",\n \"select\": \"Seç\",\n \"selectedAll\": \"Tüm ögeler seçildi.\",\n \"selectedCount\": \"{count, plural, =0 {Hiçbir öge seçilmedi} one {# öge seçildi} other {# öge seçildi}}.\",\n \"selectedItem\": \"{item} seçildi.\"\n}\n","{\n \"deselectedItem\": \"{item} не вибрано.\",\n \"longPressToSelect\": \"Виконайте довге натиснення, щоб перейти в режим вибору.\",\n \"select\": \"Вибрати\",\n \"selectedAll\": \"Усі елементи вибрано.\",\n \"selectedCount\": \"{count, plural, =0 {Жодних елементів не вибрано} one {# елемент вибрано} other {Вибрано елементів: #}}.\",\n \"selectedItem\": \"{item} вибрано.\"\n}\n","{\n \"deselectedItem\": \"未选择 {item}。\",\n \"longPressToSelect\": \"长按以进入选择模式。\",\n \"select\": \"选择\",\n \"selectedAll\": \"已选择所有项目。\",\n \"selectedCount\": \"{count, plural, =0 {未选择项目} one {已选择 # 个项目} other {已选择 # 个项目}}。\",\n \"selectedItem\": \"已选择 {item}。\"\n}\n","{\n \"deselectedItem\": \"未選取「{item}」。\",\n \"longPressToSelect\": \"長按以進入選擇模式。\",\n \"select\": \"選取\",\n \"selectedAll\": \"已選取所有項目。\",\n \"selectedCount\": \"{count, plural, =0 {未選取任何項目} one {已選取 # 個項目} other {已選取 # 個項目}}。\",\n \"selectedItem\": \"已選取「{item}」。\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport type {ListState} from '@react-stately/list';\n\ninterface ListMapShared {\n id: string,\n onAction: (key: Key) => void\n}\n\n// Used to share:\n// id of the list and onAction between useList, useListItem, and useListSelectionCheckbox\nexport const listMap = new WeakMap, ListMapShared>();\n\nexport function getRowId(state: ListState, key: Key) {\n let {id} = listMap.get(state);\n if (!id) {\n throw new Error('Unknown list');\n }\n\n return `${id}-${normalizeKey(key)}`;\n}\n\nexport function normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n KeyboardDelegate,\n MultipleSelection\n} from '@react-types/shared';\nimport {filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {listMap} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useGridSelectionAnnouncement, useHighlightSelectionDescription} from '@react-aria/grid';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface GridListProps extends CollectionBase, MultipleSelection {\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\nexport interface AriaGridListProps extends GridListProps, DOMProps, AriaLabelingProps {}\n\nexport interface AriaGridListOptions extends Omit, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList(props: AriaGridListOptions, state: ListState, ref: RefObject): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n onAction\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate: keyboardDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace'\n });\n\n let id = useId();\n listMap.set(state, {id, onAction});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n state.collection.size === 0 ? {} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, Node as RSNode} from '@react-types/shared';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {getRowId, listMap} from './utils';\nimport {isFocusVisible} from '@react-aria/interactions';\nimport type {ListState} from '@react-stately/list';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {KeyboardEvent as ReactKeyboardEvent, RefObject} from 'react';\nimport {SelectableItemStates, useSelectableItem} from '@react-aria/selection';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaGridListItemOptions {\n /** An object representing the list item. Contains all the relevant information that makes up the list row. */\n node: RSNode,\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes,\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes,\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem(props: AriaGridListItemOptions, state: ListState, ref: RefObject): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {\n node,\n isVirtualized,\n shouldSelectOnPressUp\n } = props;\n\n let {direction} = useLocale();\n let {onAction} = listMap.get(state);\n let descriptionId = useSlotId();\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (!ref.current.contains(document.activeElement)) {\n focusSafely(ref.current);\n }\n };\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp,\n onAction: onAction ? () => onAction(node.key) : undefined,\n focus\n });\n\n let onKeyDown = (e: ReactKeyboardEvent) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n switch (e.key) {\n case 'ArrowLeft': {\n // Find the next focusable element within the row.\n let focusable = direction === 'rtl'\n ? walker.nextNode() as FocusableElement\n : walker.previousNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n let focusable = direction === 'rtl'\n ? walker.previousNode() as FocusableElement\n : walker.nextNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && ref.current.contains(e.target as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = (e) => {\n if (e.target !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let rowProps: DOMAttributes = mergeProps(itemProps, {\n role: 'row',\n onKeyDownCapture: onKeyDown,\n onFocus,\n 'aria-label': node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key) ? state.selectionManager.isSelected(node.key) : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby': descriptionId && node.textValue ? `${getRowId(state, node.key)} ${descriptionId}` : undefined,\n id: getRowId(state, node.key)\n });\n\n if (isVirtualized) {\n rowProps['aria-rowindex'] = node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n return {\n rowProps,\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridSelectionCheckboxProps, GridSelectionCheckboxAria, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {getRowId} from './utils';\nimport type {ListState} from '@react-stately/list';\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid list.\n * @param props - Props for the selection checkbox.\n * @param state - State of the list, as returned by `useListState`.\n */\nexport function useGridListSelectionCheckbox(props: AriaGridSelectionCheckboxProps, state: ListState): GridSelectionCheckboxAria {\n let {key} = props;\n const {checkboxProps} = useGridSelectionCheckbox(props, state as any);\n\n return {\n checkboxProps: {\n ...checkboxProps,\n 'aria-labelledby': `${checkboxProps.id} ${getRowId(state, key)}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DropTarget, DropTargetDelegate, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[],\n validRect: Rect\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout extends Layout> implements KeyboardDelegate, DropTargetDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection>, key: Key) => number;\n protected layoutInfos: Map;\n protected layoutNodes: Map;\n protected contentSize: Size;\n collection: Collection>;\n disabledKeys: Set = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n protected lastValidRect: Rect;\n protected validRect: Rect;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n this.lastValidRect = new Rect();\n this.validRect = new Rect();\n this.contentSize = new Size();\n }\n\n getLayoutInfo(key: Key) {\n let res = this.layoutInfos.get(key);\n\n // If the layout info wasn't found, it might be outside the bounds of the area that we've\n // computed layout for so far. This can happen when accessing a random key, e.g pressing Home/End.\n // Compute the full layout and try again.\n if (!res && this.validRect.area < this.contentSize.area && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = new Rect(0, 0, Infinity, Infinity);\n this.rootNodes = this.buildCollection();\n this.validRect = new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n res = this.layoutInfos.get(key);\n }\n\n return res;\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n // If layout hasn't yet been done for the requested rect, union the\n // new rect with the existing valid rect, and recompute.\n if (!this.validRect.containsRect(rect) && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = this.validRect.union(rect);\n this.rootNodes = this.buildCollection();\n }\n\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky || this.virtualizer.isPersistedKey(node.layoutInfo.key);\n }\n\n protected shouldInvalidateEverything(invalidationContext: InvalidationContext, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n return invalidationContext.sizeChanged;\n }\n\n validate(invalidationContext: InvalidationContext, unknown>) {\n this.collection = this.virtualizer.collection;\n\n // Reset valid rect if we will have to invalidate everything.\n // Otherwise we can reuse cached layout infos outside the current visible rect.\n this.invalidateEverything = this.shouldInvalidateEverything(invalidationContext);\n if (this.invalidateEverything) {\n this.lastValidRect = this.validRect;\n this.validRect = this.virtualizer.getVisibleRect();\n }\n\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection && this.collection !== this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n this.invalidateEverything = false;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let skipped = 0;\n let nodes = [];\n for (let node of this.collection) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (node.type === 'item' && y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n\n if (node.type === 'item' && y > this.validRect.maxY) {\n y += (this.collection.size - (nodes.length + skipped)) * rowHeight;\n break;\n }\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n isValid(node: Node, y: number) {\n let cached = this.layoutNodes.get(node.key);\n return (\n !this.invalidateEverything &&\n cached &&\n cached.node === node &&\n y === (cached.header || cached.layoutInfo).rect.y &&\n cached.layoutInfo.rect.intersects(this.lastValidRect) &&\n cached.validRect.containsRect(cached.layoutInfo.rect.intersection(this.validRect))\n );\n }\n\n buildChild(node: Node, x: number, y: number): LayoutNode {\n if (this.isValid(node, y)) {\n return this.layoutNodes.get(node.key);\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let skipped = 0;\n let children = [];\n for (let child of node.childNodes) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n\n if (y > this.validRect.maxY) {\n // Estimate the remaining height for rows that we don't need to layout right now.\n y += ([...node.childNodes].length - (children.length + skipped)) * rowHeight;\n break;\n }\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children,\n validRect: layoutInfo.rect.intersection(this.validRect)\n };\n }\n\n buildItem(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || node !== previousLayoutNode.node || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n // allow overflow so the focus ring/selection ring can extend outside to overlap with the adjacent items borders\n layoutInfo.allowOverflow = true;\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo,\n validRect: layoutInfo.rect\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by reseting validRect.\n n.validRect = new Rect();\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey(): Key | null {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey(): Key | null {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget {\n x += this.virtualizer.visibleRect.x;\n y += this.virtualizer.visibleRect.y;\n\n let key = this.virtualizer.keyAtPoint(new Point(x, y));\n if (key == null || this.collection.size === 0) {\n return {type: 'root'};\n }\n\n let layoutInfo = this.getLayoutInfo(key);\n let rect = layoutInfo.rect;\n let target: DropTarget = {\n type: 'item',\n key: layoutInfo.key,\n dropPosition: 'on'\n };\n\n // If dropping on the item isn't accepted, try the target before or after depending on the y position.\n // Otherwise, if dropping on the item is accepted, still try the before/after positions if within 10px\n // of the top or bottom of the item.\n if (!isValidDropTarget(target)) {\n if (y <= rect.y + rect.height / 2 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n } else if (y <= rect.y + 10 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (y >= rect.maxY - 10 && isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n\n return target;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class ListCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>) {\n this.iterable = nodes;\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && node.type === 'section') {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {ListCollection} from './ListCollection';\nimport {MultipleSelectionStateProps, SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface ListProps extends CollectionBase, MultipleSelectionStateProps {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface ListState {\n /** A collection of items in the list. */\n collection: Collection>,\n\n /** A set of items that are disabled. */\n disabledKeys: Set,\n\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for list-like components. Handles building a collection\n * of items from props, and manages multiple selection state.\n */\nexport function useListState(props: ListProps): ListState {\n let {filter} = props;\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let factory = nodes => filter ? new ListCollection(filter(nodes)) : new ListCollection(nodes as Iterable>);\n let context = useMemo(() => ({suppressTextValueWarning: props.suppressTextValueWarning}), [props.suppressTextValueWarning]);\n\n let collection = useCollection(props, factory, context, [filter]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collection, selectionState.focusedKey]);\n\n return {\n collection,\n disabledKeys,\n selectionManager: new SelectionManager(collection, selectionState)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, SingleSelection} from '@react-types/shared';\nimport {Key, useMemo} from 'react';\nimport {ListState, useListState} from './useListState';\nimport {Node} from '@react-types/shared';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface SingleSelectListProps extends CollectionBase, Omit {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface SingleSelectListState extends ListState {\n /** The key for the currently selected item. */\n readonly selectedKey: Key,\n\n /** Sets the selected key. */\n setSelectedKey(key: Key): void,\n\n /** The value of the currently selected item. */\n readonly selectedItem: Node\n}\n\n/**\n * Provides state management for list-like components with single selection.\n * Handles building a collection of items from props, and manages selection state.\n */\nexport function useSingleSelectListState(props: SingleSelectListProps): SingleSelectListState {\n let [selectedKey, setSelectedKey] = useControlledState(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange);\n let selectedKeys = useMemo(() => selectedKey != null ? [selectedKey] : [], [selectedKey]);\n let {collection, disabledKeys, selectionManager} = useListState({\n ...props,\n selectionMode: 'single',\n disallowEmptySelection: true,\n allowDuplicateSelectionEvents: true,\n selectedKeys,\n onSelectionChange: (keys: Set) => {\n let key = keys.values().next().value;\n\n // Always fire onSelectionChange, even if the key is the same\n // as the current key (useControlledState does not).\n if (key === selectedKey && props.onSelectionChange) {\n props.onSelectionChange(key);\n }\n\n setSelectedKey(key);\n }\n });\n\n let selectedItem = selectedKey != null\n ? collection.getItem(selectedKey)\n : null;\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n selectedKey,\n setSelectedKey,\n selectedItem\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: DOMAttributes | LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, HelpTextProps, Validation} from '@react-types/shared';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\nexport interface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaProgressBarProps} from '@react-types/progress';\nimport {clamp, filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {useLabel} from '@react-aria/label';\nimport {useNumberFormatter} from '@react-aria/i18n';\n\nexport interface ProgressBarAria {\n /** Props for the progress bar container element. */\n progressBarProps: DOMAttributes,\n /** Props for the progress bar's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a progress bar component.\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n */\nexport function useProgressBar(props: AriaProgressBarProps): ProgressBarAria {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n valueLabel,\n isIndeterminate,\n formatOptions = {\n style: 'percent'\n }\n } = props;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Progress bar is not an HTML input element so it\n // shouldn't be labeled by a
\n );\n}\n\nlet _ProgressBarBase = React.forwardRef(ProgressBarBase);\nexport {_ProgressBarBase as ProgressBarBase};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {ProgressBarBase} from './ProgressBarBase';\nimport React from 'react';\nimport {SpectrumProgressBarProps} from '@react-types/progress';\nimport styles from '@adobe/spectrum-css-temp/components/barloader/vars.css';\nimport {useProgressBar} from '@react-aria/progress';\n\nfunction ProgressBar(props: SpectrumProgressBarProps, ref: DOMRef) {\n let {variant, ...otherProps} = props;\n const {\n progressBarProps,\n labelProps\n } = useProgressBar(props);\n\n return (\n \n );\n}\n\n/**\n * ProgressBars show the progression of a system operation: downloading, uploading, processing, etc., in a visual way.\n * They can represent either determinate or indeterminate progress.\n */\nlet _ProgressBar = React.forwardRef(ProgressBar);\nexport {_ProgressBar as ProgressBar};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {clamp} from '@react-aria/utils';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport React, {CSSProperties} from 'react';\nimport {SpectrumProgressCircleProps} from '@react-types/progress';\nimport styles from '@adobe/spectrum-css-temp/components/circleloader/vars.css';\nimport {useProgressBar} from '@react-aria/progress';\n\nfunction ProgressCircle(props: SpectrumProgressCircleProps, ref: DOMRef) {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n size = 'M',\n variant,\n isIndeterminate = false,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...otherProps\n } = props;\n let domRef = useDOMRef(ref);\n let {styleProps} = useStyleProps(otherProps);\n\n value = clamp(value, minValue, maxValue);\n let {progressBarProps} = useProgressBar({...props, value});\n\n let subMask1Style: CSSProperties = {};\n let subMask2Style: CSSProperties = {};\n if (!isIndeterminate) {\n let percentage = (value - minValue) / (maxValue - minValue) * 100;\n let angle;\n if (percentage > 0 && percentage <= 50) {\n angle = -180 + (percentage / 50 * 180);\n subMask1Style.transform = `rotate(${angle}deg)`;\n subMask2Style.transform = 'rotate(-180deg)';\n } else if (percentage > 50) {\n angle = -180 + (percentage - 50) / 50 * 180;\n subMask1Style.transform = 'rotate(0deg)';\n subMask2Style.transform = `rotate(${angle}deg)`;\n }\n }\n\n if (!ariaLabel && !ariaLabelledby) {\n console.warn('ProgressCircle requires an aria-label or aria-labelledby attribute for accessibility');\n }\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n}\n\n/**\n * ProgressCircles show the progression of a system operation such as downloading, uploading, processing, etc. in a visual way.\n * They can represent determinate or indeterminate progress.\n */\nlet _ProgressCircle = React.forwardRef(ProgressCircle);\nexport {_ProgressCircle as ProgressCircle};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\n\nexport type RTLOffsetType =\n | 'negative'\n | 'positive-descending'\n | 'positive-ascending';\n\nlet cachedRTLResult: RTLOffsetType | null = null;\n\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/bvaughn/react-window/blob/master/src/createGridComponent.js\n\n// According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\nexport function getRTLOffsetType(recalculate: boolean = false): RTLOffsetType {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement('div');\n const outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n\n const innerDiv = document.createElement('div');\n const innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n\n outerDiv.appendChild(innerDiv);\n\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nexport function getScrollLeft(node: Element, direction: Direction): number {\n let {scrollLeft} = node;\n\n // scrollLeft in rtl locales differs across browsers, so normalize.\n // See comment by getRTLOffsetType below for details.\n if (direction === 'rtl') {\n let {scrollWidth, clientWidth} = node;\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollLeft = -scrollLeft;\n break;\n case 'positive-descending':\n scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n return scrollLeft;\n}\n\nexport function setScrollLeft(node: Element, direction: Direction, scrollLeft: number) {\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollLeft = -scrollLeft;\n break;\n case 'positive-ascending':\n break;\n default: {\n const {clientWidth, scrollWidth} = node;\n scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n }\n\n node.scrollLeft = scrollLeft;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport {flushSync} from 'react-dom';\nimport {getScrollLeft} from './utils';\nimport React, {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport {Rect, Size} from '@react-stately/virtualizer';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\nimport {useResizeObserver} from '@react-aria/utils';\n\ninterface ScrollViewProps extends HTMLAttributes {\n contentSize: Size,\n onVisibleRectChange: (rect: Rect) => void,\n children: ReactNode,\n innerStyle?: CSSProperties,\n sizeToFit?: 'width' | 'height',\n onScrollStart?: () => void,\n onScrollEnd?: () => void,\n scrollDirection?: 'horizontal' | 'vertical' | 'both'\n}\n\nfunction ScrollView(props: ScrollViewProps, ref: RefObject) {\n let {\n contentSize,\n onVisibleRectChange,\n children,\n innerStyle,\n sizeToFit,\n onScrollStart,\n onScrollEnd,\n scrollDirection = 'both',\n ...otherProps\n } = props;\n\n let defaultRef = useRef();\n ref = ref || defaultRef;\n let state = useRef({\n scrollTop: 0,\n scrollLeft: 0,\n scrollEndTime: 0,\n scrollTimeout: null,\n width: 0,\n height: 0,\n isScrolling: false\n }).current;\n let {direction} = useLocale();\n\n let [isScrolling, setScrolling] = useState(false);\n let onScroll = useCallback((e) => {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (props.onScroll) {\n props.onScroll(e);\n }\n\n flushSync(() => {\n let scrollTop = e.currentTarget.scrollTop;\n let scrollLeft = getScrollLeft(e.currentTarget, direction);\n\n // Prevent rubber band scrolling from shaking when scrolling out of bounds\n state.scrollTop = Math.max(0, Math.min(scrollTop, contentSize.height - state.height));\n state.scrollLeft = Math.max(0, Math.min(scrollLeft, contentSize.width - state.width));\n\n onVisibleRectChange(new Rect(state.scrollLeft, state.scrollTop, state.width, state.height));\n\n if (!state.isScrolling) {\n state.isScrolling = true;\n setScrolling(true);\n\n if (onScrollStart) {\n onScrollStart();\n }\n }\n\n // So we don't constantly call clearTimeout and setTimeout,\n // keep track of the current timeout time and only reschedule\n // the timer when it is getting close.\n let now = Date.now();\n if (state.scrollEndTime <= now + 50) {\n state.scrollEndTime = now + 300;\n\n clearTimeout(state.scrollTimeout);\n state.scrollTimeout = setTimeout(() => {\n state.isScrolling = false;\n setScrolling(false);\n state.scrollTimeout = null;\n\n if (onScrollEnd) {\n onScrollEnd();\n }\n }, 300);\n }\n });\n }, [props, direction, state, contentSize, onVisibleRectChange, onScrollStart, onScrollEnd]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n clearTimeout(state.scrollTimeout);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let updateSize = useCallback(() => {\n let dom = ref.current;\n if (!dom) {\n return;\n }\n\n let w = dom.clientWidth;\n let h = dom.clientHeight;\n if (sizeToFit && contentSize.width > 0 && contentSize.height > 0) {\n if (sizeToFit === 'width') {\n w = Math.min(w, contentSize.width);\n } else if (sizeToFit === 'height') {\n h = Math.min(h, contentSize.height);\n }\n }\n\n if (state.width !== w || state.height !== h) {\n state.width = w;\n state.height = h;\n onVisibleRectChange(new Rect(state.scrollLeft, state.scrollTop, w, h));\n }\n }, [onVisibleRectChange, ref, state, sizeToFit, contentSize]);\n\n useLayoutEffect(() => {\n updateSize();\n }, [updateSize]);\n useResizeObserver({ref, onResize: updateSize});\n\n let style: React.CSSProperties = {\n // Reset padding so that relative positioning works correctly. Padding will be done in JS layout.\n padding: 0,\n ...otherProps.style\n };\n\n if (scrollDirection === 'horizontal') {\n style.overflowX = 'auto';\n style.overflowY = 'hidden';\n } else if (scrollDirection === 'vertical') {\n style.overflowY = 'auto';\n style.overflowX = 'hidden';\n } else {\n style.overflow = 'auto';\n }\n\n return (\n
\n
\n {children}\n
\n
\n );\n}\n\nconst ScrollViewForwardRef = React.forwardRef(ScrollView);\nexport {ScrollViewForwardRef as ScrollView};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ReusableView, Size} from '@react-stately/virtualizer';\nimport {useLayoutEffect} from '@react-aria/utils';\n\ninterface VirtualizerItemOptions {\n reusableView: ReusableView,\n ref: RefObject\n}\n\nexport function useVirtualizerItem(options: VirtualizerItemOptions) {\n let {reusableView: {layoutInfo, virtualizer}, ref} = options;\n\n let updateSize = useCallback(() => {\n let size = getSize(ref.current);\n virtualizer.updateItemSize(layoutInfo.key, size);\n }, [virtualizer, layoutInfo.key, ref]);\n\n useLayoutEffect(() => {\n if (layoutInfo.estimatedSize) {\n updateSize();\n }\n });\n\n return {updateSize};\n}\n\nfunction getSize(node: HTMLElement) {\n // Reset height before measuring so we get the intrinsic size\n let height = node.style.height;\n node.style.height = '';\n let size = new Size(node.scrollWidth, node.scrollHeight);\n node.style.height = height;\n return size;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {LayoutInfo, ReusableView} from '@react-stately/virtualizer';\nimport React, {CSSProperties, useRef} from 'react';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVirtualizerItem} from './useVirtualizerItem';\n\ninterface VirtualizerItemProps {\n reusableView: ReusableView,\n parent?: ReusableView,\n className?: string\n}\n\nexport function VirtualizerItem(props: VirtualizerItemProps) {\n let {className, reusableView, parent} = props;\n let {direction} = useLocale();\n let ref = useRef();\n useVirtualizerItem({\n reusableView,\n ref\n });\n\n return (\n
\n {reusableView.rendered}\n
\n );\n}\n\nlet cache = new WeakMap();\nexport function layoutInfoToStyle(layoutInfo: LayoutInfo, dir: Direction, parent?: LayoutInfo | null): CSSProperties {\n let xProperty = dir === 'rtl' ? 'right' : 'left';\n let cached = cache.get(layoutInfo);\n if (cached && cached[xProperty] != null) {\n if (!parent) {\n return cached;\n }\n\n // Invalidate if the parent position changed.\n let top = layoutInfo.rect.y - parent.rect.y;\n let x = layoutInfo.rect.x - parent.rect.x;\n if (cached.top === top && cached[xProperty] === x) {\n return cached;\n }\n }\n\n let style: CSSProperties = {\n position: layoutInfo.isSticky ? 'sticky' : 'absolute',\n overflow: layoutInfo.allowOverflow ? 'visible' : 'hidden',\n top: layoutInfo.rect.y - (parent ? parent.rect.y : 0),\n [xProperty]: layoutInfo.rect.x - (parent ? parent.rect.x : 0),\n transition: 'all',\n WebkitTransition: 'all',\n WebkitTransitionDuration: 'inherit',\n transitionDuration: 'inherit',\n width: layoutInfo.rect.width,\n height: layoutInfo.rect.height,\n opacity: layoutInfo.opacity,\n zIndex: layoutInfo.zIndex,\n transform: layoutInfo.transform,\n contain: 'size layout style'\n };\n\n cache.set(layoutInfo, style);\n return style;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {focusWithoutScrolling, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\nimport {Layout, Rect, ReusableView, useVirtualizerState, VirtualizerState} from '@react-stately/virtualizer';\nimport React, {FocusEvent, HTMLAttributes, Key, ReactElement, RefObject, useCallback, useEffect, useMemo, useRef} from 'react';\nimport {ScrollView} from './ScrollView';\nimport {useHasTabbableChild} from './useHasTabbableChild';\nimport {VirtualizerItem} from './VirtualizerItem';\n\ninterface VirtualizerProps extends HTMLAttributes {\n children: (type: string, content: T) => V,\n renderWrapper?: (\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => ReactElement[]\n ) => ReactElement,\n layout: Layout,\n collection: Collection,\n focusedKey?: Key,\n sizeToFit?: 'width' | 'height',\n scrollDirection?: 'horizontal' | 'vertical' | 'both',\n transitionDuration?: number,\n isLoading?: boolean,\n onLoadMore?: () => void,\n shouldUseVirtualFocus?: boolean,\n scrollToItem?: (key: Key) => void\n}\n\nfunction Virtualizer(props: VirtualizerProps, ref: RefObject) {\n let {\n children: renderView,\n renderWrapper,\n layout,\n collection,\n sizeToFit,\n scrollDirection,\n transitionDuration,\n isLoading,\n onLoadMore,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusedKey,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldUseVirtualFocus,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scrollToItem,\n ...otherProps\n } = props;\n\n let fallbackRef = useRef();\n ref = ref || fallbackRef;\n\n let state = useVirtualizerState({\n transitionDuration,\n layout,\n collection,\n renderView,\n renderWrapper: renderWrapper || defaultRenderWrapper,\n onVisibleRectChange(rect) {\n ref.current.scrollLeft = rect.x;\n ref.current.scrollTop = rect.y;\n }\n });\n\n let {virtualizerProps} = useVirtualizer(props, state, ref);\n\n // Handle scrolling, and call onLoadMore when nearing the bottom.\n let onVisibleRectChange = useCallback((rect: Rect) => {\n state.setVisibleRect(rect);\n\n if (!isLoading && onLoadMore) {\n let scrollOffset = state.virtualizer.contentSize.height - rect.height * 2;\n if (rect.y > scrollOffset) {\n onLoadMore();\n }\n }\n }, [isLoading, onLoadMore, state]);\n\n useLayoutEffect(() => {\n if (!isLoading && onLoadMore && !state.isAnimating) {\n if (state.contentSize.height > 0 && state.contentSize.height <= state.virtualizer.visibleRect.height) {\n onLoadMore();\n }\n }\n }, [state.contentSize, state.isAnimating, state.virtualizer, onLoadMore, isLoading]);\n\n return (\n \n {state.visibleViews}\n \n );\n}\n\ninterface VirtualizerOptions {\n focusedKey?: Key,\n scrollToItem?: (key: Key) => void,\n shouldUseVirtualFocus?: boolean\n}\n\nexport function useVirtualizer(props: VirtualizerOptions, state: VirtualizerState, ref: RefObject) {\n let {focusedKey, scrollToItem, shouldUseVirtualFocus} = props;\n let {virtualizer} = state;\n\n // Scroll to the focusedKey when it changes. Actually focusing the focusedKey\n // is up to the implementation using Virtualizer since we don't have refs\n // to all of the item DOM nodes.\n let lastFocusedKey = useRef(null);\n let isFocusWithin = useRef(false);\n useEffect(() => {\n if (virtualizer.visibleRect.height === 0) {\n return;\n }\n\n // Only scroll the focusedKey into view if the modality is not pointer to avoid jumps in position when clicking/pressing tall items.\n // Exception made if focus isn't within the virtualizer (e.g. opening a picker via click should scroll the selected item into view)\n let modality = getInteractionModality();\n if (focusedKey !== lastFocusedKey.current && (modality !== 'pointer' || !isFocusWithin.current)) {\n if (scrollToItem) {\n scrollToItem(focusedKey);\n } else {\n virtualizer.scrollToItem(focusedKey, {duration: 0});\n }\n }\n\n lastFocusedKey.current = focusedKey;\n }, [focusedKey, virtualizer.visibleRect.height, virtualizer, lastFocusedKey, scrollToItem]);\n\n // Persist the focusedKey and prevent it from being removed from the DOM when scrolled out of view.\n virtualizer.persistedKeys = useMemo(() => focusedKey ? new Set([focusedKey]) : new Set(), [focusedKey]);\n\n let onFocus = useCallback((e: FocusEvent) => {\n // If the focused item is scrolled out of view and is not in the DOM, the collection\n // will have tabIndex={0}. When tabbing in from outside, scroll the focused item into view.\n // Ignore focus events that bubble through portals (e.g. focus that happens on a menu popover child of the virtualizer)\n // Don't scroll focused key into view if modality is pointer to prevent sudden jump in position (e.g. CardView).\n let modality = getInteractionModality();\n if (!isFocusWithin.current && ref.current.contains(e.target) && modality !== 'pointer') {\n if (scrollToItem) {\n scrollToItem(focusedKey);\n } else {\n virtualizer.scrollToItem(focusedKey, {duration: 0});\n }\n }\n\n isFocusWithin.current = e.target !== ref.current;\n }, [ref, virtualizer, focusedKey, scrollToItem]);\n\n let onBlur = useCallback((e: FocusEvent) => {\n isFocusWithin.current = ref.current.contains(e.relatedTarget as Element);\n }, [ref]);\n\n // When the focused item is scrolled out of view and is removed from the DOM,\n // move focus to the collection view as a whole if focus was within before.\n let focusedView = virtualizer.getView(focusedKey);\n useEffect(() => {\n if (focusedKey && !focusedView && isFocusWithin.current && document.activeElement !== ref.current) {\n focusWithoutScrolling(ref.current);\n }\n });\n\n let hasTabbableChild = useHasTabbableChild({\n isEmpty: virtualizer.collection.size === 0,\n hasRenderedAnything: virtualizer.contentSize.height > 0 || virtualizer.contentSize.width > 0\n }, ref);\n\n // Set tabIndex to -1 if the focused view is in the DOM, otherwise 0 so that the collection\n // itself is tabbable. When the collection receives focus, we scroll the focused item back into\n // view, which will allow it to be properly focused. If using virtual focus, don't set a\n // tabIndex at all so that VoiceOver on iOS 14 doesn't try to move real DOM focus to the element anyway.\n let tabIndex: number;\n if (!shouldUseVirtualFocus) {\n // When there is no focusedView the default tabIndex is 0. We include logic for empty collections too.\n // For collections that are empty, but have a link in the empty children we want to skip focusing this\n // and let focus move to the link similar to link moving to children.\n tabIndex = focusedView || hasTabbableChild ? -1 : 0;\n }\n\n return {\n virtualizerProps: {\n tabIndex,\n onFocus,\n onBlur\n }\n };\n}\n\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Virtualizer = React.forwardRef(Virtualizer) as (props: VirtualizerProps & {ref?: RefObject}) => ReactElement;\nexport {_Virtualizer as Virtualizer};\n\nfunction defaultRenderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView\n) {\n return (\n \n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getFocusableTreeWalker} from '@react-aria/focus';\nimport {RefObject, useEffect, useState} from 'react';\n\ninterface AriaHasTabbableChildProps {\n isEmpty: boolean,\n hasRenderedAnything: boolean\n}\n\n// This was created for a special empty case of a component that can have child or\n// be empty, like Collection/Virtualizer/Table/ListView/etc. When these components\n// are empty they can have a message with a tabbable element, which is like them\n// being not empty, when it comes to focus and tab order.\n//\n// This looks at the element's children and determines if any are tabbable.\nexport function useHasTabbableChild({isEmpty, hasRenderedAnything}: AriaHasTabbableChildProps, ref: RefObject): boolean {\n let [hasTabbableChild, setHasTabbableChild] = useState(false);\n\n useEffect(() => {\n if (ref?.current && isEmpty && hasRenderedAnything) {\n // Detect if there are any tabbable elements and update the tabIndex accordingly.\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n setHasTabbableChild(!!walker.nextNode());\n }\n }, [ref, isEmpty, hasRenderedAnything]);\n\n return hasTabbableChild;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CheckmarkSmall;\n\nvar _CheckmarkSmall = require(\"@adobe/react-spectrum-ui/dist/CheckmarkSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CheckmarkSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CheckmarkSmall.CheckmarkSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckmarkSmall = CheckmarkSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CheckmarkSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.5 11a.999.999 0 0 1-.788-.385l-3-4a1 1 0 1 1 1.576-1.23L4.5 8.376l5.212-6.99a1 1 0 1 1 1.576 1.23l-6 8A.999.999 0 0 1 4.5 11z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M3.788 9A.999.999 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A.999.999 0 0 1 3.788 9z\"\n }));\n}\n\nCheckmarkSmall.displayName = 'CheckmarkSmall';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = DashSmall;\n\nvar _DashSmall = require(\"@adobe/react-spectrum-ui/dist/DashSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction DashSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_DashSmall.DashSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DashSmall = DashSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction DashSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z\"\n }));\n}\n\nDashSmall.displayName = 'DashSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleProps} from '@react-types/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {InputHTMLAttributes, RefObject} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface ToggleAria {\n /**\n * Props to be spread on the input element.\n */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(props: AriaToggleProps, state: ToggleState, ref: RefObject): ToggleAria {\n let {\n isDisabled = false,\n isRequired,\n isReadOnly,\n value,\n name,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n validationState = 'valid'\n } = props;\n\n let onChange = (e) => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let {pressProps} = usePress({\n isDisabled\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n return {\n inputProps: mergeProps(domProps, {\n 'aria-invalid': validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n type: 'checkbox',\n ...interactions\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxProps} from '@react-types/checkbox';\nimport {InputHTMLAttributes, RefObject, useEffect} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useToggle} from '@react-aria/toggle';\n\nexport interface CheckboxAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component.\n * Checkboxes allow users to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useToggleState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject): CheckboxAria {\n let {inputProps} = useToggle(props, state, inputRef);\n let {isSelected} = state;\n\n let {isIndeterminate} = props;\n useEffect(() => {\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n });\n\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\n\nexport const checkboxGroupNames = new WeakMap();\nexport const checkboxGroupDescriptionIds = new WeakMap();\nexport const checkboxGroupErrorMessageIds = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupProps} from '@react-types/checkbox';\nimport {checkboxGroupDescriptionIds, checkboxGroupErrorMessageIds, checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {useField} from '@react-aria/label';\n\nexport interface CheckboxGroupAria {\n /** Props for the checkbox group wrapper element. */\n groupProps: DOMAttributes,\n /** Props for the checkbox group's visible label (if any). */\n labelProps: DOMAttributes,\n /** Props for the checkbox group description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the checkbox group error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props: AriaCheckboxGroupProps, state: CheckboxGroupState): CheckboxGroupAria {\n let {isDisabled, name} = props;\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a
\n );\n}\n\n/**\n * Help text provides either an informative description or an error message that gives more context about what a user needs to input. It's commonly used in forms.\n */\nconst _HelpText = React.forwardRef(HelpText);\nexport {_HelpText as HelpText};\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"(optional)\": \"(اختياري)\",\n \"(required)\": \"(مطلوب)\"\n}\n","{\n \"(optional)\": \"(незадължително)\",\n \"(required)\": \"(задължително)\"\n}\n","{\n \"(optional)\": \"(volitelně)\",\n \"(required)\": \"(požadováno)\"\n}\n","{\n \"(optional)\": \"(valgfrit)\",\n \"(required)\": \"(obligatorisk)\"\n}\n","{\n \"(optional)\": \"(optional)\",\n \"(required)\": \"(erforderlich)\"\n}\n","{\n \"(optional)\": \"(προαιρετικό)\",\n \"(required)\": \"(απαιτείται)\"\n}\n","{\n \"(required)\": \"(required)\",\n \"(optional)\": \"(optional)\"\n}\n","{\n \"(optional)\": \"(opcional)\",\n \"(required)\": \"(necesario)\"\n}\n","{\n \"(optional)\": \"(valikuline)\",\n \"(required)\": \"(nõutav)\"\n}\n","{\n \"(optional)\": \"(valinnainen)\",\n \"(required)\": \"(pakollinen)\"\n}\n","{\n \"(optional)\": \"(facultatif)\",\n \"(required)\": \"(requis)\"\n}\n","{\n \"(optional)\": \"(אופציונלי)\",\n \"(required)\": \"(נדרש)\"\n}\n","{\n \"(optional)\": \"(opcionalno)\",\n \"(required)\": \"(obvezno)\"\n}\n","{\n \"(optional)\": \"(opcionális)\",\n \"(required)\": \"(kötelező)\"\n}\n","{\n \"(optional)\": \"(facoltativo)\",\n \"(required)\": \"(obbligatorio)\"\n}\n","{\n \"(optional)\": \"(オプション)\",\n \"(required)\": \"(必須)\"\n}\n","{\n \"(optional)\": \"(선택 사항)\",\n \"(required)\": \"(필수 사항)\"\n}\n","{\n \"(optional)\": \"(pasirenkama)\",\n \"(required)\": \"(privaloma)\"\n}\n","{\n \"(optional)\": \"(neobligāti)\",\n \"(required)\": \"(obligāti)\"\n}\n","{\n \"(optional)\": \"(valgfritt)\",\n \"(required)\": \"(obligatorisk)\"\n}\n","{\n \"(optional)\": \"(optioneel)\",\n \"(required)\": \"(vereist)\"\n}\n","{\n \"(optional)\": \"(opcjonalne)\",\n \"(required)\": \"(wymagane)\"\n}\n","{\n \"(optional)\": \"(opcional)\",\n \"(required)\": \"(obrigatório)\"\n}\n","{\n \"(optional)\": \"(opcional)\",\n \"(required)\": \"(obrigatório)\"\n}\n","{\n \"(optional)\": \"(opţional)\",\n \"(required)\": \"(obligatoriu)\"\n}\n","{\n \"(optional)\": \"(дополнительно)\",\n \"(required)\": \"(обязательно)\"\n}\n","{\n \"(optional)\": \"(nepovinné)\",\n \"(required)\": \"(povinné)\"\n}\n","{\n \"(optional)\": \"(opcijsko)\",\n \"(required)\": \"(obvezno)\"\n}\n","{\n \"(optional)\": \"(opciono)\",\n \"(required)\": \"(obavezno)\"\n}\n","{\n \"(optional)\": \"(valfritt)\",\n \"(required)\": \"(krävs)\"\n}\n","{\n \"(optional)\": \"(isteğe bağlı)\",\n \"(required)\": \"(gerekli)\"\n}\n","{\n \"(optional)\": \"(необов’язково)\",\n \"(required)\": \"(обов’язково)\"\n}\n","{\n \"(optional)\": \"(可选)\",\n \"(required)\": \"(必填)\"\n}\n","{\n \"(optional)\": \"(選填)\",\n \"(required)\": \"(必填)\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport Asterisk from '@spectrum-icons/ui/Asterisk';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React from 'react';\nimport {SpectrumLabelProps} from '@react-types/label';\nimport styles from '@adobe/spectrum-css-temp/components/fieldlabel/vars.css';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction Label(props: SpectrumLabelProps, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n children,\n labelPosition = 'top',\n labelAlign = labelPosition === 'side' ? 'start' : null,\n isRequired,\n necessityIndicator = isRequired != null ? 'icon' : null,\n includeNecessityIndicatorInAccessibilityName = false,\n htmlFor,\n for: labelFor,\n elementType: ElementType = 'label',\n onClick,\n ...otherProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let {styleProps} = useStyleProps(otherProps);\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let necessityLabel = isRequired ? stringFormatter.format('(required)') : stringFormatter.format('(optional)');\n let icon = (\n \n );\n\n let labelClassNames = classNames(\n styles,\n 'spectrum-FieldLabel',\n {\n 'spectrum-FieldLabel--positionSide': labelPosition === 'side',\n 'spectrum-FieldLabel--alignEnd': labelAlign === 'end'\n },\n styleProps.className\n );\n\n return (\n \n {children}\n {(necessityIndicator === 'label' || (necessityIndicator === 'icon' && isRequired)) && ' \\u200b'}\n {/* necessityLabel is hidden to screen readers if the field is required because\n * aria-required is set on the field in that case. That will already be announced,\n * so no need to duplicate it here. If optional, we do want it to be announced here. */}\n {necessityIndicator === 'label' && {necessityLabel}}\n {necessityIndicator === 'icon' && isRequired && icon}\n \n );\n}\n\nlet _Label = React.forwardRef(Label);\nexport {_Label as Label};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useStyleProps} from '@react-spectrum/utils';\nimport {Flex} from '@react-spectrum/layout';\nimport {HelpText} from './HelpText';\nimport {Label} from './Label';\nimport {LabelPosition} from '@react-types/shared';\nimport labelStyles from '@adobe/spectrum-css-temp/components/fieldlabel/vars.css';\nimport {mergeProps, useId} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport {SpectrumFieldProps} from '@react-types/label';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction Field(props: SpectrumFieldProps, ref: RefObject) {\n let formProps = useFormProps(props);\n let isInForm = formProps !== props;\n props = formProps;\n let {\n label,\n labelPosition = 'top' as LabelPosition,\n labelAlign,\n isRequired,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName,\n validationState,\n description,\n errorMessage,\n isDisabled,\n showErrorIcon,\n contextualHelp,\n children,\n labelProps,\n // Not every component that uses supports help text.\n descriptionProps = {},\n errorMessageProps = {},\n elementType,\n wrapperClassName,\n wrapperProps = {},\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let hasHelpText = !!description || errorMessage && validationState === 'invalid';\n let contextualHelpId = useId();\n\n let labelWrapperClass = classNames(\n labelStyles,\n 'spectrum-Field',\n {\n 'spectrum-Field--positionTop': labelPosition === 'top',\n 'spectrum-Field--positionSide': labelPosition === 'side',\n 'spectrum-Field--alignEnd': labelAlign === 'end',\n 'spectrum-Field--hasContextualHelp': !!props.contextualHelp\n },\n styleProps.className,\n wrapperClassName\n );\n\n children = React.cloneElement(children, mergeProps(children.props, {\n className: classNames(\n labelStyles,\n 'spectrum-Field-field'\n )\n }));\n\n let renderHelpText = () => (\n \n );\n\n let renderChildren = () => {\n if (labelPosition === 'side') {\n return (\n \n {children}\n {hasHelpText && renderHelpText()}\n \n );\n }\n\n return (\n <>\n {children}\n {hasHelpText && renderHelpText()}\n \n );\n };\n\n let labelAndContextualHelp = (\n <>\n {label && (\n \n {label}\n \n )}\n {label && contextualHelp &&\n \n {contextualHelp}\n \n }\n \n );\n\n // Need to add an extra wrapper for the label and contextual help if labelPosition is side,\n // so that the table layout works inside forms.\n if (isInForm && labelPosition === 'side' && label && contextualHelp) {\n labelAndContextualHelp = (\n
\n
\n {labelAndContextualHelp}\n
\n
\n );\n }\n\n return (\n }\n className={labelWrapperClass}>\n {labelAndContextualHelp}\n {renderChildren()}\n \n );\n}\n\nlet _Field = React.forwardRef(Field);\nexport {_Field as Field};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\nimport {ValidationState} from '@react-types/shared';\n\nexport interface CheckboxGroupState {\n /** Current selected values. */\n readonly value: readonly string[],\n\n /** Whether the checkbox group is disabled. */\n readonly isDisabled: boolean,\n\n /** Whether the checkbox group is read only. */\n readonly isReadOnly: boolean,\n\n /** Returns whether the given value is selected. */\n isSelected(value: string): boolean,\n\n /** Sets the selected values. */\n setValue(value: string[]): void,\n\n /** Adds a value to the set of selected values. */\n addValue(value: string): void,\n\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void,\n\n /** Toggles a value in the set of selected values. */\n toggleValue(value: string): void,\n\n /** The current validation state of the checkbox group. */\n validationState: ValidationState\n}\n\n/**\n * Provides state management for a checkbox group component. Provides a name for the group,\n * and manages selection and focus state.\n */\nexport function useCheckboxGroupState(props: CheckboxGroupProps = {}): CheckboxGroupState {\n let [selectedValues, setValue] = useControlledState(props.value, props.defaultValue || [], props.onChange);\n\n const state: CheckboxGroupState = {\n value: selectedValues,\n setValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n\n setValue(value);\n },\n isDisabled: props.isDisabled || false,\n isReadOnly: props.isReadOnly || false,\n isSelected(value) {\n return selectedValues.includes(value);\n },\n addValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n }\n },\n removeValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n }\n },\n toggleValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n } else {\n setValue(selectedValues.concat(value));\n }\n },\n validationState: props.validationState\n };\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport React from 'react';\n\nexport const CheckboxGroupContext = React.createContext(null);\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport CheckmarkSmall from '@spectrum-icons/ui/CheckmarkSmall';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport DashSmall from '@spectrum-icons/ui/DashSmall';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport React, {forwardRef, useContext, useRef} from 'react';\nimport {SpectrumCheckboxProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/checkbox/vars.css';\nimport {useCheckbox, useCheckboxGroupItem} from '@react-aria/checkbox';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction Checkbox(props: SpectrumCheckboxProps, ref: FocusableRef) {\n let originalProps = props;\n props = useProviderProps(props);\n let {\n isIndeterminate = false,\n isEmphasized = false,\n isDisabled = false,\n autoFocus,\n children,\n validationState,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n let {inputProps} = groupState\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ? useCheckboxGroupItem({\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires ignore).\n // @ts-ignore\n value: props.value,\n // Only pass isRequired and validationState to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n validationState: originalProps.validationState\n }, groupState, inputRef)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n : useCheckbox(props, useToggleState(props), inputRef);\n\n let markIcon = isIndeterminate\n ? \n : ;\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(`${key} is unsupported on individual elements within a . Please apply these props to the group instead.`);\n }\n }\n if (props.value == null) {\n console.warn('A element within a requires a `value` property.');\n }\n }\n\n return (\n \n \n \n \n {markIcon}\n {children && (\n \n {children}\n \n )}\n \n );\n}\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\nexport {_Checkbox as Checkbox};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport {classNames, useDOMRef} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {Provider, useProviderProps} from '@react-spectrum/provider';\nimport React from 'react';\nimport {SpectrumCheckboxGroupProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/fieldgroup/vars.css';\nimport {useCheckboxGroup} from '@react-aria/checkbox';\nimport {useCheckboxGroupState} from '@react-stately/checkbox';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction CheckboxGroup(props: SpectrumCheckboxGroupProps, ref: DOMRef) {\n props = useProviderProps(props);\n props = useFormProps(props);\n let {\n isEmphasized,\n children,\n orientation = 'vertical',\n validationState\n } = props;\n let domRef = useDOMRef(ref);\n let state = useCheckboxGroupState(props);\n let {labelProps, groupProps, descriptionProps, errorMessageProps} = useCheckboxGroup(props, state);\n\n return (\n \n \n \n \n {children}\n \n \n \n
\n );\n}\n\n/**\n * A CheckboxGroup allows users to select one or more items from a list of choices.\n */\nconst _CheckboxGroup = React.forwardRef(CheckboxGroup);\nexport {_CheckboxGroup as CheckboxGroup};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronLeftMedium;\n\nvar _ChevronLeftMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronLeftMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronLeftMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronLeftMedium.ChevronLeftMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronLeftMedium = ChevronLeftMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronLeftMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z\"\n }));\n}\n\nChevronLeftMedium.displayName = 'ChevronLeftMedium';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightMedium;\n\nvar _ChevronRightMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronRightMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.ChevronRightMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightMedium = ChevronRightMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z\"\n }));\n}\n\nChevronRightMedium.displayName = 'ChevronRightMedium';","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ListGripper;\n\nvar _ListGripper = require(\"@adobe/react-spectrum-ui/dist/ListGripper\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ListGripper(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ListGripper.ListGripper, null));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListGripper = ListGripper;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n@adobe/react-spectrum-ui (c) by Adobe\n\n@adobe/react-spectrum-ui is licensed under a\nCreative Commons Attribution-NoDerivatives 4.0 International License.\n\nYou should have received a copy of the license along with this\nwork. If not, see .\n*/\nfunction ListGripper({\n scale = 'M',\n ...props\n}) {\n return /*#__PURE__*/_react.default.createElement(\"svg\", props, scale === 'L' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"1.375\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"1.375\",\n r: \"1.25\"\n })), scale === 'M' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"1.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"1.5\",\n r: \"1\"\n })));\n}\n\nListGripper.displayName = 'ListGripper';","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n*/\n\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-85);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-listview-item-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width));\n --spectrum-listview-row-sticky-focus-indicator-width: 3px;\n --spectrum-listview-item-line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n --spectrum-listview-item-title-text-color: var(--spectrum-global-color-gray-800);\n --spectrum-listview-item-title-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-listview-item-description-text-color: var(--spectrum-global-color-gray-700);\n --spectrum-listview-item-description-text-size: var(--spectrum-global-dimension-font-size-75);\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-listview-border-width);\n border-radius: var(--spectrum-listview-border-radius);\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n user-select: none;\n\n .react-spectrum-ListView-row {\n outline: none;\n }\n\n &.react-spectrum-ListView--emphasized {\n &.react-spectrum-ListView--dropTarget {\n .react-spectrum-ListViewItem:not(.is-selected) {\n /* shift bottom border inwards so it doesn't overlap the root drop target */\n &:after {\n inset-inline-start: 1px;\n inset-inline-end: 1px;\n }\n }\n }\n .react-spectrum-ListViewItem {\n /* common pseudoelement for box shadows */\n &:after {\n content: '';\n display: block;\n position: absolute;\n inset-inline-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inset-block-start: 0;\n z-index: 3;\n pointer-events: none;\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-selected);\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-selected-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n\n /* Negative block start causes borders to actually be shared between items. Only works if we allow item overflow to be visible, like card focus rings. */\n &:after {\n inset-block-start: -1px;\n box-shadow: inset 1px 0 0 0 var(--spectrum-global-color-blue-500), inset -1px 0 0 0 var(--spectrum-global-color-blue-500), inset 0 -1px 0 0 var(--spectrum-global-color-blue-500), inset 0 1px 0 0 var(--spectrum-global-color-blue-500);\n }\n }\n\n /* First item in the ListView should not have a border that extends outside of itself to the top, it doesn't need to share a border space. */\n &.react-spectrum-ListViewItem--firstRow {\n &.is-selected {\n &:after {\n inset-block-start: 0px;\n }\n }\n }\n }\n\n &:not(.react-spectrum-ListView--quiet) {\n .react-spectrum-ListViewItem {\n /* Box shadow for bottom border for non-selected rows that aren't immediately above a selected row (grey border bottom). */\n /* Also omit bottom border for last row if the total content height of the ListView is equal or greater than the height of the container. This avoids overlapping bottom borders. */\n &:not(.is-selected):not(.is-next-selected):not(.react-spectrum-ListViewItem--isFlushBottom) {\n &:after {\n box-shadow: inset 0 -1px 0 0 var(--spectrum-table-cell-border-color);\n }\n }\n\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem {\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-end-radius: 0;\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-end-radius: 0;\n }\n }\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n }\n }\n }\n }\n &.react-spectrum-ListView--wrap .react-spectrum-ListViewItem {\n & .react-spectrum-ListViewItem-content,\n & .react-spectrum-ListViewItem-description {\n white-space: normal;\n height: auto;\n }\n }\n}\n\n.react-spectrum-ListView-row {\n cursor: default;\n /* Not sticky because listview is a single column. If we want to make sticky, will need a cell wrapper like TableView for display: inline-block */\n &:focus-ring {\n &:before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: var(--spectrum-listview-row-sticky-focus-indicator-width);\n z-index: 4;\n background: var(--spectrum-selectlist-option-focus-indicator-color);\n }\n }\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n border-radius: 0;\n\n .react-spectrum-ListView-row {\n &.round-tops {\n &:focus-ring {\n &:before {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.round-bottoms {\n &:focus-ring {\n &:before {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n }\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-listview-item-line-height);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-160);\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n min-height: var(--spectrum-global-dimension-size-500);\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-down);\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n }\n\n &.is-disabled {\n &, .react-spectrum-ListViewItem-content, .react-spectrum-ListViewItem-description {\n color: var(--spectrum-alias-text-color-disabled);\n }\n }\n\n &.has-checkbox {\n /* have to eliminate vertical padding to allow proper vertical alignment */\n padding-top: 0px;\n padding-bottom: 0px;\n }\n\n .react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"draghandle checkbox thumbnail content actions actionmenu chevron\"\n \"draghandle checkbox thumbnail description actions actionmenu chevron\";\n align-items: center;\n }\n\n .react-spectrum-ListViewItem-draghandle-container {\n grid-area: draghandle;\n width: var(--spectrum-global-dimension-size-250);\n display: flex;\n align-self: stretch;\n justify-self: stretch;\n justify-content: center;\n padding: var(--spectrum-global-dimension-size-25);\n padding-inline-start: var(--spectrum-global-dimension-size-40);\n\n\n .react-spectrum-ListViewItem-draghandle-button {\n width: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--spectrum-alias-border-radius-regular);\n\n &:focus-ring {\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus);\n outline: none;\n }\n }\n }\n\n .react-spectrum-ListViewItem-checkboxWrapper {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n transition-duration: 160ms;\n display: flex;\n }\n\n .react-spectrum-ListViewItem-checkbox {\n min-height: 0;\n height: 100%;\n\n > span {\n margin: 0;\n }\n }\n\n .react-spectrum-ListViewItem-thumbnail {\n grid-area: thumbnail;\n justify-items: center;\n padding-inline-end: var(--spectrum-global-dimension-size-100);\n display: flex;\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n align-items: center;\n justify-content: center;\n\n > img {\n width: unset;\n height: 100%;\n }\n }\n\n .react-spectrum-ListViewItem-content,\n .react-spectrum-ListViewItem-description {\n flex-grow: 1;\n\n /* truncate text with ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: var(--spectrum-listview-item-line-height);\n }\n\n .react-spectrum-ListViewItem-content {\n grid-area: content;\n color: var(--spectrum-listview-item-title-text-color);\n font-size: var(--spectrum-listview-item-title-text-size);\n }\n\n &:not(.react-spectrum-ListView--hasDescription) {\n .react-spectrum-ListViewItem-content {\n grid-area: content / description;\n }\n }\n\n .react-spectrum-ListViewItem-description {\n grid-area: description;\n color: var(--spectrum-listview-item-description-text-color);\n font-size: var(--spectrum-listview-item-description-text-size);\n }\n\n .react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n .react-spectrum-ListViewItem-actionmenu {\n grid-area: actionmenu;\n }\n\n .react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n padding-inline-start: var(--spectrum-global-dimension-size-75);\n display: none;\n transition: color var(--spectrum-global-animation-duration-100);\n\n &.is-disabled {\n color: var(--spectrum-alias-icon-color-disabled);\n }\n }\n\n &.react-spectrum-ListViewItem-dragPreview {\n width: var(--spectrum-global-dimension-size-2400);\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n\n &.react-spectrum-ListViewItem-dragPreview--compact {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--spacious {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n }\n\n .react-spectrum-ListViewItem-grid {\n grid-template-areas:\n \"thumbnail content . badge\"\n \"thumbnail description . badge\";\n grid-template-columns: auto auto 1fr auto;\n }\n\n .react-spectrum-ListViewItem-badge {\n grid-area: badge;\n color: white;\n background: var(--spectrum-global-color-blue-400);\n padding: 0 8px;\n border-radius: var(--spectrum-alias-border-radius-regular);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--multiple {\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n z-index: -1;\n top: 4px;\n inset-inline-start: 4px;\n width: 100%;\n height: 100%;\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n }\n }\n\n .react-spectrum-ListViewItem-actions,\n .react-spectrum-ListViewItem-actionmenu {\n display: none;\n }\n }\n}\n.react-spectrum-ListView:not(.react-spectrum-ListView--quiet) {\n /* give first and last items border-radius to match listview container */\n\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-end-radius: 0;\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-end-radius: 0;\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n}\n\n.react-spectrum-ListView {\n /* When we can use subgrid, get rid of this. */\n &.react-spectrum-ListView--hasAnyChildren {\n .react-spectrum-ListViewItem-parentIndicator {\n display: inline-block;\n visibility: hidden;\n }\n .react-spectrum-ListViewItem-parentIndicator--hasChildItems {\n visibility: visible;\n }\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n.react-spectrum-ListView--draggable .react-spectrum-ListViewItem {\n padding-inline-start: 0;\n\n .react-spectrum-ListViewItem-checkbox {\n input {\n inset-inline-start: 0;\n }\n }\n}\n\n.react-spectrum-ListViewItem--dropTarget {\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow:\n inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus);\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--dropTarget {\n border-color: var(--spectrum-global-color-blue-500);\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n\n /* Add border to quiet ListView only when it is a drop target */\n &.react-spectrum-ListView--quiet {\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus), 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &.react-spectrum-ListView-centeredWrapper--loadingMore {\n padding-top: var(--spectrum-global-dimension-size-50);\n }\n}\n\n.react-spectrum-ListViewInsertionIndicator {\n width: calc(100% - (2 * var(--spectrum-dropindicator-circle-size)));\n inset-inline-start: var(--spectrum-dropindicator-circle-size);\n position: absolute;\n outline: none;\n\n &.react-spectrum-ListViewInsertionIndicator--dropTarget {\n background: var(--spectrum-dropindicator-border-color);\n border-bottom: 2px solid var(--spectrum-dropindicator-border-color);\n\n &:before {\n left: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:after {\n right: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: calc(var(--spectrum-dropindicator-circle-size) * -1 / 2 + var(--spectrum-dropindicator-border-size) / 2);\n width: var(--spectrum-dropindicator-circle-size);\n height: var(--spectrum-dropindicator-circle-size);\n border-radius: 50%;\n border: var(--spectrum-dropindicator-border-size) solid;\n box-sizing: border-box;\n border-color: var(--spectrum-dropindicator-circle-border-color);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n z-index: 5;\n }\n }\n}\n\n.react-spectrum-ListViewItem-checkbox--enter {\n opacity: 0.01;\n max-width: 0px;\n}\n.react-spectrum-ListViewItem-checkbox--enterActive {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exit {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exitActive {\n opacity: 0.01;\n max-width: 0px;\n}\n\n.react-spectrum-ListView {\n &:focus-ring {\n border-color: var(--spectrum-global-color-blue-500);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n","import {classNames} from '@react-spectrum/utils';\nimport {ItemDropTarget} from '@react-types/shared';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface InsertionIndicatorProps {\n target: ItemDropTarget,\n isPresentationOnly?: boolean\n}\n\nexport default function InsertionIndicator(props: InsertionIndicatorProps) {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n const {target, isPresentationOnly} = props;\n\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator(props, dropState, ref);\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let isDropTarget = dropState.isDropTarget(target);\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
\n \n {!isPresentationOnly &&\n
\n }\n
\n
\n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider, useHasChild} from '@react-spectrum/utils';\nimport {CSSTransition} from 'react-transition-group';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableItemResult} from '@react-aria/dnd';\nimport {DropTarget, Node} from '@react-types/shared';\nimport {FocusRing, useFocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {isFocusVisible as isGlobalFocusVisible, useHover} from '@react-aria/interactions';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useContext, useRef} from 'react';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useGridListItem, useGridListSelectionCheckbox} from '@react-aria/gridlist';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface ListViewItemProps {\n item: Node,\n isEmphasized: boolean,\n hasActions: boolean\n}\n\nexport function ListViewItem(props: ListViewItemProps) {\n let {\n item,\n isEmphasized\n } = props;\n let {\n state,\n dragState,\n dropState,\n isListDraggable,\n isListDroppable,\n layout,\n dragAndDropHooks,\n loadingState\n } = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {\n rowProps,\n gridCellProps,\n isPressed,\n descriptionProps,\n isSelected,\n isDisabled,\n allowsSelection,\n hasAction\n } = useGridListItem({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isListDraggable\n }, state, rowRef);\n let isDroppable = isListDroppable && !isDisabled;\n let {hoverProps, isHovered} = useHover({isDisabled: !allowsSelection && !hasAction});\n\n let {checkboxProps} = useGridListSelectionCheckbox({key: item.key}, state);\n let hasDescription = useHasChild(`.${listStyles['react-spectrum-ListViewItem-description']}`, rowRef);\n\n let draggableItem: DraggableItemResult;\n if (isListDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef();\n if (isListDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef();\n let {buttonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let chevron = direction === 'ltr'\n ? (\n \n )\n : (\n \n );\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n const mergedProps = mergeProps(\n rowProps,\n draggableItem?.dragProps,\n dropProps,\n hoverProps,\n focusWithinProps,\n focusProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n let isFirstRow = item.prevKey == null;\n let isLastRow = item.nextKey == null;\n // Figure out if the ListView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected and we can get rid of the bottom border if it isn't selected to avoid border overlap\n // with bottom border\n let isFlushWithContainerBottom = false;\n if (isLastRow && loadingState !== 'loadingMore') {\n if (layout.getContentSize()?.height >= layout.virtualizer?.getVisibleRect().height) {\n isFlushWithContainerBottom = true;\n }\n }\n // previous item isn't selected\n // and the previous item isn't focused or, if it is focused, then if focus globally isn't visible or just focus isn't in the listview\n let roundTops = (!state.selectionManager.isSelected(item.prevKey)\n && (state.selectionManager.focusedKey !== item.prevKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n let roundBottoms = (!state.selectionManager.isSelected(item.nextKey)\n && (state.selectionManager.focusedKey !== item.nextKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n\n let content = typeof item.rendered === 'string' ? {item.rendered} : item.rendered;\n if (isDisabled) {\n content = {content};\n }\n\n return (\n \n \n \n {isListDraggable &&\n
\n {!isDisabled &&\n \n }\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem-draghandle-button'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n \n
\n \n }\n \n }\n {isListDroppable && !dropIndicator?.isHidden &&\n
\n }\n \n
\n \n
\n \n \n {content}\n \n {chevron}\n \n \n \n
\n \n );\n}\n","import {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport default function RootDropIndicator() {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator({\n target: {type: 'root'}\n }, dropState, ref);\n let isDropTarget = dropState.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
\n \n
\n
\n
\n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {classNames, SlotProvider} from '@react-spectrum/utils';\nimport {Grid} from '@react-spectrum/layout';\nimport {GridNode} from '@react-types/grid';\nimport listStyles from './styles.css';\nimport React from 'react';\nimport type {SpectrumListViewProps} from './ListView';\nimport {Text} from '@react-spectrum/text';\n\ninterface DragPreviewProps {\n item: GridNode,\n itemCount: number,\n itemHeight: number,\n density: SpectrumListViewProps['density']\n}\n\nexport function DragPreview(props: DragPreviewProps) {\n let {\n item,\n itemCount,\n itemHeight,\n density\n } = props;\n\n let isDraggingMultiple = itemCount > 1;\n\n return (\n \n \n \n {typeof item.rendered === 'string' ? {item.rendered} : item.rendered}\n {isDraggingMultiple &&\n
{itemCount}
\n }\n \n
\n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridListProps, useGridList} from '@react-aria/gridlist';\nimport {AsyncLoadable, DOMRef, LoadingState, SpectrumSelectionProps, StyleProps} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DroppableCollectionResult} from '@react-aria/dnd';\nimport {filterDOMProps, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing, FocusScope} from '@react-aria/focus';\nimport InsertionIndicator from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './styles.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {Key, ReactElement, useContext, useMemo, useRef, useState} from 'react';\nimport RootDropIndicator from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {useCollator, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\nexport interface SpectrumListViewProps extends AriaGridListProps, StyleProps, SpectrumSelectionProps, Omit {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n /** Whether the ListView should be displayed with a quiet style. */\n isQuiet?: boolean,\n /** The current loading state of the ListView. Determines whether or not the progress circle should be shown. */\n loadingState?: LoadingState,\n /**\n * Sets the text behavior for the row contents.\n * @default 'truncate'\n */\n overflowMode?: 'truncate' | 'wrap',\n /** Sets what the ListView should render when there is no content to display. */\n renderEmptyState?: () => JSX.Element,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionStyle` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the ListView.\n */\n dragAndDropHooks?: DragAndDropHooks['dragAndDropHooks']\n}\n\ninterface ListViewContextValue {\n state: ListState,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n onAction:(key: Key) => void,\n isListDraggable: boolean,\n isListDroppable: boolean,\n layout: ListLayout,\n loadingState: LoadingState\n}\n\nexport const ListViewContext = React.createContext>(null);\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nfunction useListLayout(state: ListState, density: SpectrumListViewProps['density'], overflowMode: SpectrumListViewProps['overflowMode']) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let isEmpty = state.collection.size === 0;\n let layout = useMemo(() =>\n new ListLayout({\n estimatedRowHeight: ROW_HEIGHTS[density][scale],\n padding: 0,\n collator,\n loaderHeight: isEmpty ? null : ROW_HEIGHTS[density][scale]\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n , [collator, scale, density, isEmpty, overflowMode]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\nfunction ListView(props: SpectrumListViewProps, ref: DOMRef) {\n let {\n density = 'regular',\n loadingState,\n onLoadMore,\n isQuiet,\n overflowMode = 'truncate',\n onAction,\n dragAndDropHooks,\n ...otherProps\n } = props;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n let domRef = useDOMRef(ref);\n let state = useListState({\n ...props,\n selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'\n });\n let {collection, selectionManager} = state;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let {styleProps} = useStyleProps(props);\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isListDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection,\n selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n let layout = useListLayout(\n state,\n props.density || 'regular',\n overflowMode\n );\n // !!0 is false, so we can cast size or undefined and they'll be falsy\n layout.allowDisabledKeyFocus = state.selectionManager.disabledBehavior === 'selection' || !!dragState?.draggingKeys.size;\n\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isListDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection,\n selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: layout,\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useGridList({\n ...props,\n isVirtualized: true,\n keyboardDelegate: layout,\n onAction\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = isLoading;\n\n let focusedKey = selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n // wait for layout to get accurate measurements\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(() => {\n if (domRef.current) {\n // 2 is the width of the border which is not part of the box size\n setVerticalScollbarVisible(domRef.current.clientWidth + 2 < domRef.current.offsetWidth);\n setHorizontalScollbarVisible(domRef.current.clientHeight + 2 < domRef.current.offsetHeight);\n }\n });\n\n let hasAnyChildren = useMemo(() => [...collection].some(item => item.hasChildNodes), [collection]);\n\n return (\n \n \n \n \n {(type, item) => {\n if (type === 'item') {\n return (\n <>\n {isListDroppable && collection.getKeyBefore(item.key) == null &&\n \n }\n {isListDroppable &&\n \n }\n \n {isListDroppable &&\n \n }\n \n );\n } else if (type === 'loader') {\n return (\n \n 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n \n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n \n {emptyState}\n \n );\n }\n\n }}\n \n \n \n {DragPreview && isListDraggable &&\n \n {() => {\n let item = state.collection.getItem(dragState.draggedKey);\n let itemCount = dragState.draggingKeys.size;\n let itemHeight = layout.getLayoutInfo(dragState.draggedKey).rect.height;\n return ;\n }}\n \n }\n \n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n 0\n }\n )}>\n
\n {children}\n
\n \n );\n}\n\n/**\n * A ListView displays a list of interactive items, and allows a user to navigate, select, or perform an action.\n */\nconst _ListView = React.forwardRef(ListView) as (props: SpectrumListViewProps & {ref?: DOMRef}) => ReactElement;\nexport {_ListView as ListView};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronDownMedium;\n\nvar _ChevronDownMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronDownMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronDownMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.ChevronDownMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronDownMedium = ChevronDownMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronDownMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M11.99 1.51a1 1 0 0 0-1.707-.707L6 5.086 1.717.803A1 1 0 1 0 .303 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a.997.997 0 0 0 .293-.707z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.99 1.01A1 1 0 0 0 8.283.303L5 3.586 1.717.303A1 1 0 1 0 .303 1.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z\"\n }));\n}\n\nChevronDownMedium.displayName = 'ChevronDownMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaListBoxOptions} from '@react-aria/listbox';\nimport {AriaSelectProps} from '@react-types/select';\nimport {chain, filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {DOMAttributes, FocusableElement, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate, useTypeSelect} from '@react-aria/selection';\nimport {SelectState} from '@react-stately/select';\nimport {setInteractionModality} from '@react-aria/interactions';\nimport {useCollator} from '@react-aria/i18n';\nimport {useField} from '@react-aria/label';\nimport {useMenuTrigger} from '@react-aria/menu';\n\nexport interface AriaSelectOptions extends AriaSelectProps {\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface SelectAria {\n /** Props for the label element. */\n labelProps: DOMAttributes,\n\n /** Props for the popup trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the element representing the selected value. */\n valueProps: DOMAttributes,\n\n /** Props for the popup. */\n menuProps: AriaListBoxOptions,\n\n /** Props for the select's description element, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the select's error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a select component.\n * A select displays a collapsible list of options and allows a user to select one of them.\n * @param props - Props for the select.\n * @param state - State for the select, as returned by `useListState`.\n */\nexport function useSelect(props: AriaSelectOptions, state: SelectState, ref: RefObject): SelectAria {\n let {\n keyboardDelegate,\n isDisabled\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let delegate = useMemo(() => keyboardDelegate || new ListKeyboardDelegate(state.collection, state.disabledKeys, null, collator), [keyboardDelegate, state.collection, state.disabledKeys, collator]);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger(\n {\n isDisabled,\n type: 'listbox'\n },\n state,\n ref\n );\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowLeft': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyAbove(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n case 'ArrowRight': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyBelow(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: state.selectionManager,\n onTypeSelect(key) {\n state.setSelectedKey(key);\n }\n });\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n typeSelectProps.onKeyDown = typeSelectProps.onKeyDownCapture;\n delete typeSelectProps.onKeyDownCapture;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let triggerProps = mergeProps(typeSelectProps, menuTriggerProps, fieldProps);\n\n let valueId = useId();\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n if (!props.isDisabled) {\n ref.current.focus();\n\n // Show the focus ring so the user knows where focus went\n setInteractionModality('keyboard');\n }\n }\n },\n triggerProps: mergeProps(domProps, {\n ...triggerProps,\n isDisabled,\n onKeyDown: chain(triggerProps.onKeyDown, onKeyDown, props.onKeyDown),\n onKeyUp: props.onKeyUp,\n 'aria-labelledby': [\n triggerProps['aria-labelledby'],\n triggerProps['aria-label'] && !triggerProps['aria-labelledby'] ? triggerProps.id : null,\n valueId\n ].filter(Boolean).join(' '),\n onFocus(e: FocusEvent) {\n if (state.isFocused) {\n return;\n }\n\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n\n state.setFocused(true);\n },\n onBlur(e: FocusEvent) {\n if (state.isOpen) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n }\n }),\n valueProps: {\n id: valueId\n },\n menuProps: {\n ...menuProps,\n autoFocus: state.focusStrategy || true,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n disallowEmptySelection: true,\n onBlur: (e) => {\n if (e.currentTarget.contains(e.relatedTarget as Node)) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n },\n 'aria-labelledby': [\n fieldProps['aria-labelledby'],\n triggerProps['aria-label'] && !fieldProps['aria-labelledby'] ? triggerProps.id : null\n ].filter(Boolean).join(' ')\n },\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport React, {ReactNode, RefObject} from 'react';\nimport {SelectState} from '@react-stately/select';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface AriaHiddenSelectProps {\n /**\n * Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete).\n */\n autoComplete?: string,\n\n /** The text label for the select. */\n label?: ReactNode,\n\n /** HTML form input name. */\n name?: string,\n\n /** Sets the disabled state of the select and input. */\n isDisabled?: boolean\n}\n\nexport interface HiddenSelectProps extends AriaHiddenSelectProps {\n /** State for the select. */\n state: SelectState,\n\n /** A ref to the trigger element. */\n triggerRef: RefObject\n}\n\n/**\n * Provides the behavior and accessibility implementation for a hidden ` cannot have `display: none` or `hidden` for autofill to work.\n // In Firefox, there must be a
, use a hidden input so the value can be submitted to a server.\n // If the collection isn't too big, use a hidden .\n if (state.collection.size <= 300) {\n return (\n
\n \n \n
\n );\n } else if (name) {\n return (\n \n );\n }\n\n return null;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {ListState} from '@react-stately/list';\n\ninterface ListData {\n id: string,\n shouldSelectOnPressUp?: boolean,\n shouldFocusOnHover?: boolean,\n shouldUseVirtualFocus?: boolean,\n isVirtualized?: boolean,\n onAction?: (key: Key) => void\n}\n\nexport const listData = new WeakMap, ListData>();\n\nfunction normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n\nexport function getItemId(state: ListState, itemKey: Key): string {\n let data = listData.get(state);\n\n if (!data) {\n throw new Error('Unknown list');\n }\n\n return `${data.id}-option-${normalizeKey(itemKey)}`;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaListBoxProps} from '@react-types/listbox';\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {Key, ReactNode, RefObject} from 'react';\nimport {listData} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useId} from '@react-aria/utils';\nimport {useLabel} from '@react-aria/label';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface ListBoxAria {\n /** Props for the listbox element. */\n listBoxProps: DOMAttributes,\n /** Props for the listbox's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\nexport interface AriaListBoxOptions extends Omit, 'children'> {\n /** Whether the listbox uses virtual scrolling. */\n isVirtualized?: boolean,\n\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate,\n\n /**\n * Whether the listbox items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean,\n\n /** Whether options should be focused when the user hovers over them. */\n shouldFocusOnHover?: boolean,\n\n /**\n * An optional visual label for the listbox.\n */\n label?: ReactNode,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void\n}\n\n/**\n * Provides the behavior and accessibility implementation for a listbox component.\n * A listbox displays a list of options and allows a user to select one or more of them.\n * @param props - Props for the listbox.\n * @param state - State for the listbox, as returned by `useListState`.\n */\nexport function useListBox(props: AriaListBoxOptions, state: ListState, ref: RefObject): ListBoxAria {\n let domProps = filterDOMProps(props, {labelable: true});\n let {listProps} = useSelectableList({\n ...props,\n ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys\n });\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: props.onFocus,\n onBlurWithin: props.onBlur,\n onFocusWithinChange: props.onFocusChange\n });\n\n // Share list id and some props with child options.\n let id = useId(props.id);\n listData.set(state, {\n id,\n shouldUseVirtualFocus: props.shouldUseVirtualFocus,\n shouldSelectOnPressUp: props.shouldSelectOnPressUp,\n shouldFocusOnHover: props.shouldFocusOnHover,\n isVirtualized: props.isVirtualized,\n onAction: props.onAction\n });\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n id,\n // listbox is not an HTML input element so it\n // shouldn't be labeled by a
(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {constrain} from './manipulation';\nimport {getExtendedYear, GregorianCalendar} from './calendars/GregorianCalendar';\nimport {getLocalTimeZone} from './queries';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n let year = getExtendedYear(date.era, date.year);\n return epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path for UTC.\n if (timeZone === 'UTC') {\n return 0;\n }\n\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') {\n return epochFromDate(dateTime);\n }\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = getExtendedYear(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n constrain(copy);\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\ninterface ResolvedDateTimeFormatOptions extends Intl.ResolvedDateTimeFormatOptions {\n hourCycle?: Intl.DateTimeFormatOptions['hourCycle']\n}\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions() as ResolvedDateTimeFormatOptions;\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === 'ethiopic-amete-alem') {\n resolvedOptions.calendar = 'ethioaa';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = (new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions() as ResolvedDateTimeFormatOptions).hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour').value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour').value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\nlet supportsSignDisplay = false;\ntry {\n // @ts-ignore\n supportsSignDisplay = (new Intl.NumberFormat('de-DE', {signDisplay: 'exceptZero'})).resolvedOptions().signDisplay === 'exceptZero';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nlet supportsUnit = false;\ntry {\n // @ts-ignore\n supportsUnit = (new Intl.NumberFormat('de-DE', {style: 'unit', unit: 'degree'})).resolvedOptions().style === 'unit';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst UNITS = {\n degree: {\n narrow: {\n default: '°',\n 'ja-JP': ' 度',\n 'zh-TW': '度',\n 'sl-SI': ' °'\n // Arabic?? But Safari already doesn't use Arabic digits so might be ok...\n // https://bugs.webkit.org/show_bug.cgi?id=218139\n }\n }\n};\n\nexport interface NumberFormatOptions extends Intl.NumberFormatOptions {\n /** Overrides default numbering system for the current locale. */\n numberingSystem?: string\n}\n\ninterface NumberRangeFormatPart extends Intl.NumberFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/**\n * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.\n */\nexport class NumberFormatter implements Intl.NumberFormat {\n private numberFormatter: Intl.NumberFormat;\n private options: NumberFormatOptions;\n\n constructor(locale: string, options: NumberFormatOptions = {}) {\n this.numberFormatter = getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */\n format(value: number): string {\n let res = '';\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);\n } else {\n res = this.numberFormatter.format(value);\n }\n\n if (this.options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short', locale} = this.resolvedOptions();\n let values = UNITS[unit]?.[unitDisplay];\n res += values[locale] || values.default;\n }\n\n return res;\n }\n\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */\n formatToParts(value: number): Intl.NumberFormatPart[] {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n\n /** Formats a number range as a string. */\n formatRange(start: number, end: number): string {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n\n /** Formats a number range as an array of parts. */\n formatRangeToParts(start: number, end: number): NumberRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as NumberRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as NumberRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedNumberFormatOptions {\n let options = this.numberFormatter.resolvedOptions();\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n options = {...options, signDisplay: this.options.signDisplay};\n }\n\n if (!supportsUnit && this.options.style === 'unit') {\n options = {...options, style: 'unit', unit: this.options.unit, unitDisplay: this.options.unitDisplay};\n }\n\n return options;\n }\n}\n\nfunction getCachedNumberFormatter(locale: string, options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {numberingSystem} = options;\n if (numberingSystem && locale.indexOf('-u-nu-') === -1) {\n locale = `${locale}-u-nu-${numberingSystem}`;\n }\n\n if (options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short'} = options;\n if (!unit) {\n throw new Error('unit option must be provided with style: \"unit\"');\n }\n if (!UNITS[unit]?.[unitDisplay]) {\n throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n }\n options = {...options, style: 'decimal'};\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.NumberFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\n/** @private - exported for tests */\nexport function numberFormatSignDisplayPolyfill(numberFormat: Intl.NumberFormat, signDisplay: string, num: number) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([...minus].length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ninterface Symbols {\n minusSign: string,\n plusSign: string,\n decimal: string,\n group: string,\n literals: RegExp,\n numeral: RegExp,\n index: (v: string) => string\n}\n\nconst CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec'];\n\n/**\n * A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,\n * as well as validation of partial user input. It automatically detects the numbering system\n * used in the input, and supports parsing decimals, percentages, currency values, and units\n * according to the locale.\n */\nexport class NumberParser {\n private locale: string;\n private options: Intl.NumberFormatOptions;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.locale = locale;\n this.options = options;\n }\n\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */\n parse(value: string): number {\n return getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */\n isValidPartialNumber(value: string, minValue?: number, maxValue?: number): boolean {\n return getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */\n getNumberingSystem(value: string): string {\n return getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n}\n\nconst numberParserCache = new Map();\nfunction getNumberParserImpl(locale: string, options: Intl.NumberFormatOptions, value: string) {\n // First try the default numbering system for the provided locale\n let defaultParser = getCachedNumberParser(locale, options);\n\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of NUMBERING_SYSTEMS) {\n if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) {\n return parser;\n }\n }\n }\n }\n\n return defaultParser;\n}\n\nfunction getCachedNumberParser(locale: string, options: Intl.NumberFormatOptions) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n let parser = numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new NumberParserImpl(locale, options);\n numberParserCache.set(cacheKey, parser);\n }\n\n return parser;\n}\n\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass NumberParserImpl {\n formatter: Intl.NumberFormat;\n options: Intl.ResolvedNumberFormatOptions;\n symbols: Symbols;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = getSymbols(this.formatter, this.options, options);\n }\n\n parse(value: string) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = replaceAll(fullySanitizedValue, this.symbols.group, '')\n .replace(this.symbols.decimal, '.')\n .replace(this.symbols.minusSign, '-')\n .replace(this.symbols.numeral, this.symbols.index);\n\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) {\n return NaN;\n }\n\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && CURRENCY_SIGN_REGEX.test(value)) {\n newValue = -1 * newValue;\n }\n\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === 'percent') {\n newValue /= 100;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed((this.options.maximumFractionDigits ?? 0) + 2);\n }\n\n return newValue;\n }\n\n sanitize(value: string) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace('-', this.symbols.minusSign);\n\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = replaceAll(value, '.', this.symbols.group);\n }\n\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === 'fr-FR') {\n value = replaceAll(value, '.', String.fromCharCode(8239));\n }\n\n return value;\n }\n\n isValidPartialNumber(value: string, minValue: number = -Infinity, maxValue: number = Infinity): boolean {\n value = this.sanitize(value);\n\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) {\n value = value.slice(this.symbols.minusSign.length);\n } else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) {\n value = value.slice(this.symbols.plusSign.length);\n }\n\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) {\n return false;\n }\n\n // Remove numerals, groups, and decimals\n value = replaceAll(value, this.symbols.group, '')\n .replace(this.symbols.numeral, '')\n .replace(this.symbols.decimal, '');\n\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n}\n\nconst nonLiteralParts = new Set(['decimal', 'fraction', 'integer', 'minusSign', 'plusSign', 'group']);\n\nfunction getSymbols(formatter: Intl.NumberFormat, intlOptions: Intl.ResolvedNumberFormatOptions, originalOptions: Intl.NumberFormatOptions): Symbols {\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n\n let minusSign = allParts.find(p => p.type === 'minusSign')?.value ?? '-';\n let plusSign = posAllParts.find(p => p.type === 'plusSign')?.value;\n\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && (originalOptions?.signDisplay === 'exceptZero' || originalOptions?.signDisplay === 'always')) {\n plusSign = '+';\n }\n\n let decimal = allParts.find(p => p.type === 'decimal')?.value;\n let group = allParts.find(p => p.type === 'group')?.value;\n\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let singularLiterals = singularParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let sortedLiterals = [...new Set([...singularLiterals, ...pluralLiterals])].sort((a, b) => b.length - a.length);\n let literals = sortedLiterals.length === 0 ? \n new RegExp('[\\\\p{White_Space}]', 'gu') :\n new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [...new Intl.NumberFormat(intlOptions.locale, {useGrouping: false}).format(9876543210)].reverse();\n let indexes = new Map(numerals.map((d, i) => [d, i]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = d => String(indexes.get(d));\n\n return {minusSign, plusSign, decimal, group, literals, numeral, index};\n}\n\nfunction replaceAll(str: string, find: string, replace: string) {\n // @ts-ignore\n if (str.replaceAll) {\n // @ts-ignore\n return str.replaceAll(find, replace);\n }\n\n return str.split(find).join(replace);\n}\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// https://en.wikipedia.org/wiki/Right-to-left\nconst RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nconst RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/**\n * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.\n */\nexport function isRTL(locale: string) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return RTL_SCRIPTS.has(script);\n }\n\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split('-')[0];\n return RTL_LANGS.has(lang);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {isRTL} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface Locale {\n /** The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale. */\n locale: string,\n /** The writing direction for the locale. */\n direction: Direction\n}\n\n/**\n * Gets the locale setting of the browser.\n */\nexport function getDefaultLocale(): Locale {\n // @ts-ignore\n let locale = (typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage)) || 'en-US';\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([locale]);\n } catch (_err) {\n locale = 'en-US';\n }\n return {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nlet currentLocale = getDefaultLocale();\nlet listeners = new Set<(locale: Locale) => void>();\n\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (let listener of listeners) {\n listener(currentLocale);\n }\n}\n\n/**\n * Returns the current browser/system language, and updates when it changes.\n */\nexport function useDefaultLocale(): Locale {\n let isSSR = useIsSSR();\n let [defaultLocale, setDefaultLocale] = useState(currentLocale);\n\n useEffect(() => {\n if (listeners.size === 0) {\n window.addEventListener('languagechange', updateLocale);\n }\n\n listeners.add(setDefaultLocale);\n\n return () => {\n listeners.delete(setDefaultLocale);\n if (listeners.size === 0) {\n window.removeEventListener('languagechange', updateLocale);\n }\n };\n }, []);\n\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isRTL} from './utils';\nimport {Locale, useDefaultLocale} from './useDefaultLocale';\nimport React, {ReactNode, useContext} from 'react';\n\nexport interface I18nProviderProps {\n /** Contents that should have the locale applied. */\n children: ReactNode,\n /** The locale to apply to the children. */\n locale?: string\n}\n\nconst I18nContext = React.createContext(null);\n\n/**\n * Provides the locale for the application to all child components.\n */\nexport function I18nProvider(props: I18nProviderProps) {\n let {locale, children} = props;\n let defaultLocale = useDefaultLocale();\n\n let value: Locale = locale ? {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Returns the current locale and layout direction.\n */\nexport function useLocale(): Locale {\n let defaultLocale = useDefaultLocale();\n let context = useContext(I18nContext);\n return context || defaultLocale;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {LocalizedString, LocalizedStringDictionary, LocalizedStringFormatter, LocalizedStrings} from '@internationalized/string';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\nconst cache = new WeakMap();\nfunction getCachedDictionary(strings: LocalizedStrings): LocalizedStringDictionary {\n let dictionary = cache.get(strings);\n if (!dictionary) {\n dictionary = new LocalizedStringDictionary(strings);\n cache.set(strings, dictionary);\n }\n\n return dictionary;\n}\n\n/**\n * Provides localized string formatting for the current locale. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers. Automatically updates when the locale changes.\n * @param strings - A mapping of languages to localized strings by key.\n */\nexport function useLocalizedStringFormatter(strings: LocalizedStrings): LocalizedStringFormatter {\n let {locale} = useLocale();\n let dictionary = useMemo(() => getCachedDictionary(strings), [strings]);\n return useMemo(() => new LocalizedStringFormatter(locale, dictionary), [locale, dictionary]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {NumberFormatOptions, NumberFormatter} from '@internationalized/number';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\n/**\n * Provides localized number formatting for the current locale. Automatically updates when the locale changes,\n * and handles caching of the number formatter for performance.\n * @param options - Formatting options.\n */\nexport function useNumberFormatter(options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {locale} = useLocale();\n return useMemo(() => new NumberFormatter(locale, options), [locale, options]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useLocale} from './context';\n\nlet cache = new Map();\n\n/**\n * Provides localized string collation for the current locale. Automatically updates when the locale changes,\n * and handles caching of the collator for performance.\n * @param options - Collator options.\n */\nexport function useCollator(options?: Intl.CollatorOptions): Intl.Collator {\n let {locale} = useLocale();\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n\n let formatter = new Intl.Collator(locale, options);\n cache.set(cacheKey, formatter);\n return formatter;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef(ref: RefObject): DOMRefValue {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef(domRef: RefObject, focusableRef: RefObject = domRef): FocusableRefValue {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef(ref: DOMRef): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef(ref: FocusableRef, focusableRef?: RefObject): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef(ref: RefObject>): RefObject {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef(ref: RefObject>) : RefObject {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n \n {children}\n \n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps(props: ViewStyleProps, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp(prop: Responsive, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp).base;\n }\n return prop as T;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n \n {content}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PointerType, PressEvents} from '@react-types/shared';\nimport {focusWithoutScrolling, isVirtualClick, isVirtualPointerEvent, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {PressResponderContext} from './context';\nimport {RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n } else if (e.key === 'Enter' && isHTMLAnchorLink(e.currentTarget)) {\n // If the target is a link, we won't have handled this above because we want the default\n // browser behavior to open the link when pressing Enter. But we still need to prevent\n // default so that elements above do not also handle it (e.g. table row).\n e.stopPropagation();\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target as Element)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target instanceof HTMLElement && state.target.contains(target) && (isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link')) {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof HTMLTextAreaElement ||\n element.isContentEditable) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit';\n }\n\n return true;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n stateRef.current.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n stateRef.current.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, []);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps['onBlur'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n const onFocus: FocusProps['onFocus'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : null\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac, isVirtualClick} from '@react-aria/utils';\nimport {useEffect, useState} from 'react';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n if (!state.current.isFocusWithin) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: null,\n onBlur: null\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\nexport interface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\nimport {useRef} from 'react';\n\nexport interface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\nexport interface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: DOMAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: FocusableElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean,\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): FocusableElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n\n // The parent scope is based on the JSX tree, using context.\n // However, if a new scope mounts outside the active scope (e.g. DialogContainer launched from a menu),\n // we want the parent scope to be the active scope instead.\n let ctxParent = ctx?.scopeRef ?? null;\n let parentScope = useMemo(() => activeScope && focusScopeTree.getTreeNode(activeScope) && !isAncestorScope(activeScope, ctxParent) ? activeScope : ctxParent, [ctxParent]);\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n // add to the focus scope tree in render order because useEffects/useLayoutEffects run children first whereas render runs parent first\n // which matters when constructing a tree\n if (focusScopeTree.getTreeNode(parentScope) && !focusScopeTree.getTreeNode(scopeRef)) {\n focusScopeTree.addTreeNode(scopeRef, parentScope);\n }\n\n let node = focusScopeTree.getTreeNode(scopeRef);\n node.contain = contain;\n\n useActiveScopeTracker(scopeRef, restoreFocus, contain);\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible\n useLayoutEffect(() => {\n if (scopeRef) {\n return () => {\n // Scope may have been re-parented.\n let parentScope = focusScopeTree.getTreeNode(scopeRef).parent.scopeRef;\n\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeRef);\n };\n }\n }, [scopeRef, parentScope]);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as FocusableElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as FocusableElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: Element[]) {\n return scope[0].parentElement;\n}\n\nfunction shouldContainFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.contain) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return true;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = document.activeElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (shouldContainFocus(scopeRef)) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (shouldContainFocus(scopeRef) && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n if (document.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n return isElementInChildScope(element);\n}\n\nfunction isElementInScope(element: Element, scope: Element[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let {scopeRef: s} of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\n/** @private */\nexport function isElementInChildOfActiveScope(element: Element) {\n return isElementInChildScope(element, activeScope);\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\nfunction focusElement(element: FocusableElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: Element[], tabbable:boolean = true) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: false}, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n\n focusElement(nextNode as FocusableElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, [scopeRef]);\n}\n\nfunction useActiveScopeTracker(scopeRef: RefObject, restore: boolean, contain: boolean) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n useLayoutEffect(() => {\n if (restore || contain) {\n return;\n }\n\n let scope = scopeRef.current;\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as Element;\n if (isElementInScope(target, scopeRef.current)) {\n activeScope = scopeRef;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n }, [scopeRef, restore, contain]);\n}\n\nfunction shouldRestoreFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.nodeToRestore) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return scope?.scopeRef === scopeRef;\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as FocusableElement : null);\n\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!restoreFocus || contain) {\n return;\n }\n\n let onFocus = () => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scopeRef, contain]);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n if (!restoreFocus) {\n return;\n }\n\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as FocusableElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (\n restoreFocus\n && nodeToRestore\n && (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isElementInScope(document.activeElement, scopeRef.current)\n || (document.activeElement === document.body && shouldRestoreFocus(scopeRef))\n )\n ) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = focusScopeTree.clone();\n requestAnimationFrame(() => {\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (document.activeElement === document.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {\n focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.scopeRef && focusScopeTree.getTreeNode(treeNode.scopeRef)) {\n focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: Element, opts?: FocusManagerOptions, scope?: Element[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as Element).matches(selector)\n && isElementVisible(node as Element)\n && (!scope || isElementInScope(node as Element, scope))\n && (!opts?.accept || opts.accept(node as Element))\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject, defaultOptions: FocusManagerOptions = {}): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\n\nclass Tree {\n private root: TreeNode;\n private fastMap = new Map();\n\n constructor() {\n this.root = new TreeNode({scopeRef: null});\n this.fastMap.set(null, this.root);\n }\n\n get size() {\n return this.fastMap.size;\n }\n\n getTreeNode(data: ScopeRef) {\n return this.fastMap.get(data);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: FocusableElement) {\n let parentNode = this.fastMap.get(parent ?? null);\n let node = new TreeNode({scopeRef});\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n }\n\n removeTreeNode(scopeRef: ScopeRef) {\n // never remove the root\n if (scopeRef === null) {\n return;\n }\n let node = this.fastMap.get(scopeRef);\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse()) {\n if (\n current !== node &&\n node.nodeToRestore &&\n current.nodeToRestore &&\n node.scopeRef.current &&\n isElementInScope(current.nodeToRestore, node.scopeRef.current)\n ) {\n current.nodeToRestore = node.nodeToRestore;\n }\n }\n let children = node.children;\n parentNode.removeChild(node);\n if (children.length > 0) {\n children.forEach(child => parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n\n // Pre Order Depth First\n *traverse(node: TreeNode = this.root): Generator {\n if (node.scopeRef != null) {\n yield node;\n }\n if (node.children.length > 0) {\n for (let child of node.children) {\n yield* this.traverse(child);\n }\n }\n }\n\n clone(): Tree {\n let newTree = new Tree();\n for (let node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);\n }\n return newTree;\n }\n}\n\nclass TreeNode {\n public scopeRef: ScopeRef;\n public nodeToRestore: FocusableElement;\n public parent: TreeNode;\n public children: TreeNode[] = [];\n public contain = false;\n\n constructor(props: {scopeRef: ScopeRef}) {\n this.scopeRef = props.scopeRef;\n }\n addChild(node: TreeNode) {\n this.children.push(node);\n node.parent = this;\n }\n removeChild(node: TreeNode) {\n this.children.splice(this.children.indexOf(node), 1);\n node.parent = undefined;\n }\n}\n\nexport let focusScopeTree = new Tree();\n","import {DOMAttributes} from '@react-types/shared';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useCallback, useState} from 'react';\nimport {useRef} from 'react';\n\nexport interface AriaFocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: DOMAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: AriaFocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback(isFocused => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.current.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\nexport interface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableDOMProps, FocusableElement, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\nexport interface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusableProviderProps extends DOMAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\nexport interface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: DOMAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {forwardRef} from 'react';\nimport {TextProps} from '@react-types/text';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Text(props: TextProps, ref: DOMRef) {\n props = useSlotProps(props, 'text');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Text represents text with no specific semantic meaning.\n */\nconst _Text = forwardRef(Text);\nexport {_Text as Text};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeadingProps} from '@react-types/text';\nimport React, {ElementType, forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Heading(props: HeadingProps, ref: DOMRef) {\n props = useSlotProps(props, 'heading');\n\n let {\n children,\n level = 3,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n let HeadingTag = `h${level}` as ElementType;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Heading is used to create various levels of typographic hierarchies.\n */\nconst _Heading = forwardRef(Heading);\nexport {_Heading as Heading};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {KeyboardProps} from '@react-types/text';\nimport React, {forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Keyboard(props: KeyboardProps, ref: DOMRef) {\n props = useSlotProps(props, 'keyboard');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Keyboard represents text that specifies a keyboard command.\n */\nconst _Keyboard = forwardRef(Keyboard);\nexport {_Keyboard as Keyboard};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {mergeProps} from '@react-aria/utils';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\n\nexport interface ButtonAria {\n /** Props for the button element. */\n buttonProps: T,\n /** Whether the button is currently pressed. */\n isPressed: boolean\n}\n\n// Order with overrides is important: 'button' should be default\nexport function useButton(props: AriaButtonProps<'button'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'a'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'div'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'input'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'span'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,\n * focus behavior, and ARIA props for both native button elements and custom element types.\n * @param props - Props to be applied to the button.\n * @param ref - A ref to a DOM element for the button.\n */\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria> {\n let {\n elementType = 'button',\n isDisabled,\n onPress,\n onPressStart,\n onPressEnd,\n onPressChange,\n // @ts-ignore - undocumented\n preventFocusOnPress,\n // @ts-ignore - undocumented\n allowFocusWhenDisabled,\n // @ts-ignore\n onClick: deprecatedOnClick,\n href,\n target,\n rel,\n type = 'button'\n } = props;\n let additionalProps;\n if (elementType === 'button') {\n additionalProps = {\n type,\n disabled: isDisabled\n };\n } else {\n additionalProps = {\n role: 'button',\n tabIndex: isDisabled ? undefined : 0,\n href: elementType === 'a' && isDisabled ? undefined : href,\n target: elementType === 'a' ? target : undefined,\n type: elementType === 'input' ? type : undefined,\n disabled: elementType === 'input' ? isDisabled : undefined,\n 'aria-disabled': !isDisabled || elementType === 'input' ? undefined : isDisabled,\n rel: elementType === 'a' ? rel : undefined\n };\n }\n\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n isDisabled,\n preventFocusOnPress,\n ref\n });\n\n let {focusableProps} = useFocusable(props, ref);\n if (allowFocusWhenDisabled) {\n focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;\n }\n let buttonProps = mergeProps(focusableProps, pressProps, filterDOMProps(props, {labelable: true}));\n\n return {\n isPressed, // Used to indicate press state for visual\n buttonProps: mergeProps(additionalProps, buttonProps, {\n 'aria-haspopup': props['aria-haspopup'],\n 'aria-expanded': props['aria-expanded'],\n 'aria-controls': props['aria-controls'],\n 'aria-pressed': props['aria-pressed'],\n onClick: (e) => {\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaToggleButtonProps} from '@react-types/button';\nimport {ButtonAria, useButton} from './useButton';\nimport {chain} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {ToggleState} from '@react-stately/toggle';\n\nexport function useToggleButton(props: AriaToggleButtonProps<'a'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'button'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'div'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'input'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'span'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.\n */\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria> {\n const {isSelected} = state;\n const {isPressed, buttonProps} = useButton({\n ...props,\n onPress: chain(state.toggle, props.onPress)\n }, ref);\n\n return {\n isPressed,\n buttonProps: mergeProps(buttonProps, {\n 'aria-pressed': isSelected\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {CSSProperties, JSXElementConstructor, ReactNode, useMemo, useState} from 'react';\nimport {useFocusWithin} from '@react-aria/interactions';\n\nexport interface VisuallyHiddenProps extends DOMAttributes {\n /** The content to visually hide. */\n children?: ReactNode,\n\n /**\n * The element type for the container.\n * @default 'div'\n */\n elementType?: string | JSXElementConstructor,\n\n /** Whether the element should become visible on focus, for example skip links. */\n isFocusable?: boolean\n}\n\nconst styles: CSSProperties = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n};\n\nexport interface VisuallyHiddenAria {\n visuallyHiddenProps: DOMAttributes\n}\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n */\nexport function useVisuallyHidden(props: VisuallyHiddenProps = {}): VisuallyHiddenAria {\n let {\n style,\n isFocusable\n } = props;\n\n let [isFocused, setFocused] = useState(false);\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !isFocusable,\n onFocusWithinChange: (val) => setFocused(val)\n });\n\n // If focused, don't hide the element.\n let combinedStyles = useMemo(() => {\n if (isFocused) {\n return style;\n } else if (style) {\n return {...styles, ...style};\n } else {\n return styles;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocused]);\n\n return {\n visuallyHiddenProps: {\n ...focusWithinProps,\n style: combinedStyles\n }\n };\n}\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible\n * to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children, elementType: Element = 'div', isFocusable, style, ...otherProps} = props;\n let {visuallyHiddenProps} = useVisuallyHidden(props);\n\n return (\n \n {children}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: Element,\n overlayNode: Element,\n scrollNode: Element,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: Element,\n offset: number,\n crossOffset: number,\n maxHeight?: number\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n let documentElement = document.documentElement;\n width = visualViewport?.width ?? documentElement.clientWidth;\n height = visualViewport?.height ?? documentElement.clientHeight;\n\n scroll.top = documentElement.scrollTop || containerNode.scrollTop;\n scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = containerNode.scrollTop;\n scroll.left = containerNode.scrollLeft;\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: Element): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: Element): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n userSetMaxHeight?: number\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n if (userSetMaxHeight && userSetMaxHeight < maxHeight) {\n maxHeight = userSetMaxHeight;\n }\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n } = opts;\n\n let container = ((overlayNode instanceof HTMLElement && overlayNode.offsetParent) || document.body) as Element;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n let {marginTop, marginLeft} = window.getComputedStyle(targetNode);\n childOffset.top += parseInt(marginTop, 10) || 0;\n childOffset.left += parseInt(marginLeft, 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n maxHeight\n );\n}\n\nfunction getOffset(node: Element): Offset {\n let {top, left, width, height} = node.getBoundingClientRect();\n let {scrollTop, scrollLeft, clientTop, clientLeft} = document.documentElement;\n return {\n top: top + scrollTop - clientTop,\n left: left + scrollLeft - clientLeft,\n width,\n height\n };\n}\n\nfunction getPosition(node: Element, parent: Element): Offset {\n let style = window.getComputedStyle(node);\n let offset: Offset;\n if (style.position === 'fixed') {\n let {top, left, width, height} = node.getBoundingClientRect();\n offset = {top, left, width, height};\n } else {\n offset = getOffset(node);\n let parentOffset = getOffset(parent);\n let parentStyle = window.getComputedStyle(parent);\n parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;\n parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;\n offset.top -= parentOffset.top;\n offset.left -= parentOffset.left;\n }\n\n offset.top -= parseInt(style.marginTop, 10) || 0;\n offset.left -= parseInt(style.marginLeft, 10) || 0;\n return offset;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen || onClose === null) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target;\n // window is not a Node and doesn't have contain, but window contains everything\n if (!triggerRef.current || ((target instanceof Node) && !target.contains(triggerRef.current))) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {calculatePosition, PositionResult} from './calculatePosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {RefObject, useCallback, useRef, useState} from 'react';\nimport {useCloseOnScroll} from './useCloseOnScroll';\nimport {useLayoutEffect, useResizeObserver} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: Element,\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject,\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject,\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject,\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean,\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n /**\n * The maxHeight specified for the overlay element.\n * By default, it will take all space up to the current viewport height.\n */\n maxHeight?: number\n}\n\nexport interface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props for the overlay tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis,\n /** Updates the position of the overlay. */\n updatePosition(): void\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n let {direction} = useLocale();\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n onClose,\n maxHeight\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n maxHeight\n ];\n\n let updatePosition = useCallback(() => {\n if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Update position when anything changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Update position when the overlay changes size (might need to flip).\n useResizeObserver({\n ref: overlayRef,\n onResize: updatePosition\n });\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: ReturnType;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose && close\n });\n\n return {\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight\n }\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop\n }\n },\n updatePosition\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {isElementInChildOfActiveScope} from '@react-aria/focus';\nimport {RefObject, SyntheticEvent, useEffect} from 'react';\nimport {useFocusWithin, useInteractOutside} from '@react-aria/interactions';\n\nexport interface AriaOverlayProps {\n /** Whether the overlay is currently open. */\n isOpen?: boolean,\n\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n\n /**\n * Whether to close the overlay when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n\n /** Whether the overlay should close when focus is lost or moves outside it. */\n shouldCloseOnBlur?: boolean,\n\n /**\n * Whether pressing the escape key to close the overlay should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean,\n\n /**\n * When user interacts with the argument element outside of the overlay ref,\n * return true if onClose should be called. This gives you a chance to filter\n * out interaction with elements that should not dismiss the overlay.\n * By default, onClose will always be called on interaction outside the overlay ref.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean\n}\n\nexport interface OverlayAria {\n /** Props to apply to the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes\n}\n\nconst visibleOverlays: RefObject[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(props: AriaOverlayProps, ref: RefObject): OverlayAria {\n let {\n onClose,\n shouldCloseOnBlur,\n isOpen,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n shouldCloseOnInteractOutside\n } = props;\n\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n useEffect(() => {\n if (isOpen) {\n visibleOverlays.push(ref);\n }\n\n return () => {\n let index = visibleOverlays.indexOf(ref);\n if (index >= 0) {\n visibleOverlays.splice(index, 1);\n }\n };\n }, [isOpen, ref]);\n\n // Only hide the overlay when it is the topmost visible overlay in the stack.\n let onHide = () => {\n if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n onClose();\n }\n };\n\n let onInteractOutsideStart = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n };\n\n let onInteractOutside = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n onHide();\n }\n };\n\n // Handle the escape key\n let onKeyDown = (e) => {\n if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n e.stopPropagation();\n e.preventDefault();\n onHide();\n }\n };\n\n // Handle clicking outside the overlay to close it\n useInteractOutside({ref, onInteractOutside: isDismissable ? onInteractOutside : null, onInteractOutsideStart});\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: (e) => {\n // If focus is moving into a child focus scope (e.g. menu inside a dialog),\n // do not close the outer overlay. At this point, the active scope should\n // still be the outer overlay, since blur events run before focus.\n if (e.relatedTarget && isElementInChildOfActiveScope(e.relatedTarget)) {\n return;\n }\n\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as Element)) {\n onClose();\n }\n }\n });\n\n let onPointerDownUnderlay = e => {\n // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n if (e.target === e.currentTarget) {\n e.preventDefault();\n }\n };\n\n return {\n overlayProps: {\n onKeyDown,\n ...focusWithinProps\n },\n underlayProps: {\n onPointerDown: onPointerDownUnderlay\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {onCloseMap} from './useCloseOnScroll';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes\n}\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function useOverlayTrigger(props: OverlayTriggerProps, state: OverlayTriggerState, ref: RefObject): OverlayTriggerAria {\n let {type} = props;\n let {isOpen} = state;\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n useEffect(() => {\n if (ref && ref.current) {\n onCloseMap.set(ref.current, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n let ariaHasPopup = undefined;\n if (type === 'menu') {\n ariaHasPopup = true;\n } else if (type === 'listbox') {\n ariaHasPopup = 'listbox';\n }\n\n let overlayId = useId();\n return {\n triggerProps: {\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': isOpen,\n 'aria-controls': isOpen ? overlayId : null,\n onPress: state.toggle\n },\n overlayProps: {\n id: overlayId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain, getScrollParent, isIOS, useLayoutEffect} from '@react-aria/utils';\n\ninterface PreventScrollOptions {\n /** Whether the scroll lock is disabled. */\n isDisabled?: boolean\n}\n\n// @ts-ignore\nconst visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */\nexport function usePreventScroll(options: PreventScrollOptions = {}) {\n let {isDisabled} = options;\n\n useLayoutEffect(() => {\n if (isDisabled) {\n return;\n }\n\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n } else {\n restore = preventScrollStandard();\n }\n }\n\n return () => {\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore();\n }\n };\n }, [isDisabled]);\n}\n\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n return chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden')\n );\n}\n\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable: Element;\n let lastY = 0;\n let onTouchStart = (e: TouchEvent) => {\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target as Element);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n\n lastY = e.changedTouches[0].pageY;\n };\n\n let onTouchMove = (e: TouchEvent) => {\n // Prevent scrolling the window.\n if (scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n\n if ((scrollTop <= 0 && y > lastY) || (scrollTop >= bottom && y < lastY)) {\n e.preventDefault();\n }\n\n lastY = y;\n };\n\n let onTouchEnd = (e: TouchEvent) => {\n let target = e.target as HTMLElement;\n\n // Apply this change if we're not already focused on the target element\n if (willOpenKeyboard(target) && target !== document.activeElement) {\n e.preventDefault();\n\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(() => {\n target.style.transform = '';\n });\n }\n };\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as HTMLElement;\n if (willOpenKeyboard(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(() => {\n target.style.transform = '';\n\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(() => {\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', () => scrollIntoView(target), {once: true});\n }\n }\n });\n }\n };\n\n let onWindowScroll = () => {\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n\n let restoreStyles = chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden'),\n setStyle(document.body, 'marginTop', `-${scrollY}px`)\n );\n\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n\n let removeEvents = chain(\n addEvent(document, 'touchstart', onTouchStart, {passive: false, capture: true}),\n addEvent(document, 'touchmove', onTouchMove, {passive: false, capture: true}),\n addEvent(document, 'touchend', onTouchEnd, {passive: false, capture: true}),\n addEvent(document, 'focus', onFocus, true),\n addEvent(window, 'scroll', onWindowScroll)\n );\n\n return () => {\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element: HTMLElement, style: string, value: string) {\n let cur = element.style[style];\n element.style[style] = value;\n\n return () => {\n element.style[style] = cur;\n };\n}\n\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(\n target: EventTarget,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n target.addEventListener(event, handler, options);\n return () => {\n target.removeEventListener(event, handler, options);\n };\n}\n\nfunction scrollIntoView(target: Element) {\n let root = document.scrollingElement || document.documentElement;\n while (target && target !== root) {\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n if (targetTop > scrollableTop + target.clientHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n\n target = scrollable.parentElement;\n }\n}\n\nfunction willOpenKeyboard(target: Element) {\n return (\n (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) ||\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLElement && target.isContentEditable)\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport React, {AriaAttributes, ReactNode, useContext, useEffect, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface ModalProviderProps extends DOMAttributes {\n children: ReactNode\n}\n\ninterface ModalContext {\n parent: ModalContext | null,\n modalCount: number,\n addModal: () => void,\n removeModal: () => void\n}\n\nconst Context = React.createContext(null);\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using React context in order to account for things\n * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.\n */\nexport function ModalProvider(props: ModalProviderProps) {\n let {children} = props;\n let parent = useContext(Context);\n let [modalCount, setModalCount] = useState(0);\n let context = useMemo(() => ({\n parent,\n modalCount,\n addModal() {\n setModalCount(count => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount(count => count - 1);\n if (parent) {\n parent.removeModal();\n }\n }\n }), [parent, modalCount]);\n\n return (\n \n {children}\n \n );\n}\n\nexport interface ModalProviderAria {\n /**\n * Props to be spread on the container element.\n */\n modalProviderProps: AriaAttributes\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n let context = useContext(Context);\n return {\n modalProviderProps: {\n 'aria-hidden': context && context.modalCount > 0 ? true : null\n }\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nfunction OverlayContainerDOM(props: ModalProviderProps) {\n let {modalProviderProps} = useModalProvider();\n return
;\n}\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a ``. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport function OverlayProvider(props: ModalProviderProps) {\n return (\n \n \n \n );\n}\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport function OverlayContainer(props: OverlayContainerProps): React.ReactPortal {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body, ...rest} = props;\n\n React.useEffect(() => {\n if (portalContainer?.closest('[data-overlay-container]')) {\n throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n }\n }, [portalContainer]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = ;\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\ninterface ModalAriaProps extends DOMAttributes {\n /** Data attribute marks the dom node as a modal for the aria-modal-polyfill. */\n 'data-ismodal': boolean\n}\n\nexport interface AriaModalOptions {\n isDisabled?: boolean\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: ModalAriaProps\n}\n\n/**\n * Hides content outside the current `` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function useModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n let context = useContext(Context);\n if (!context) {\n throw new Error('Modal is not contained within a provider');\n }\n\n useEffect(() => {\n if (options?.isDisabled || !context || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n return () => {\n if (context && context.parent) {\n context.parent.removeModal();\n }\n };\n }, [context, context.parent, options?.isDisabled]);\n\n return {\n modalProps: {\n 'data-ismodal': !options?.isDisabled\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React from 'react';\nimport {useLabels} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {VisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface DismissButtonProps extends AriaLabelingProps, DOMProps {\n /** Called when the dismiss button is activated. */\n onDismiss?: () => void\n}\n\n/**\n * A visually hidden button that can be used to allow screen reader\n * users to dismiss a modal or popup when there is no visual\n * affordance to do so.\n */\nexport function DismissButton(props: DismissButtonProps) {\n let {onDismiss, ...otherProps} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n let labels = useLabels(otherProps, stringFormatter.format('dismiss'));\n\n let onClick = () => {\n if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n \n \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"dismiss\": \"تجاهل\"\n}\n","{\n \"dismiss\": \"Отхвърляне\"\n}\n","{\n \"dismiss\": \"Odstranit\"\n}\n","{\n \"dismiss\": \"Luk\"\n}\n","{\n \"dismiss\": \"Schließen\"\n}\n","{\n \"dismiss\": \"Απόρριψη\"\n}\n","{\n \"dismiss\": \"Dismiss\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Lõpeta\"\n}\n","{\n \"dismiss\": \"Hylkää\"\n}\n","{\n \"dismiss\": \"Rejeter\"\n}\n","{\n \"dismiss\": \"התעלם\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Elutasítás\"\n}\n","{\n \"dismiss\": \"Ignora\"\n}\n","{\n \"dismiss\": \"閉じる\"\n}\n","{\n \"dismiss\": \"무시\"\n}\n","{\n \"dismiss\": \"Atmesti\"\n}\n","{\n \"dismiss\": \"Nerādīt\"\n}\n","{\n \"dismiss\": \"Lukk\"\n}\n","{\n \"dismiss\": \"Negeren\"\n}\n","{\n \"dismiss\": \"Zignoruj\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Dispensar\"\n}\n","{\n \"dismiss\": \"Revocare\"\n}\n","{\n \"dismiss\": \"Пропустить\"\n}\n","{\n \"dismiss\": \"Zrušiť\"\n}\n","{\n \"dismiss\": \"Opusti\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Avvisa\"\n}\n","{\n \"dismiss\": \"Kapat\"\n}\n","{\n \"dismiss\": \"Скасувати\"\n}\n","{\n \"dismiss\": \"取消\"\n}\n","{\n \"dismiss\": \"關閉\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet refCountMap = new WeakMap();\nlet observerStack = [];\n\n/**\n * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,\n * and returns a function to revert these changes. In addition, changes to the DOM are watched\n * and new elements outside the targets are automatically hidden.\n * @param targets - The elements that should remain visible.\n * @param root - Nothing will be hidden above this element.\n * @returns - A function to restore all hidden elements.\n */\nexport function ariaHideOutside(targets: Element[], root = document.body) {\n let visibleNodes = new Set(targets);\n let hiddenNodes = new Set();\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // If this node is a live announcer, add it to the set of nodes to keep visible.\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n }\n\n // Skip this node and its children if it is one of the target nodes, or a live announcer.\n // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is\n // made for elements with role=\"row\" since VoiceOver on iOS has issues hiding elements with role=\"row\".\n // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).\n if (\n visibleNodes.has(node as Element) ||\n (hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row')\n ) {\n return NodeFilter.FILTER_REJECT;\n }\n\n // Skip this node but continue to children if one of the targets is inside the node.\n if (targets.some(target => node.contains(target))) {\n return NodeFilter.FILTER_SKIP;\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n );\n\n let hide = (node: Element) => {\n let refCount = refCountMap.get(node) ?? 0;\n\n // If already aria-hidden, and the ref count is zero, then this element\n // was already hidden and there's nothing for us to do.\n if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) {\n return;\n }\n\n if (refCount === 0) {\n node.setAttribute('aria-hidden', 'true');\n }\n\n hiddenNodes.add(node);\n refCountMap.set(node, refCount + 1);\n };\n\n // If there is already a MutationObserver listening from a previous call,\n // disconnect it so the new on takes over.\n if (observerStack.length) {\n observerStack[observerStack.length - 1].disconnect();\n }\n\n let node = walker.nextNode() as Element;\n while (node != null) {\n hide(node);\n node = walker.nextNode() as Element;\n }\n\n let observer = new MutationObserver(changes => {\n for (let change of changes) {\n if (change.type !== 'childList' || change.addedNodes.length === 0) {\n continue;\n }\n\n // If the parent element of the added nodes is not within one of the targets,\n // and not already inside a hidden node, hide all of the new children.\n if (![...visibleNodes, ...hiddenNodes].some(node => node.contains(change.target))) {\n for (let node of change.addedNodes) {\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n } else if (node instanceof Element) {\n hide(node);\n }\n }\n }\n }\n });\n\n observer.observe(root, {childList: true, subtree: true});\n\n let observerWrapper = {\n observe() {\n observer.observe(root, {childList: true, subtree: true});\n },\n disconnect() {\n observer.disconnect();\n }\n };\n\n observerStack.push(observerWrapper);\n\n return () => {\n observer.disconnect();\n\n for (let node of hiddenNodes) {\n let count = refCountMap.get(node);\n if (count === 1) {\n node.removeAttribute('aria-hidden');\n refCountMap.delete(node);\n } else {\n refCountMap.set(node, count - 1);\n }\n }\n\n // Remove this observer from the stack, and start the previous one.\n if (observerWrapper === observerStack[observerStack.length - 1]) {\n observerStack.pop();\n if (observerStack.length) {\n observerStack[observerStack.length - 1].observe();\n }\n } else {\n observerStack.splice(observerStack.indexOf(observerWrapper), 1);\n }\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {AriaPositionProps, useOverlayPosition} from './useOverlayPosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {PlacementAxis} from '@react-types/overlays';\nimport {RefObject, useState} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaPopoverProps extends Omit {\n /**\n * The ref for the element which the popover positions itself with respect to.\n */\n triggerRef: RefObject,\n /**\n * The ref for the popover element.\n */\n popoverRef: RefObject,\n /**\n * Whether the popover is non-modal, i.e. elements outside the popover may be\n * interacted with by assistive technologies.\n *\n * Most popovers should not use this option as it may negatively impact the screen\n * reader experience. Only use with components such as combobox, which are designed\n * to handle this situation carefully.\n */\n isNonModal?: boolean,\n /**\n * Whether pressing the escape key to close the popover should be disabled.\n *\n * Most popovers should not use this option. When set to true, an alternative\n * way to close the popover with a keyboard must be provided.\n *\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface PopoverAria {\n /** Props for the popover element. */\n popoverProps: DOMAttributes,\n /** Props for the popover tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes,\n /** Placement of the popover with respect to the trigger. */\n placement: PlacementAxis\n}\n\n/**\n * Provides the behavior and accessibility implementation for a popover component.\n * A popover is an overlay element positioned relative to a trigger.\n */\nexport function usePopover(props: AriaPopoverProps, state: OverlayTriggerState): PopoverAria {\n let {\n triggerRef,\n popoverRef,\n isNonModal,\n isKeyboardDismissDisabled,\n ...otherProps\n } = props;\n\n let {overlayProps, underlayProps} = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n shouldCloseOnBlur: true,\n isDismissable: !isNonModal,\n isKeyboardDismissDisabled\n },\n popoverRef\n );\n\n let {overlayProps: positionProps, arrowProps, placement} = useOverlayPosition({\n ...otherProps,\n targetRef: triggerRef,\n overlayRef: popoverRef,\n isOpen: state.isOpen,\n onClose: null\n });\n\n // Delay preventing scroll until popover is positioned to avoid extra scroll padding.\n // This requires a layout effect so that positioning has been committed to the DOM\n // by the time usePreventScroll measures the element.\n let [isPositioned, setPositioned] = useState(false);\n useLayoutEffect(() => {\n if (!isNonModal && placement) {\n setPositioned(true);\n }\n }, [isNonModal, placement]);\n\n usePreventScroll({\n isDisabled: isNonModal || !isPositioned\n });\n\n useLayoutEffect(() => {\n if (state.isOpen && !isNonModal && popoverRef.current) {\n return ariaHideOutside([popoverRef.current]);\n }\n }, [isNonModal, state.isOpen, popoverRef]);\n\n return {\n popoverProps: mergeProps(overlayProps, positionProps),\n arrowProps,\n underlayProps,\n placement\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusScope} from '@react-aria/focus';\nimport React, {ReactNode, useContext, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport interface OverlayProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element,\n /** The overlay to render in the portal. */\n children: ReactNode\n}\n\nexport const OverlayContext = React.createContext(null);\n\n/**\n * A container which renders an overlay such as a popover or modal in a portal,\n * and provides a focus scope for the child elements.\n */\nexport function Overlay(props: OverlayProps) {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body} = props;\n let [contain, setContain] = useState(false);\n let contextValue = useMemo(() => ({contain, setContain}), [contain, setContain]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = (\n \n \n {props.children}\n \n \n );\n\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\n/** @private */\nexport function useOverlayFocusContain() {\n let ctx = useContext(OverlayContext);\n let setContain = ctx?.setContain;\n useLayoutEffect(() => {\n setContain?.(true);\n }, [setContain]);\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {useOverlayFocusContain} from './Overlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaModalOverlayProps {\n /**\n * Whether to close the modal when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n /**\n * Whether pressing the escape key to close the modal should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface ModalOverlayAria {\n /** Props for the modal element. */\n modalProps: DOMAttributes,\n /** Props for the underlay element. */\n underlayProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a modal component.\n * A modal is an overlay element which blocks interaction with elements outside it.\n */\nexport function useModalOverlay(props: AriaModalOverlayProps, state: OverlayTriggerState, ref: RefObject): ModalOverlayAria {\n let {overlayProps, underlayProps} = useOverlay({\n ...props,\n isOpen: state.isOpen,\n onClose: state.close\n }, ref);\n\n usePreventScroll({\n isDisabled: !state.isOpen\n });\n\n useOverlayFocusContain();\n\n useEffect(() => {\n if (state.isOpen) {\n return ariaHideOutside([ref.current]);\n }\n }, [state.isOpen, ref]);\n\n return {\n modalProps: mergeProps(overlayProps),\n underlayProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n@import '../commons/index.css';\n@import 'font.css';\n\n/*@mixin typography .spectrum-Body1 {}\n@mixin typography .spectrum-Body2 {}\n@mixin typography .spectrum-Body3 {}\n@mixin typography .spectrum-Body4 {}\n@mixin typography .spectrum-Body5 {}\n@mixin typography .spectrum-Heading1 {}\n@mixin typography .spectrum-Heading2 {}\n@mixin typography .spectrum-Heading3 {}\n@mixin typography .spectrum-Heading4 {}\n@mixin typography .spectrum-Heading5 {}\n@mixin typography .spectrum-Heading6 {}\n@mixin typography .spectrum-Subheading {}\n@mixin typography .spectrum-Detail {}\n@mixin typography .spectrum-Heading1--quiet, heading-quiet-1 {}\n@mixin typography .spectrum-Heading2--quiet, heading-quiet-2 {}\n@mixin typography .spectrum-Heading1--strong, heading-strong-1 {}\n@mixin typography .spectrum-Heading2--strong, heading-strong-2 {}\n@mixin typography .spectrum-Heading1--display, display-1 {}\n@mixin typography .spectrum-Heading2--display, display-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n\n.spectrum-Typography {\n @mixin typographyMargins .spectrum-Body1 {}\n @mixin typographyMargins .spectrum-Body2 {}\n @mixin typographyMargins .spectrum-Body3 {}\n @mixin typographyMargins .spectrum-Body4 {}\n @mixin typographyMargins .spectrum-Body5 {}\n @mixin typographyMargins .spectrum-Heading1 {}\n @mixin typographyMargins .spectrum-Heading2 {}\n @mixin typographyMargins .spectrum-Heading3 {}\n @mixin typographyMargins .spectrum-Heading4 {}\n @mixin typographyMargins .spectrum-Heading5 {}\n @mixin typographyMargins .spectrum-Heading6 {}\n @mixin typographyMargins .spectrum-Subheading {}\n @mixin typographyMargins .spectrum-Detail {}\n @mixin typographyMargins .spectrum-Heading1--quiet, heading-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--quiet, heading-quiet-2 {}\n @mixin typographyMargins .spectrum-Heading1--strong, heading-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--strong, heading-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display, display-1 {}\n @mixin typographyMargins .spectrum-Heading2--display, display-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n}\n\n.spectrum-Article {\n font-family: var(--spectrum-body-article-1-text-font-family);\n @mixin typography .spectrum-Body1, body-article-1 {}\n @mixin typography .spectrum-Body2, body-article-2 {}\n @mixin typography .spectrum-Body3, body-article-3 {}\n @mixin typography .spectrum-Body4, body-article-4 {}\n @mixin typography .spectrum-Body5, body-article-5 {}\n @mixin typography .spectrum-Heading1, heading-article-1 {}\n @mixin typography .spectrum-Heading2, heading-article-2 {}\n @mixin typography .spectrum-Heading3, heading-article-3 {}\n @mixin typography .spectrum-Heading4, heading-article-4 {}\n @mixin typography .spectrum-Heading5, heading-article-5 {}\n @mixin typography .spectrum-Heading6, heading-article-6 {}\n @mixin typography .spectrum-Subheading, subheading-article {}\n @mixin typography .spectrum-Detail, detail-article {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-article-2 {}\n @mixin typography .spectrum-Heading1--display, display-article-1 {}\n @mixin typography .spectrum-Heading2--display, display-article-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-article-2 {}\n}\n.spectrum {\n &:lang(ja),\n &:lang(ko),\n &:lang(zh) {\n @mixin typography .spectrum-Body1, body-han-1 {}\n @mixin typography .spectrum-Body2, body-han-2 {}\n @mixin typography .spectrum-Body3, body-han-3 {}\n @mixin typography .spectrum-Body4, body-han-4 {}\n @mixin typography .spectrum-Body5, body-han-5 {}\n @mixin typography .spectrum-Heading1, heading-han-1 {}\n @mixin typography .spectrum-Heading2, heading-han-2 {}\n @mixin typography .spectrum-Heading3, heading-han-3 {}\n @mixin typography .spectrum-Heading4, heading-han-4 {}\n @mixin typography .spectrum-Heading5, heading-han-5 {}\n @mixin typography .spectrum-Heading6, heading-han-6 {}\n @mixin typography .spectrum-Subheading, subheading-han {}\n @mixin typography .spectrum-Detail, detail-han {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-han-2 {}\n @mixin typography .spectrum-Heading1--strong, heading-strong-han-1 {}\n @mixin typography .spectrum-Heading2--strong, heading-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display, display-han-1 {}\n @mixin typography .spectrum-Heading2--display, display-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-han-2 {}\n }\n}\n@mixin typography .spectrum-Code1, body-code-1, true {\n font-family: var(--spectrum-body-code-1-text-font-family);\n}\n@mixin typography .spectrum-Code2, body-code-2, true {\n font-family: var(--spectrum-body-code-2-text-font-family);\n}\n@mixin typography .spectrum-Code3, body-code-3, true {\n font-family: var(--spectrum-body-code-3-text-font-family);\n}\n@mixin typography .spectrum-Code4, body-code-4, true {\n font-family: var(--spectrum-body-code-4-text-font-family);\n}\n@mixin typography .spectrum-Code5, body-code-5, true {\n font-family: var(--spectrum-body-code-5-text-font-family);\n}*/\n\n/*\n The &.spectrum makes it so users can do
and still get the right font sizes\n Without this, they would have to do
, which makes no sense\n*/\n&.spectrum,\n&.spectrum-Body,\n.spectrum,\n.spectrum-Body {\n font-size: var(--spectrum-body-4-text-size);\n font-weight: var(--spectrum-body-4-text-font-weight);\n line-height: var(--spectrum-body-4-text-line-height);\n font-style: var(--spectrum-body-4-text-font-style);\n}\n\n.spectrum-Body--italic {\n font-style: var(--spectrum-body-4-emphasis-text-font-style);\n}\n\n/*\n.spectrum-Body--large {\n @extend .spectrum-Body2;\n}\n\n.spectrum-Body--small {\n @extend .spectrum-Body5;\n}\n\n.spectrum-Body--secondary {\n @extend .spectrum-Body4;\n}\n\n.spectrum-Heading--display {\n @extend .spectrum-Heading2--display.spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--pageTitle {\n @extend .spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--subtitle1 {\n @extend .spectrum-Heading4;\n}\n\n.spectrum-Heading--subtitle2 {\n @extend .spectrum-Heading6;\n}\n\n.spectrum-Heading--subtitle3 {\n @extend .spectrum-Subheading;\n}*/\n","{\n \"name\": \"@react-spectrum/provider\",\n \"version\": \"3.6.1\",\n \"description\": \"Spectrum UI components in React\",\n \"license\": \"Apache-2.0\",\n \"main\": \"dist/main.js\",\n \"module\": \"dist/module.js\",\n \"types\": \"dist/types.d.ts\",\n \"source\": \"src/index.ts\",\n \"files\": [\n \"dist\",\n \"src\"\n ],\n \"sideEffects\": [\n \"*.css\"\n ],\n \"targets\": {\n \"main\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n },\n \"module\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/adobe/react-spectrum\"\n },\n \"dependencies\": {\n \"@react-aria/i18n\": \"^3.6.3\",\n \"@react-aria/overlays\": \"^3.12.1\",\n \"@react-aria/utils\": \"^3.14.2\",\n \"@react-spectrum/utils\": \"^3.8.1\",\n \"@react-types/provider\": \"^3.5.5\",\n \"@react-types/shared\": \"^3.16.0\",\n \"@swc/helpers\": \"^0.4.14\",\n \"clsx\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@adobe/spectrum-css-temp\": \"3.0.0-alpha.1\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n BreakpointProvider,\n shouldKeepSpectrumClassNames,\n useDOMRef,\n useMatchedBreakpoints,\n useStyleProps\n} from '@react-spectrum/utils';\nimport clsx from 'clsx';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {I18nProvider, useLocale} from '@react-aria/i18n';\nimport {ModalProvider, useModalProvider} from '@react-aria/overlays';\nimport {ProviderContext, ProviderProps} from '@react-types/provider';\nimport React, {useContext, useEffect, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/page/vars.css';\nimport typographyStyles from '@adobe/spectrum-css-temp/components/typography/index.css';\nimport {useColorScheme, useScale} from './mediaQueries';\n// @ts-ignore\nimport {version} from '../package.json';\n\nconst Context = React.createContext(null);\nContext.displayName = 'ProviderContext';\n\nconst DEFAULT_BREAKPOINTS = {S: 640, M: 768, L: 1024, XL: 1280, XXL: 1536};\n\nfunction Provider(props: ProviderProps, ref: DOMRef) {\n let prevContext = useProvider();\n let prevColorScheme = prevContext && prevContext.colorScheme;\n let prevBreakpoints = prevContext && prevContext.breakpoints;\n let {\n theme = prevContext && prevContext.theme,\n defaultColorScheme\n } = props;\n if (!theme) {\n throw new Error('theme not found, the parent provider must have a theme provided');\n }\n // Hooks must always be called.\n let autoColorScheme = useColorScheme(theme, defaultColorScheme);\n let autoScale = useScale(theme);\n let {locale: prevLocale} = useLocale();\n // if the new theme doesn't support the prevColorScheme, we must resort to the auto\n let usePrevColorScheme = !!theme[prevColorScheme];\n\n // importance of color scheme props > parent > auto:(OS > default > omitted)\n let {\n colorScheme = usePrevColorScheme ? prevColorScheme : autoColorScheme,\n scale = prevContext ? prevContext.scale : autoScale,\n locale = prevContext ? prevLocale : null,\n breakpoints = prevContext ? prevBreakpoints : DEFAULT_BREAKPOINTS,\n children,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState,\n ...otherProps\n } = props;\n\n // select only the props with values so undefined props don't overwrite prevContext values\n let currentProps = {\n version,\n theme,\n breakpoints,\n colorScheme,\n scale,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState\n };\n\n let matchedBreakpoints = useMatchedBreakpoints(breakpoints);\n let filteredProps = {};\n Object.entries(currentProps).forEach(([key, value]) => value !== undefined && (filteredProps[key] = value));\n\n // Merge options with parent provider\n let context = Object.assign({}, prevContext, filteredProps);\n\n // Only wrap in a DOM node if the theme, colorScheme, or scale changed\n let contents = children;\n let domProps = filterDOMProps(otherProps);\n let {styleProps} = useStyleProps(otherProps, undefined, {matchedBreakpoints});\n if (!prevContext || props.locale || theme !== prevContext.theme || colorScheme !== prevContext.colorScheme || scale !== prevContext.scale || Object.keys(domProps).length > 0 || otherProps.UNSAFE_className || Object.keys(styleProps.style).length > 0) {\n contents = (\n \n {contents}\n \n );\n }\n\n return (\n \n \n \n \n {contents}\n \n \n \n \n );\n}\n\n/**\n * Provider is the container for all React Spectrum applications.\n * It defines the theme, locale, and other application level settings,\n * and can also be used to provide common properties to a group of components.\n */\nlet _Provider = React.forwardRef(Provider);\nexport {_Provider as Provider};\n\nconst ProviderWrapper = React.forwardRef(function ProviderWrapper(props: ProviderProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {locale, direction} = useLocale();\n let {theme, colorScheme, scale} = useProvider();\n let {modalProviderProps} = useModalProvider();\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n let themeKey = Object.keys(theme[colorScheme])[0];\n let scaleKey = Object.keys(theme[scale])[0];\n\n let className = clsx(\n styleProps.className,\n styles['spectrum'],\n typographyStyles['spectrum'],\n Object.values(theme[colorScheme]),\n Object.values(theme[scale]),\n theme.global ? Object.values(theme.global) : null,\n {\n 'react-spectrum-provider': shouldKeepSpectrumClassNames,\n spectrum: shouldKeepSpectrumClassNames,\n [themeKey]: shouldKeepSpectrumClassNames,\n [scaleKey]: shouldKeepSpectrumClassNames\n }\n );\n\n let style = {\n ...styleProps.style,\n // This ensures that browser native UI like scrollbars are rendered in the right color scheme.\n // See https://web.dev/color-scheme/.\n colorScheme: props.colorScheme ?? colorScheme ?? Object.keys(theme).filter(k => k === 'light' || k === 'dark').join(' ')\n };\n\n let hasWarned = useRef(false);\n useEffect(() => {\n if (direction && domRef.current) {\n let closestDir = domRef.current.parentElement.closest('[dir]');\n let dir = closestDir && closestDir.getAttribute('dir');\n if (dir && dir !== direction && !hasWarned.current) {\n console.warn(`Language directions cannot be nested. ${direction} inside ${dir}.`);\n hasWarned.current = true;\n }\n }\n }, [direction, domRef, hasWarned]);\n\n\n return (\n \n {children}\n
\n );\n});\n\n/**\n * Returns the various settings and styles applied by the nearest parent Provider.\n * Properties explicitly set by the nearest parent Provider override those provided by preceeding Providers.\n */\nexport function useProvider(): ProviderContext {\n return useContext(Context);\n}\n\nexport function useProviderProps(props: T) : T {\n let context = useProvider();\n if (!context) {\n return props;\n }\n return Object.assign({}, {\n isQuiet: context.isQuiet,\n isEmphasized: context.isEmphasized,\n isDisabled: context.isDisabled,\n isRequired: context.isRequired,\n isReadOnly: context.isReadOnly,\n validationState: context.validationState\n }, props);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ColorScheme, Scale} from '@react-types/provider';\nimport {Theme} from '@react-types/provider';\nimport {useMediaQuery} from '@react-spectrum/utils';\n\nexport function useColorScheme(theme: Theme, defaultColorScheme: ColorScheme): ColorScheme {\n let matchesDark = useMediaQuery('(prefers-color-scheme: dark)');\n let matchesLight = useMediaQuery('(prefers-color-scheme: light)');\n\n // importance OS > default > omitted\n\n if (theme.dark && matchesDark) {\n return 'dark';\n }\n\n if (theme.light && matchesLight) {\n return 'light';\n }\n\n if (theme.dark && defaultColorScheme === 'dark') {\n return 'dark';\n }\n\n if (theme.light && defaultColorScheme === 'light') {\n return 'light';\n }\n\n if (!theme.dark) {\n return 'light';\n }\n\n if (!theme.light) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function useScale(theme: Theme): Scale {\n let matchesFine = useMediaQuery('(any-pointer: fine)');\n if (matchesFine && theme.medium) {\n return 'medium';\n }\n\n if (theme.large) {\n return 'large';\n }\n\n return 'medium';\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CornerTriangle;\n\nvar _CornerTriangle = require(\"@adobe/react-spectrum-ui/dist/CornerTriangle\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CornerTriangle(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CornerTriangle.CornerTriangle, null));\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CornerTriangle = CornerTriangle;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CornerTriangle(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }));\n}\n\nCornerTriangle.displayName = 'CornerTriangle';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, IconColorValue, StyleProps} from '@react-types/shared';\nimport {baseStyleProps, classNames, StyleHandlers, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface IconProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Icon.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * Size of Icon (changes based on scale).\n */\n size?: 'XXS' | 'XS' | 'S' | 'M' | 'L' |'XL' | 'XXL',\n /**\n * A slot to place the icon in.\n * @default 'icon'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true',\n /**\n * Color of the Icon.\n */\n color?: IconColorValue\n}\n\nexport type IconPropsWithoutChildren = Omit;\n\nfunction iconColorValue(value: IconColorValue) {\n return `var(--spectrum-semantic-${value}-color-icon)`;\n}\n\nconst iconStyleProps: StyleHandlers = {\n ...baseStyleProps,\n color: ['color', iconColorValue]\n};\n\n/**\n * Spectrum icons are clear, minimal, and consistent across platforms. They follow the focused and rational principles of the design system in both metaphor and style.\n */\nexport function Icon(props: IconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n size,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, iconStyleProps);\n\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n // Use user specified size, falling back to provider scale if size is undef\n let iconSize = size ? size : scale;\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n `spectrum-Icon--size${iconSize}`,\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {classNames, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface UIIconProps extends DOMProps, AriaLabelingProps, StyleProps {\n children: ReactElement,\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type UIIconPropsWithoutChildren = Omit;\n\nexport function UIIcon(props: UIIconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n\n let {styleProps} = useStyleProps(otherProps);\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n scale,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n {\n [`spectrum-UIIcon-${children.type['displayName']}`]: children.type['displayName']\n },\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nexport interface IllustrationProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Illustration.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * A slot to place the illustration in.\n * @default 'illustration'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type IllustrationPropsWithoutChildren = Omit;\n\n/**\n * Wrapper component for illustrations. Use this to wrap your svg element for a custom illustration.\n */\nexport function Illustration(props: IllustrationProps) {\n props = useSlotProps(props, 'illustration');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n\n let hasLabel = ariaLabel || ariaLabelledby;\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n role: hasLabel ? 'img' : undefined\n });\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CrossSmall;\n\nvar _CrossSmall = require(\"@adobe/react-spectrum-ui/dist/CrossSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CrossSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CrossSmall.CrossSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CrossSmall = CrossSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CrossSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z\"\n }));\n}\n\nCrossSmall.displayName = 'CrossSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ToggleProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface ToggleState {\n /** Whether the toggle is selected. */\n readonly isSelected: boolean,\n\n /** Updates selection state. */\n setSelected(isSelected: boolean): void,\n\n /** Toggle the selection state. */\n toggle(): void\n}\n\n/**\n * Provides state management for toggle components like checkboxes and switches.\n */\nexport function useToggleState(props: ToggleProps = {}): ToggleState {\n let {isReadOnly} = props;\n\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, props.onChange);\n\n function updateSelected(value) {\n if (!isReadOnly) {\n setSelected(value);\n }\n }\n\n function toggleState() {\n if (!isReadOnly) {\n setSelected(!isSelected);\n }\n }\n\n return {\n isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n classNames,\n SlotProvider,\n useFocusableRef,\n useHasChild,\n useSlotProps,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType, ReactElement} from 'react';\nimport {SpectrumButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction Button(props: SpectrumButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'button');\n let {\n elementType: ElementType = 'button',\n children,\n variant,\n style = variant === 'accent' || variant === 'cta' ? 'fill' : 'outline',\n staticColor,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let hasLabel = useHasChild(`.${styles['spectrum-Button-label']}`, domRef);\n let hasIcon = useHasChild(`.${styles['spectrum-Icon']}`, domRef);\n\n if (variant === 'cta') {\n variant = 'accent';\n } else if (variant === 'overBackground') {\n variant = 'primary';\n staticColor = 'white';\n }\n\n return (\n \n \n \n {typeof children === 'string'\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * Buttons allow users to perform an action or to navigate to another page.\n * They have multiple styles for various needs, and are ideal for calling attention to\n * where a user needs to do something in order to move forward in a flow.\n */\nlet _Button = React.forwardRef(Button) as (props: SpectrumButtonProps & {ref?: FocusableRef}) => ReactElement;\nexport {_Button as Button};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport CornerTriangle from '@spectrum-icons/ui/CornerTriangle';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumActionButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction ActionButton(props: SpectrumActionButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'actionButton');\n let {\n isQuiet,\n isDisabled,\n staticColor,\n children,\n autoFocus,\n // @ts-ignore (private)\n holdAffordance,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n {holdAffordance &&\n \n }\n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ActionButtons allow users to perform an action.\n * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.\n */\nlet _ActionButton = React.forwardRef(ActionButton);\nexport {_ActionButton as ActionButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonProps} from '@react-types/button';\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface FieldButtonProps extends ButtonProps, DOMProps, StyleProps {\n isQuiet?: boolean,\n isActive?: boolean,\n validationState?: 'valid' | 'invalid',\n focusRingClass?: string\n}\n\n// @private\nfunction FieldButton(props: FieldButtonProps, ref: FocusableRef) {\n props = useSlotProps(props, 'button');\n let {\n isQuiet,\n isDisabled,\n validationState,\n children,\n autoFocus,\n isActive,\n focusRingClass,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref) as RefObject;\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _FieldButton = React.forwardRef(FieldButton);\nexport {_FieldButton as FieldButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumLogicButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction LogicButton(props: SpectrumLogicButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n variant,\n children,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n {children}\n \n \n );\n}\n\n/**\n * A LogicButton displays an operator within a boolean logic sequence.\n */\nlet _LogicButton = React.forwardRef(LogicButton);\nexport {_LogicButton as LogicButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonElementTypeProps, ButtonProps} from '@react-types/button';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport CrossSmall from '@spectrum-icons/ui/CrossSmall';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface ClearButtonProps extends ButtonProps, AriaButtonElementTypeProps, DOMProps, StyleProps {\n focusClassName?: string,\n variant?: 'overBackground',\n excludeFromTabOrder?: boolean,\n preventFocus?: boolean\n}\n\nfunction ClearButton(props: ClearButtonProps, ref: FocusableRef) {\n let {\n children = ,\n focusClassName,\n variant,\n autoFocus,\n isDisabled,\n preventFocus,\n elementType = preventFocus ? 'div' : 'button' as ElementType,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton({...props, elementType}, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n // For cases like the clear button in a search field, remove the tabIndex so\n // iOS 14 with VoiceOver doesn't focus the button and hide the keyboard when\n // moving the cursor over the clear button.\n if (preventFocus) {\n delete buttonProps.tabIndex;\n }\n\n let ElementType = elementType;\n return (\n \n \n {children}\n \n \n );\n}\n\nlet _ClearButton = React.forwardRef(ClearButton);\nexport {_ClearButton as ClearButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumToggleButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleButton} from '@react-aria/button';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction ToggleButton(props: SpectrumToggleButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n isQuiet,\n isDisabled,\n isEmphasized,\n staticColor,\n children,\n autoFocus,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let state = useToggleState(props);\n let {buttonProps, isPressed} = useToggleButton(props, state, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ToggleButtons allow users to toggle a selection on or off, for example\n * switching between two states or modes.\n */\nlet _ToggleButton = React.forwardRef(ToggleButton);\nexport {_ToggleButton as ToggleButton};\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\nimport {Transition} from 'react-transition-group';\n\nconst OPEN_STATES = {\n entering: false,\n entered: true\n};\n\n/**\n * Timeout issues adding css animations to enter may be related to\n * https://github.com/reactjs/react-transition-group/issues/189 or\n * https://github.com/reactjs/react-transition-group/issues/22\n * my VM isn't good enough to debug accurately and get a better answer.\n *\n * As a result, use enter 0 so that is-open is applied once entered\n * it doesn't matter if we know when the css-animation is done on entering\n * for exiting though, give time for the css-animation to play\n * before removing from the DOM\n * **note** hitting esc bypasses exit animation for anyone testing.\n */\n\nexport function OpenTransition(props) {\n // Do not apply any transition if in chromatic.\n if (process.env.CHROMATIC) {\n return React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: props.in}));\n }\n\n return (\n \n {(state) => React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: !!OPEN_STATES[state]}))}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {OpenTransition} from './OpenTransition';\nimport {OverlayProps} from '@react-types/overlays';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useCallback, useState} from 'react';\nimport {Overlay as ReactAriaOverlay} from '@react-aria/overlays';\n\nfunction Overlay(props: OverlayProps, ref: DOMRef) {\n let {children, isOpen, container, onEnter, onEntering, onEntered, onExit, onExiting, onExited} = props;\n let [exited, setExited] = useState(!isOpen);\n\n let handleEntered = useCallback(() => {\n setExited(false);\n if (onEntered) {\n onEntered();\n }\n }, [onEntered]);\n\n let handleExited = useCallback(() => {\n setExited(true);\n if (onExited) {\n onExited();\n }\n }, [onExited]);\n\n // Don't un-render the overlay while it's transitioning out.\n let mountOverlay = isOpen || !exited;\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _Overlay = React.forwardRef(Overlay);\nexport {_Overlay as Overlay};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum-Popover {\n /* This makes the contents of popovers focusable immediately, without waiting\n a frame for animations to start. */\n &.react-spectrum-Popover {\n visibility: visible;\n }\n\n .spectrum-Dialog-content {\n max-height: initial;\n }\n}\n\n.spectrum-Modal-wrapper.react-spectrum-Modal-wrapper,\n.spectrum-Modal.react-spectrum-Modal {\n visibility: visible;\n}\n\n.spectrum-Tray.react-spectrum-Tray {\n visibility: visible;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport React from 'react';\nimport underlayStyles from '@adobe/spectrum-css-temp/components/underlay/vars.css';\n\ninterface UnderlayProps {\n isOpen?: boolean,\n isTransparent?: boolean\n}\n\nexport function Underlay({isOpen, isTransparent}: UnderlayProps) {\n return (\n
\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaPopoverProps, DismissButton, usePopover} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject, useRef, useState} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/popover/vars.css';\nimport {Underlay} from './Underlay';\nimport {useLayoutEffect} from '@react-aria/utils';\n\ninterface PopoverProps extends Omit, StyleProps {\n children: ReactNode,\n hideArrow?: boolean,\n state: OverlayTriggerState\n}\n\ninterface PopoverWrapperProps extends PopoverProps {\n isOpen?: boolean\n}\n\n/**\n * Arrow placement can be done pointing right or down because those paths start at 0, x or y. Because the\n * other two don't, they start at a fractional pixel value, it introduces rounding differences between browsers and\n * between display types (retina with subpixels vs not retina). By flipping them with CSS we can ensure that\n * the path always starts at 0 so that it perfectly overlaps the popover's border.\n * See bottom of file for more explanation.\n */\nlet arrowPlacement = {\n left: 'right',\n right: 'right',\n top: 'bottom',\n bottom: 'bottom'\n};\n\nfunction Popover(props: PopoverProps, ref: DOMRef) {\n let {\n children,\n state,\n ...otherProps\n } = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nconst PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject) => {\n let {\n children,\n isOpen,\n hideArrow,\n isNonModal,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {popoverProps, arrowProps, underlayProps, placement} = usePopover({\n ...props,\n popoverRef: ref,\n maxHeight: null\n }, state);\n\n return (\n <>\n {!isNonModal && }\n \n {!isNonModal && }\n {children}\n {hideArrow ? null : (\n \n )}\n \n
\n \n );\n});\n\nlet ROOT_2 = Math.sqrt(2);\n\nfunction Arrow(props) {\n let [size, setSize] = useState(20);\n let [borderWidth, setBorderWidth] = useState(1);\n let ref = useRef();\n // get the css value for the tip size and divide it by 2 for this arrow implementation\n useLayoutEffect(() => {\n if (ref.current) {\n let spectrumTipWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-size');\n if (spectrumTipWidth !== '') {\n setSize(parseInt(spectrumTipWidth, 10) / 2);\n }\n\n let spectrumBorderWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-borderWidth');\n if (spectrumBorderWidth !== '') {\n setBorderWidth(parseInt(spectrumBorderWidth, 10));\n }\n }\n }, [ref]);\n\n let landscape = props.direction === 'top' || props.direction === 'bottom';\n let mirror = props.direction === 'left' || props.direction === 'top';\n\n let borderDiagonal = borderWidth * ROOT_2;\n let halfBorderDiagonal = borderDiagonal / 2;\n\n let secondary = 2 * size + 2 * borderDiagonal;\n let primary = size + borderDiagonal;\n\n let primaryStart = mirror ? primary : 0;\n let primaryEnd = mirror ? halfBorderDiagonal : primary - halfBorderDiagonal;\n\n let secondaryStart = halfBorderDiagonal;\n let secondaryMiddle = secondary / 2;\n let secondaryEnd = secondary - halfBorderDiagonal;\n\n let pathData = landscape ? [\n 'M', secondaryStart, primaryStart,\n 'L', secondaryMiddle, primaryEnd,\n 'L', secondaryEnd, primaryStart\n ] : [\n 'M', primaryStart, secondaryStart,\n 'L', primaryEnd, secondaryMiddle,\n 'L', primaryStart, secondaryEnd\n ];\n let arrowProps = props.arrowProps;\n\n /* use ceil because the svg needs to always accomodate the path inside it */\n return (\n \n \n \n );\n}\n\nlet _Popover = forwardRef(Popover);\nexport {_Popover as Popover};\n\n/**\n * More explanation on popover tips.\n * - I tried changing the calculation of the popover placement in an effort to get it squarely onto the pixel grid.\n * This did not work because the problem was in the svg partial pixel end of the path in the popover right and popover bottom.\n * - I tried creating an extra 'bandaid' path that matched the background color and would overlap the popover border.\n * This didn't work because the border on the svg triangle didn't extend all the way to match nicely with the popover border.\n * - I tried getting the client bounding box and setting the svg to that partial pixel value\n * This didn't work because again the issue was inside the svg\n * - I didn't try drawing the svg backwards\n * This could still be tried\n * - I tried changing the calculation of the popover placement AND the svg height/width so that they were all rounded\n * This seems to have done the trick.\n */\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport modalStyles from '@adobe/spectrum-css-temp/components/modal/vars.css';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface ModalProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover'\n}\n\ninterface ModalWrapperProps extends ModalProps {\n isOpen?: boolean\n}\n\nfunction Modal(props: ModalProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet typeMap = {\n fullscreen: 'fullscreen',\n fullscreenTakeover: 'fullscreenTakeover'\n};\n\nlet ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: RefObject) {\n let {type, children, state, isOpen} = props;\n let typeVariant = typeMap[type];\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay(props, state, ref);\n\n let wrapperClassName = classNames(\n modalStyles,\n 'spectrum-Modal-wrapper',\n classNames(\n overrideStyles,\n 'spectrum-Modal-wrapper',\n 'react-spectrum-Modal-wrapper'\n )\n );\n\n let modalClassName = classNames(\n modalStyles,\n 'spectrum-Modal',\n {\n 'is-open': isOpen\n },\n classNames(\n overrideStyles,\n 'spectrum-Modal',\n 'react-spectrum-Modal'\n ),\n {[`spectrum-Modal--${typeVariant}`]: typeVariant},\n styleProps.className\n );\n\n let viewport = useViewportSize();\n let style: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n return (\n <>\n \n
\n \n {children}\n
\n
\n \n );\n});\n\nlet _Modal = forwardRef(Modal);\nexport {_Modal as Modal};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, DismissButton, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport trayStyles from '@adobe/spectrum-css-temp/components/tray/vars.css';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface TrayProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n isFixedHeight?: boolean\n}\n\ninterface TrayWrapperProps extends TrayProps {\n isOpen?: boolean\n}\n\nfunction Tray(props: TrayProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject) {\n let {\n children,\n isOpen,\n isFixedHeight,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay({\n ...props,\n isDismissable: true\n }, state, ref);\n\n // We need to measure the window's height in JS rather than using percentages in CSS\n // so that contents (e.g. menu) can inherit the max-height properly. Using percentages\n // does not work properly because there is nothing to base the percentage on.\n // We cannot use vh units because mobile browsers adjust the window height dynamically\n // when the address bar/bottom toolbars show and hide on scroll and vh units are fixed.\n // Also, the visual viewport is smaller than the layout viewport when the virtual keyboard\n // is up, so use the VisualViewport API to ensure the tray is displayed above the keyboard.\n let viewport = useViewportSize();\n let wrapperStyle: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n let wrapperClassName = classNames(\n trayStyles,\n 'spectrum-Tray-wrapper'\n );\n\n let className = classNames(\n trayStyles,\n 'spectrum-Tray',\n {\n 'is-open': isOpen,\n 'spectrum-Tray--fixedHeight': isFixedHeight\n },\n classNames(\n overrideStyles,\n 'spectrum-Tray',\n 'react-spectrum-Tray'\n ),\n styleProps.className\n );\n\n return (\n <>\n \n
\n \n \n {children}\n \n
\n
\n \n );\n});\n\nlet _Tray = forwardRef(Tray);\nexport {_Tray as Tray};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAppleDevice} from '@react-aria/utils';\nimport {isMac} from '@react-aria/utils';\n\ninterface Event {\n altKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean\n}\n\nexport function isNonContiguousSelectionModifier(e: Event) {\n // Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.\n // On Windows and Ubuntu, Alt + Space has a system wide meaning.\n return isAppleDevice() ? e.altKey : e.ctrlKey;\n}\n\nexport function isCtrlKeyPressed(e: Event) {\n if (isMac()) {\n return e.metaKey;\n }\n\n return e.ctrlKey;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, FocusStrategy, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, Key, KeyboardEvent, RefObject, useEffect, useRef} from 'react';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {focusWithoutScrolling, mergeProps, scrollIntoView, useEvent} from '@react-aria/utils';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useLocale} from '@react-aria/i18n';\nimport {useTypeSelect} from './useTypeSelect';\n\nexport interface AriaSelectableCollectionOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A delegate object that implements behavior for keyboard focus movement.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * The ref attached to the element representing the collection.\n */\n ref: RefObject,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether the collection allows the user to select all items via keyboard shortcut.\n * @default false\n */\n disallowSelectAll?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean,\n /**\n * Whether the collection items are contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * The ref attached to the scrollable body. Used to provide automatic scrolling on item focus for non-virtualized collections.\n * If not provided, defaults to the collection ref.\n */\n scrollRef?: RefObject\n}\n\nexport interface SelectableCollectionAria {\n /** Props for the collection element. */\n collectionProps: DOMAttributes\n}\n\n/**\n * Handles interactions with selectable collections.\n */\nexport function useSelectableCollection(options: AriaSelectableCollectionOptions): SelectableCollectionAria {\n let {\n selectionManager: manager,\n keyboardDelegate: delegate,\n ref,\n autoFocus = false,\n shouldFocusWrap = false,\n disallowEmptySelection = false,\n disallowSelectAll = false,\n selectOnFocus = manager.selectionBehavior === 'replace',\n disallowTypeAhead = false,\n shouldUseVirtualFocus,\n allowsTabNavigation = false,\n isVirtualized,\n // If no scrollRef is provided, assume the collection ref is the scrollable region\n scrollRef = ref\n } = options;\n let {direction} = useLocale();\n\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Prevent option + tab from doing anything since it doesn't move focus to the cells, only buttons/checkboxes\n if (e.altKey && e.key === 'Tab') {\n e.preventDefault();\n }\n\n // Keyboard events bubble through portals. Don't handle keyboard events\n // for elements outside the collection (e.g. menus).\n if (!ref.current.contains(e.target as Element)) {\n return;\n }\n\n const navigateToKey = (key: Key | undefined, childFocus?: FocusStrategy) => {\n if (key != null) {\n manager.setFocusedKey(key, childFocus);\n\n if (e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(key);\n } else if (selectOnFocus && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n }\n };\n\n switch (e.key) {\n case 'ArrowDown': {\n if (delegate.getKeyBelow) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyBelow(manager.focusedKey)\n : delegate.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getFirstKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowUp': {\n if (delegate.getKeyAbove) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyAbove(manager.focusedKey)\n : delegate.getLastKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getLastKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowLeft': {\n if (delegate.getKeyLeftOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyLeftOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'first' : 'last');\n }\n break;\n }\n case 'ArrowRight': {\n if (delegate.getKeyRightOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyRightOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'last' : 'first');\n }\n break;\n }\n case 'Home':\n if (delegate.getFirstKey) {\n e.preventDefault();\n let firstKey = delegate.getFirstKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(firstKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(firstKey);\n }\n }\n break;\n case 'End':\n if (delegate.getLastKey) {\n e.preventDefault();\n let lastKey = delegate.getLastKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(lastKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(lastKey);\n }\n }\n break;\n case 'PageDown':\n if (delegate.getKeyPageBelow) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageBelow(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'PageUp':\n if (delegate.getKeyPageAbove) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageAbove(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'a':\n if (isCtrlKeyPressed(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case 'Escape':\n e.preventDefault();\n if (!disallowEmptySelection) {\n manager.clearSelection();\n }\n break;\n case 'Tab': {\n if (!allowsTabNavigation) {\n // There may be elements that are \"tabbable\" inside a collection (e.g. in a grid cell).\n // However, collections should be treated as a single tab stop, with arrow key navigation internally.\n // We don't control the rendering of these, so we can't override the tabIndex to prevent tabbing.\n // Instead, we handle the Tab key, and move focus manually to the first/last tabbable element\n // in the collection, so that the browser default behavior will apply starting from that element\n // rather than the currently focused one.\n if (e.shiftKey) {\n ref.current.focus();\n } else {\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n\n if (next && !next.contains(document.activeElement)) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n\n // Store the scroll position so we can restore it later.\n let scrollPos = useRef({top: 0, left: 0});\n useEvent(scrollRef, 'scroll', isVirtualized ? null : () => {\n scrollPos.current = {\n top: scrollRef.current.scrollTop,\n left: scrollRef.current.scrollLeft\n };\n });\n\n let onFocus = (e: FocusEvent) => {\n if (manager.isFocused) {\n // If a focus event bubbled through a portal, reset focus state.\n if (!e.currentTarget.contains(e.target)) {\n manager.setFocused(false);\n }\n\n return;\n }\n\n // Focus events can bubble through portals. Ignore these events.\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n manager.setFocused(true);\n\n if (manager.focusedKey == null) {\n let navigateToFirstKey = (key: Key | undefined) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (selectOnFocus) {\n manager.replaceSelection(key);\n }\n }\n };\n // If the user hasn't yet interacted with the collection, there will be no focusedKey set.\n // Attempt to detect whether the user is tabbing forward or backward into the collection\n // and either focus the first or last item accordingly.\n let relatedTarget = e.relatedTarget as Element;\n if (relatedTarget && (e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING)) {\n navigateToFirstKey(manager.lastSelectedKey ?? delegate.getLastKey());\n } else {\n navigateToFirstKey(manager.firstSelectedKey ?? delegate.getFirstKey());\n }\n } else if (!isVirtualized) {\n // Restore the scroll position to what it was before.\n scrollRef.current.scrollTop = scrollPos.current.top;\n scrollRef.current.scrollLeft = scrollPos.current.left;\n\n // Refocus and scroll the focused item into view if it exists within the scrollable region.\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n // This prevents a flash of focus on the first/last element in the collection\n focusWithoutScrolling(element);\n scrollIntoView(scrollRef.current, element);\n }\n }\n };\n\n let onBlur = (e) => {\n // Don't set blurred and then focused again if moving focus within the collection.\n if (!e.currentTarget.contains(e.relatedTarget as HTMLElement)) {\n manager.setFocused(false);\n }\n };\n\n const autoFocusRef = useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n let focusedKey = null;\n\n // Check focus strategy to determine which item to focus\n if (autoFocus === 'first') {\n focusedKey = delegate.getFirstKey();\n } if (autoFocus === 'last') {\n focusedKey = delegate.getLastKey();\n }\n\n // If there are any selected keys, make the first one the new focus target\n let selectedKeys = manager.selectedKeys;\n if (selectedKeys.size) {\n focusedKey = selectedKeys.values().next().value;\n }\n\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n\n // If no default focus key is selected, focus the collection itself.\n if (focusedKey == null && !shouldUseVirtualFocus) {\n focusSafely(ref.current);\n }\n }\n autoFocusRef.current = false;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // If not virtualized, scroll the focused element into view when the focusedKey changes.\n // When virtualized, Virtualizer handles this internally.\n useEffect(() => {\n if (!isVirtualized && manager.focusedKey && scrollRef?.current) {\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n scrollIntoView(scrollRef.current, element);\n }\n }\n }, [isVirtualized, scrollRef, manager.focusedKey]);\n\n let handlers = {\n onKeyDown,\n onFocus,\n onBlur,\n onMouseDown(e) {\n // Ignore events that bubbled through portals.\n if (scrollRef.current === e.target) {\n // Prevent focus going to the collection when clicking on the scrollbar.\n e.preventDefault();\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: manager\n });\n\n if (!disallowTypeAhead) {\n handlers = mergeProps(typeSelectProps, handlers);\n }\n\n // If nothing is focused within the collection, make the collection itself tabbable.\n // This will be marshalled to either the first or last item depending on where focus came from.\n // If using virtual focus, don't set a tabIndex at all so that VoiceOver on iOS 14 doesn't try\n // to move real DOM focus to the element anyway.\n let tabIndex: number;\n if (!shouldUseVirtualFocus) {\n tabIndex = manager.focusedKey == null ? 0 : -1;\n }\n\n return {\n collectionProps: {\n ...handlers,\n tabIndex\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {Key, KeyboardEvent, useRef} from 'react';\nimport {MultipleSelectionManager} from '@react-stately/selection';\n\n/**\n * Controls how long to wait before clearing the typeahead buffer.\n */\nconst TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000; // 1 second\n\nexport interface AriaTypeSelectOptions {\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * Called when an item is focused by typing.\n */\n onTypeSelect?: (key: Key) => void\n}\n\nexport interface TypeSelectAria {\n /**\n * Props to be spread on the owner of the options.\n */\n typeSelectProps: DOMAttributes\n}\n\n/**\n * Handles typeahead interactions with collections.\n */\nexport function useTypeSelect(options: AriaTypeSelectOptions): TypeSelectAria {\n let {keyboardDelegate, selectionManager, onTypeSelect} = options;\n let state = useRef({\n search: '',\n timeout: null\n }).current;\n\n let onKeyDown = (e: KeyboardEvent) => {\n let character = getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey) {\n return;\n }\n\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character === ' ' && state.search.trim().length > 0) {\n e.preventDefault();\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n }\n\n state.search += character;\n\n // Use the delegate to find a key to focus.\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);\n\n // If no key found, search from the top.\n if (key == null) {\n key = keyboardDelegate.getKeyForSearch(state.search);\n }\n\n if (key != null) {\n selectionManager.setFocusedKey(key);\n if (onTypeSelect) {\n onTypeSelect(key);\n }\n }\n\n clearTimeout(state.timeout);\n state.timeout = setTimeout(() => {\n state.search = '';\n }, TYPEAHEAD_DEBOUNCE_WAIT_MS);\n };\n\n return {\n typeSelectProps: {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : null\n }\n };\n}\n\nfunction getStringForKey(key: string) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n\n return '';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, LongPressEvent, PressEvent} from '@react-types/shared';\nimport {focusSafely} from '@react-aria/focus';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {Key, RefObject, useEffect, useRef} from 'react';\nimport {mergeProps} from '@react-aria/utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {PressProps, useLongPress, usePress} from '@react-aria/interactions';\n\nexport interface SelectableItemOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A unique key for the item.\n */\n key: Key,\n /**\n * Ref to the item.\n */\n ref: RefObject,\n /**\n * By default, selection occurs on pointer down. This can be strange if selecting an\n * item causes the UI to disappear immediately (e.g. menus).\n */\n shouldSelectOnPressUp?: boolean,\n /**\n * Whether selection requires the pointer/mouse down and up events to occur on the same target or triggers selection on\n * the target of the pointer/mouse up event.\n */\n allowsDifferentPressOrigin?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Function to focus the item.\n */\n focus?: () => void,\n /**\n * Whether the option should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /** Whether the item is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void\n}\n\nexport interface SelectableItemStates {\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /**\n * Whether the item is non-interactive, i.e. both selection and actions are disabled and the item may\n * not be focused. Dependent on `disabledKeys` and `disabledBehavior`.\n */\n isDisabled: boolean,\n /**\n * Whether the item may be selected, dependent on `selectionMode`, `disabledKeys`, and `disabledBehavior`.\n */\n allowsSelection: boolean,\n /**\n * Whether the item has an action, dependent on `onAction`, `disabledKeys`,\n * and `disabledBehavior`. It may also change depending on the current selection state\n * of the list (e.g. when selection is primary). This can be used to enable or disable hover\n * styles or other visual indications of interactivity.\n */\n hasAction: boolean\n}\n\nexport interface SelectableItemAria extends SelectableItemStates {\n /**\n * Props to be spread on the item root node.\n */\n itemProps: DOMAttributes\n}\n\n/**\n * Handles interactions with an item in a selectable collection.\n */\nexport function useSelectableItem(options: SelectableItemOptions): SelectableItemAria {\n let {\n selectionManager: manager,\n key,\n ref,\n shouldSelectOnPressUp,\n isVirtualized,\n shouldUseVirtualFocus,\n focus,\n isDisabled,\n onAction,\n allowsDifferentPressOrigin\n } = options;\n\n let onSelect = (e: PressEvent | LongPressEvent | PointerEvent) => {\n if (e.pointerType === 'keyboard' && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(key);\n } else {\n if (manager.selectionMode === 'none') {\n return;\n }\n\n if (manager.selectionMode === 'single') {\n if (manager.isSelected(key) && !manager.disallowEmptySelection) {\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n } else if (e && e.shiftKey) {\n manager.extendSelection(key);\n } else if (manager.selectionBehavior === 'toggle' || (e && (isCtrlKeyPressed(e) || e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n }\n };\n\n // Focus the associated DOM node when this item becomes the focusedKey\n useEffect(() => {\n let isFocused = key === manager.focusedKey;\n if (isFocused && manager.isFocused && !shouldUseVirtualFocus && document.activeElement !== ref.current) {\n if (focus) {\n focus();\n } else {\n focusSafely(ref.current);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, key, manager.focusedKey, manager.childFocusStrategy, manager.isFocused, shouldUseVirtualFocus]);\n\n isDisabled = isDisabled || manager.isDisabled(key);\n // Set tabIndex to 0 if the element is focused, or -1 otherwise so that only the last focused\n // item is tabbable. If using virtual focus, don't set a tabIndex at all so that VoiceOver\n // on iOS 14 doesn't try to move real DOM focus to the item anyway.\n let itemProps: SelectableItemAria['itemProps'] = {};\n if (!shouldUseVirtualFocus && !isDisabled) {\n itemProps = {\n tabIndex: key === manager.focusedKey ? 0 : -1,\n onFocus(e) {\n if (e.target === ref.current) {\n manager.setFocusedKey(key);\n }\n }\n };\n } else if (isDisabled) {\n itemProps.onMouseDown = (e) => {\n // Prevent focus going to the body when clicking on a disabled item.\n e.preventDefault();\n };\n }\n\n // With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click of the row.\n // Clicking the checkbox enters selection mode, after which clicking anywhere on any row toggles selection for that row.\n // With highlight selection, onAction is secondary, and occurs on double click. Single click selects the row.\n // With touch, onAction occurs on single tap, and long press enters selection mode.\n let allowsSelection = !isDisabled && manager.canSelectItem(key);\n let allowsActions = onAction && !isDisabled;\n let hasPrimaryAction = allowsActions && (\n manager.selectionBehavior === 'replace'\n ? !allowsSelection\n : manager.isEmpty\n );\n let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === 'replace';\n let hasAction = hasPrimaryAction || hasSecondaryAction;\n let modality = useRef(null);\n\n let longPressEnabled = hasAction && allowsSelection;\n let longPressEnabledOnPressStart = useRef(false);\n let hadPrimaryActionOnPressStart = useRef(false);\n\n // By default, selection occurs on pointer down. This can be strange if selecting an\n // item causes the UI to disappear immediately (e.g. menus).\n // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.\n // onPress requires a pointer down event on the same element as pointer up. For menus,\n // we want to be able to have the pointer down on the trigger that opens the menu and\n // the pointer up on the menu item rather than requiring a separate press.\n // For keyboard events, selection still occurs on key down.\n let itemPressProps: PressProps = {};\n if (shouldSelectOnPressUp) {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n if (e.pointerType === 'keyboard' && (!hasAction || isSelectionKey())) {\n onSelect(e);\n }\n };\n\n // If allowsDifferentPressOrigin, make selection happen on pressUp (e.g. open menu on press down, selection on menu item happens on press up.)\n // Otherwise, have selection happen onPress (prevents listview row selection when clicking on interactable elements in the row)\n if (!allowsDifferentPressOrigin) {\n itemPressProps.onPress = (e) => {\n if (hasPrimaryAction || (hasSecondaryAction && e.pointerType !== 'mouse')) {\n if (e.pointerType === 'keyboard' && !isActionKey()) {\n return;\n }\n\n onAction();\n } else if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n } else {\n itemPressProps.onPressUp = (e) => {\n if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = hasPrimaryAction ? () => onAction() : null;\n }\n } else {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n hadPrimaryActionOnPressStart.current = hasPrimaryAction;\n\n // Select on mouse down unless there is a primary action which will occur on mouse up.\n // For keyboard, select on key down. If there is an action, the Space key selects on key down,\n // and the Enter key performs onAction on key up.\n if (\n (e.pointerType === 'mouse' && !hasPrimaryAction) ||\n (e.pointerType === 'keyboard' && (!onAction || isSelectionKey()))\n ) {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = (e) => {\n // Selection occurs on touch up. Primary actions always occur on pointer up.\n // Both primary and secondary actions occur on Enter key up. The only exception\n // is secondary actions, which occur on double click with a mouse.\n if (\n e.pointerType === 'touch' ||\n e.pointerType === 'pen' ||\n e.pointerType === 'virtual' ||\n (e.pointerType === 'keyboard' && hasAction && isActionKey()) ||\n (e.pointerType === 'mouse' && hadPrimaryActionOnPressStart.current)\n ) {\n if (hasAction) {\n onAction();\n } else {\n onSelect(e);\n }\n }\n };\n }\n\n if (!isVirtualized) {\n itemProps['data-key'] = key;\n }\n\n itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;\n let {pressProps, isPressed} = usePress(itemPressProps);\n\n // Double clicking with a mouse with selectionBehavior = 'replace' performs an action.\n let onDoubleClick = hasSecondaryAction ? (e) => {\n if (modality.current === 'mouse') {\n e.stopPropagation();\n e.preventDefault();\n onAction();\n }\n } : undefined;\n\n // Long pressing an item with touch when selectionBehavior = 'replace' switches the selection behavior\n // to 'toggle'. This changes the single tap behavior from performing an action (i.e. navigating) to\n // selecting, and may toggle the appearance of a UI affordance like checkboxes on each item.\n let {longPressProps} = useLongPress({\n isDisabled: !longPressEnabled,\n onLongPress(e) {\n if (e.pointerType === 'touch') {\n onSelect(e);\n manager.setSelectionBehavior('toggle');\n }\n }\n });\n\n // Prevent native drag and drop on long press if we also select on long press.\n // Once the user is in selection mode, they can long press again to drag.\n // Use a capturing listener to ensure this runs before useDrag, regardless of\n // the order the props get merged.\n let onDragStartCapture = e => {\n if (modality.current === 'touch' && longPressEnabledOnPressStart.current) {\n e.preventDefault();\n }\n };\n\n return {\n itemProps: mergeProps(\n itemProps,\n allowsSelection || hasPrimaryAction ? pressProps : {},\n longPressEnabled ? longPressProps : {},\n {onDoubleClick, onDragStartCapture}\n ),\n isPressed,\n isSelected: manager.isSelected(key),\n isDisabled,\n allowsSelection,\n hasAction\n };\n}\n\nfunction isActionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === 'Enter';\n}\n\nfunction isSelectionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === ' ' || event?.code === 'Space';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject} from 'react';\n\nexport class ListKeyboardDelegate implements KeyboardDelegate {\n private collection: Collection>;\n private disabledKeys: Set;\n private ref: RefObject;\n private collator: Intl.Collator;\n\n constructor(collection: Collection>, disabledKeys: Set, ref: RefObject, collator?: Intl.Collator) {\n this.collection = collection;\n this.disabledKeys = disabledKeys;\n this.ref = ref;\n this.collator = collator;\n }\n\n getKeyBelow(key: Key) {\n key = this.collection.getKeyAfter(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getKeyAbove(key: Key) {\n key = this.collection.getKeyBefore(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n getFirstKey() {\n let key = this.collection.getFirstKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let key = this.collection.getLastKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n private getItem(key: Key): HTMLElement {\n return this.ref.current.querySelector(`[data-key=\"${key}\"]`);\n }\n\n getKeyPageAbove(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);\n\n while (item && item.offsetTop > pageY) {\n key = this.getKeyAbove(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyPageBelow(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);\n\n while (item && item.offsetTop < pageY) {\n key = this.getKeyBelow(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DOMAttributes, FocusStrategy, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate} from './ListKeyboardDelegate';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useCollator} from '@react-aria/i18n';\nimport {useSelectableCollection} from './useSelectableCollection';\n\nexport interface AriaSelectableListOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * State of the collection.\n */\n collection: Collection>,\n /**\n * The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with.\n */\n disabledKeys: Set,\n /**\n * A ref to the item.\n */\n ref?: RefObject,\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean\n}\n\nexport interface SelectableListAria {\n /**\n * Props for the option element.\n */\n listProps: DOMAttributes\n}\n\n/**\n * Handles interactions with a selectable list.\n */\nexport function useSelectableList(props: AriaSelectableListOptions): SelectableListAria {\n let {\n selectionManager,\n collection,\n disabledKeys,\n ref,\n keyboardDelegate,\n autoFocus,\n shouldFocusWrap,\n isVirtualized,\n disallowEmptySelection,\n selectOnFocus = selectionManager.selectionBehavior === 'replace',\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let disabledBehavior = selectionManager.disabledBehavior;\n let delegate = useMemo(() => (\n keyboardDelegate || new ListKeyboardDelegate(collection, disabledBehavior === 'selection' ? new Set() : disabledKeys, ref, collator)\n ), [keyboardDelegate, collection, disabledKeys, ref, collator, disabledBehavior]);\n\n let {collectionProps} = useSelectableCollection({\n ref,\n selectionManager,\n keyboardDelegate: delegate,\n autoFocus,\n shouldFocusWrap,\n disallowEmptySelection,\n selectOnFocus,\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation,\n isVirtualized,\n scrollRef: ref\n });\n\n return {\n listProps: collectionProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ItemElement, ItemProps} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\n\nfunction Item(props: ItemProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nItem.getCollectionNode = function* getCollectionNode(props: ItemProps, context: any): Generator> {\n let {childItems, title, children} = props;\n\n let rendered = props.title || props.children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'] || '';\n\n // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.\n if (!textValue && !context?.suppressTextValueWarning) {\n console.warn(' with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.');\n }\n\n yield {\n type: 'item',\n props: props,\n rendered,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: hasChildItems(props),\n *childNodes() {\n if (childItems) {\n for (let child of childItems) {\n yield {\n type: 'item',\n value: child\n };\n }\n } else if (title) {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child as ItemElement\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\nfunction hasChildItems(props: ItemProps) {\n if (props.hasChildItems != null) {\n return props.hasChildItems;\n }\n\n if (props.childItems) {\n return true;\n }\n\n if (props.title && React.Children.count(props.children) > 0) {\n return true;\n }\n\n return false;\n}\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Item = Item as (props: ItemProps) => JSX.Element;\nexport {_Item as Item};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\nimport {SectionProps} from '@react-types/shared';\n\nfunction Section(props: SectionProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nSection.getCollectionNode = function* getCollectionNode(props: SectionProps): Generator> {\n let {children, title, items} = props;\n yield {\n type: 'section',\n props: props,\n hasChildNodes: true,\n rendered: title,\n 'aria-label': props['aria-label'],\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n \n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Section = Section as (props: SectionProps) => JSX.Element;\nexport {_Section as Section};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, CollectionElement, Node} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {Key, ReactElement} from 'react';\n\ninterface CollectionBuilderState {\n renderer?: (value: any) => ReactElement\n}\n\nexport class CollectionBuilder {\n private context?: unknown;\n private cache: WeakMap> = new WeakMap();\n\n build(props: CollectionBase, context?: unknown) {\n this.context = context;\n return iterable(() => this.iterateCollection(props));\n }\n\n private *iterateCollection(props: CollectionBase) {\n let {children, items} = props;\n\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of props.items) {\n yield* this.getFullNode({\n value: item\n }, {renderer: children});\n }\n } else {\n let items: CollectionElement[] = [];\n React.Children.forEach(children, child => {\n items.push(child);\n });\n\n let index = 0;\n for (let item of items) {\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n }\n }\n\n private getKey(item: CollectionElement, partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key): Key {\n if (item.key != null) {\n return item.key;\n }\n\n if (partialNode.type === 'cell' && partialNode.key != null) {\n return `${parentKey}${partialNode.key}`;\n }\n\n let v = partialNode.value as any;\n if (v != null) {\n let key = v.key ?? v.id;\n if (key == null) {\n throw new Error('No key found for item');\n }\n\n return key;\n }\n\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n\n private getChildState(state: CollectionBuilderState, partialNode: PartialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n\n private *getFullNode(partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key, parentNode?: Node): Generator> {\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n\n element = state.renderer(partialNode.value);\n }\n\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if (React.isValidElement(element)) {\n let type = element.type as any;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = typeof element.type === 'function' ? element.type.name : element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n\n let childNodes = type.getCollectionNode(element.props, this.context) as Generator, void, Node[]>;\n let index = partialNode.index;\n let result = childNodes.next();\n while (!result.done && result.value) {\n let childNode = result.value;\n\n partialNode.index = index;\n\n let nodeKey = childNode.key;\n if (!nodeKey) {\n nodeKey = childNode.element ? null : this.getKey(element as CollectionElement, partialNode, state, parentKey);\n }\n\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index,\n wrapper: compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n\n let children = [...nodes];\n for (let node of children) {\n // Cache the node based on its value\n node.value = childNode.value || partialNode.value;\n if (node.value) {\n this.cache.set(node.value, node);\n }\n\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) {\n throw new Error(`Unsupported type <${capitalize(node.type)}> in <${capitalize(parentNode.type)}>. Only <${capitalize(partialNode.type)}> is supported.`);\n }\n\n index++;\n yield node;\n }\n\n result = childNodes.next(children);\n }\n\n return;\n }\n\n // Ignore invalid elements\n if (partialNode.key == null) {\n return;\n }\n\n // Create full node\n let builder = this;\n let node: Node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: partialNode.value,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: partialNode.textValue,\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes,\n childNodes: iterable(function *() {\n if (!partialNode.hasChildNodes) {\n return;\n }\n\n let index = 0;\n for (let child of partialNode.childNodes()) {\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) {\n // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n }\n\n child.index = index;\n let nodes = builder.getFullNode(child, builder.getChildState(state, child), node.key, node);\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n })\n };\n\n yield node;\n }\n}\n\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction iterable(iterator: () => IterableIterator>): Iterable> {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator]() {\n for (let item of cache) {\n yield item;\n }\n\n if (!iterable) {\n iterable = iterator();\n }\n\n for (let item of iterable) {\n cache.push(item);\n yield item;\n }\n }\n };\n}\n\ntype Wrapper = (element: ReactElement) => ReactElement;\nfunction compose(outer: Wrapper | void, inner: Wrapper | void): Wrapper {\n if (outer && inner) {\n return (element) => outer(inner(element));\n }\n\n if (outer) {\n return outer;\n }\n\n if (inner) {\n return inner;\n }\n}\n\nfunction capitalize(str: string) {\n return str[0].toUpperCase() + str.slice(1);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {CollectionBuilder} from './CollectionBuilder';\nimport {useMemo, useRef} from 'react';\n\ntype CollectionFactory>> = (node: Iterable>, prev: C | null) => C;\n\nexport function useCollection> = Collection>>(props: CollectionBase, factory: CollectionFactory, context?: unknown, invalidators: Array = []): C {\n let builder = useMemo(() => new CollectionBuilder(), []);\n\n let prev = useRef(null);\n return useMemo(() => {\n let nodes = builder.build(props, context);\n prev.current = factory(nodes, prev.current);\n return prev.current;\n // Don't invalidate when any prop changes, just the two we care about.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [builder, props.children, props.items, context, ...invalidators]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Node} from '@react-types/shared';\n\nconst cache = new WeakMap, number>();\n\nexport function getItemCount(collection: Iterable>): number {\n let count = cache.get(collection);\n if (count != null) {\n return count;\n }\n\n count = 0;\n for (let item of collection) {\n if (item.type === 'section') {\n count += getItemCount(item.childNodes);\n } else {\n count++;\n }\n }\n\n cache.set(collection, count);\n return count;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaMenuOptions} from './useMenu';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MenuTriggerState} from '@react-stately/menu';\nimport {MenuTriggerType} from '@react-types/menu';\nimport {RefObject} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useLongPress} from '@react-aria/interactions';\nimport {useOverlayTrigger} from '@react-aria/overlays';\n\nexport interface AriaMenuTriggerProps {\n /** The type of menu that the menu trigger opens. */\n type?: 'menu' | 'listbox',\n /** Whether menu trigger is disabled. */\n isDisabled?: boolean,\n /** How menu is triggered. */\n trigger?: MenuTriggerType\n}\n\nexport interface MenuTriggerAria {\n /** Props for the menu trigger element. */\n menuTriggerProps: AriaButtonProps,\n\n /** Props for the menu. */\n menuProps: AriaMenuOptions\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu trigger.\n * @param props - Props for the menu trigger.\n * @param state - State for the menu trigger.\n */\nexport function useMenuTrigger(props: AriaMenuTriggerProps, state: MenuTriggerState, ref: RefObject): MenuTriggerAria {\n let {\n type = 'menu' as AriaMenuTriggerProps['type'],\n isDisabled,\n trigger = 'press'\n } = props;\n\n let menuTriggerId = useId();\n let {triggerProps, overlayProps} = useOverlayTrigger({type}, state, ref);\n\n let onKeyDown = (e) => {\n if (isDisabled) {\n return;\n }\n\n if (trigger === 'longPress' && !e.altKey) {\n return;\n }\n\n if (ref && ref.current) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n if (trigger === 'longPress') {\n return;\n }\n // fallthrough\n case 'ArrowDown':\n // Stop propagation, unless it would already be handled by useKeyboard.\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('first');\n break;\n case 'ArrowUp':\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('last');\n break;\n }\n }\n };\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let {longPressProps} = useLongPress({\n isDisabled: isDisabled || trigger !== 'longPress',\n accessibilityDescription: stringFormatter.format('longPressMessage'),\n onLongPressStart() {\n state.close();\n },\n onLongPress() {\n state.open('first');\n }\n });\n\n let pressProps = {\n onPressStart(e) {\n // For consistency with native, open the menu on mouse/key down, but touch up.\n if (e.pointerType !== 'touch' && e.pointerType !== 'keyboard' && !isDisabled) {\n // If opened with a screen reader, auto focus the first item.\n // Otherwise, the menu itself will be focused.\n state.toggle(e.pointerType === 'virtual' ? 'first' : null);\n }\n },\n onPress(e) {\n if (e.pointerType === 'touch' && !isDisabled) {\n state.toggle();\n }\n }\n };\n\n // omit onPress from triggerProps since we override it above.\n delete triggerProps.onPress;\n\n return {\n menuTriggerProps: {\n ...triggerProps,\n ...(trigger === 'press' ? pressProps : longPressProps),\n id: menuTriggerId,\n onKeyDown\n },\n menuProps: {\n ...overlayProps,\n 'aria-labelledby': menuTriggerId,\n autoFocus: state.focusStrategy || true,\n onClose: state.close\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"longPressMessage\": \"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة\"\n}\n","{\n \"longPressMessage\": \"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто\"\n}\n","{\n \"longPressMessage\": \"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku\"\n}\n","{\n \"longPressMessage\": \"Langt tryk eller tryk på Alt + pil ned for at åbne menuen\"\n}\n","{\n \"longPressMessage\": \"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen\"\n}\n","{\n \"longPressMessage\": \"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού\"\n}\n","{\n \"longPressMessage\": \"Long press or press Alt + ArrowDown to open menu\"\n}\n","{\n \"longPressMessage\": \"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú\"\n}\n","{\n \"longPressMessage\": \"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool\"\n}\n","{\n \"longPressMessage\": \"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli\"\n}\n","{\n \"longPressMessage\": \"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.\"\n}\n","{\n \"longPressMessage\": \"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika\"\n}\n","{\n \"longPressMessage\": \"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához\"\n}\n","{\n \"longPressMessage\": \"Premere a lungo o premere Alt + Freccia giù per aprire il menu\"\n}\n","{\n \"longPressMessage\": \"長押しまたは Alt+下矢印キーでメニューを開く\"\n}\n","{\n \"longPressMessage\": \"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기\"\n}\n","{\n \"longPressMessage\": \"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.\"\n}\n","{\n \"longPressMessage\": \"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa\"\n}\n","{\n \"longPressMessage\": \"Langt trykk eller trykk Alt + PilNed for å åpne menyen\"\n}\n","{\n \"longPressMessage\": \"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen\"\n}\n","{\n \"longPressMessage\": \"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu\"\n}\n","{\n \"longPressMessage\": \"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul\"\n}\n","{\n \"longPressMessage\": \"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню\"\n}\n","{\n \"longPressMessage\": \"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol\"\n}\n","{\n \"longPressMessage\": \"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni\"\n}\n","{\n \"longPressMessage\": \"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn\"\n}\n","{\n \"longPressMessage\": \"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın\"\n}\n","{\n \"longPressMessage\": \"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню\"\n}\n","{\n \"longPressMessage\": \"长按或按 Alt + 向下方向键以打开菜单\"\n}\n","{\n \"longPressMessage\": \"長按或按 Alt+向下鍵以開啟功能表\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaMenuProps} from '@react-types/menu';\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface MenuAria {\n /** Props for the menu element. */\n menuProps: DOMAttributes\n}\n\nexport interface AriaMenuOptions extends Omit, 'children'> {\n /** Whether the menu uses virtual scrolling. */\n isVirtualized?: boolean,\n\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\ninterface MenuData {\n onClose?: () => void,\n onAction?: (key: Key) => void\n}\n\nexport const menuData = new WeakMap, MenuData>();\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n * @param props - Props for the menu.\n * @param state - State for the menu, as returned by `useListState`.\n */\nexport function useMenu(props: AriaMenuOptions, state: TreeState, ref: RefObject): MenuAria {\n let {\n shouldFocusWrap = true,\n ...otherProps\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {listProps} = useSelectableList({\n ...otherProps,\n ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n shouldFocusWrap\n });\n\n menuData.set(state, {\n onClose: props.onClose,\n onAction: props.onAction\n });\n\n return {\n menuProps: mergeProps(domProps, {\n role: 'menu',\n ...listProps\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, PressEvent} from '@react-types/shared';\nimport {getItemCount} from '@react-stately/collections';\nimport {isFocusVisible, useHover, usePress} from '@react-aria/interactions';\nimport {Key, RefObject} from 'react';\nimport {menuData} from './useMenu';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableItem} from '@react-aria/selection';\n\nexport interface MenuItemAria {\n /** Props for the menu item element. */\n menuItemProps: DOMAttributes,\n\n /** Props for the main text element inside the menu item. */\n labelProps: DOMAttributes,\n\n /** Props for the description text element inside the menu item, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the keyboard shortcut text element inside the item, if any. */\n keyboardShortcutProps: DOMAttributes,\n\n /** Whether the item is currently focused. */\n isFocused: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is disabled. */\n isDisabled: boolean\n}\n\nexport interface AriaMenuItemProps {\n /**\n * Whether the menu item is disabled.\n * @deprecated - pass disabledKeys to useTreeState instead.\n */\n isDisabled?: boolean,\n\n /**\n * Whether the menu item is selected.\n * @deprecated - pass selectedKeys to useTreeState instead.\n */\n isSelected?: boolean,\n\n /** A screen reader only label for the menu item. */\n 'aria-label'?: string,\n\n /** The unique key for the menu item. */\n key?: Key,\n\n /**\n * Handler that is called when the menu should close after selecting an item.\n * @deprecated - pass to the menu instead.\n */\n onClose?: () => void,\n\n /**\n * Whether the menu should close when the menu item is selected.\n * @default true\n */\n closeOnSelect?: boolean,\n\n /** Whether the menu item is contained in a virtual scrolling menu. */\n isVirtualized?: boolean,\n\n /**\n * Handler that is called when the user activates the item.\n * @deprecated - pass to the menu instead.\n */\n onAction?: (key: Key) => void\n}\n\n/**\n * Provides the behavior and accessibility implementation for an item in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the item.\n * @param state - State for the menu, as returned by `useTreeState`.\n */\nexport function useMenuItem(props: AriaMenuItemProps, state: TreeState, ref: RefObject): MenuItemAria {\n let {\n key,\n closeOnSelect,\n isVirtualized\n } = props;\n\n let isDisabled = props.isDisabled ?? state.disabledKeys.has(key);\n let isSelected = props.isSelected ?? state.selectionManager.isSelected(key);\n let isFocused = state.selectionManager.focusedKey === key;\n\n let data = menuData.get(state);\n let onClose = props.onClose || data.onClose;\n let onAction = props.onAction || data.onAction;\n\n let role = 'menuitem';\n if (state.selectionManager.selectionMode === 'single') {\n role = 'menuitemradio';\n } else if (state.selectionManager.selectionMode === 'multiple') {\n role = 'menuitemcheckbox';\n }\n\n let labelId = useSlotId();\n let descriptionId = useSlotId();\n let keyboardId = useSlotId();\n\n let ariaProps = {\n 'aria-disabled': isDisabled,\n role,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': labelId,\n 'aria-describedby': [descriptionId, keyboardId].filter(Boolean).join(' ') || undefined\n };\n\n if (state.selectionManager.selectionMode !== 'none') {\n ariaProps['aria-checked'] = isSelected;\n }\n\n if (isVirtualized) {\n ariaProps['aria-posinset'] = state.collection.getItem(key).index;\n ariaProps['aria-setsize'] = getItemCount(state.collection);\n }\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Ignore repeating events, which may have started on the menu trigger before moving\n // focus to the menu item. We want to wait for a second complete key press sequence.\n if (e.repeat) {\n return;\n }\n\n switch (e.key) {\n case ' ':\n if (!isDisabled && state.selectionManager.selectionMode === 'none' && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n case 'Enter':\n // The Enter key should always close on select, except if overridden.\n if (!isDisabled && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n }\n };\n\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType === 'keyboard' && onAction) {\n onAction(key);\n }\n };\n\n let onPressUp = (e: PressEvent) => {\n if (e.pointerType !== 'keyboard') {\n if (onAction) {\n onAction(key);\n }\n\n // Pressing a menu item should close by default in single selection mode but not multiple\n // selection mode, except if overridden by the closeOnSelect prop.\n if (onClose && (closeOnSelect ?? state.selectionManager.selectionMode !== 'multiple')) {\n onClose();\n }\n }\n };\n\n let {itemProps} = useSelectableItem({\n selectionManager: state.selectionManager,\n key,\n ref,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true\n });\n\n let {pressProps, isPressed} = usePress({onPressStart, onPressUp, isDisabled});\n let {hoverProps} = useHover({\n isDisabled,\n onHoverStart() {\n if (!isFocusVisible()) {\n state.selectionManager.setFocused(true);\n state.selectionManager.setFocusedKey(key);\n }\n }\n });\n\n return {\n menuItemProps: {\n ...ariaProps,\n ...mergeProps(itemProps, pressProps, hoverProps, {onKeyDown})\n },\n labelProps: {\n id: labelId\n },\n descriptionProps: {\n id: descriptionId\n },\n keyboardShortcutProps: {\n id: keyboardId\n },\n isFocused,\n isSelected,\n isPressed,\n isDisabled\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {ReactNode} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface AriaMenuSectionProps {\n /** The heading for the section. */\n heading?: ReactNode,\n /** An accessibility label for the section. Required if `heading` is not present. */\n 'aria-label'?: string\n}\n\nexport interface MenuSectionAria {\n /** Props for the wrapper list item. */\n itemProps: DOMAttributes,\n\n /** Props for the heading element, if any. */\n headingProps: DOMAttributes,\n\n /** Props for the group element. */\n groupProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a section in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the section.\n */\nexport function useMenuSection(props: AriaMenuSectionProps): MenuSectionAria {\n let {heading, 'aria-label': ariaLabel} = props;\n let headingId = useId();\n\n return {\n itemProps: {\n role: 'presentation'\n },\n headingProps: heading ? {\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label for the nested group.\n id: headingId,\n 'aria-hidden': true\n } : {},\n groupProps: {\n role: 'group',\n 'aria-label': ariaLabel,\n 'aria-labelledby': heading ? headingId : undefined\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {OverlayTriggerProps} from '@react-types/overlays';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface OverlayTriggerState {\n /** Whether the overlay is currently open. */\n readonly isOpen: boolean,\n /** Sets whether the overlay is open. */\n setOpen(isOpen: boolean): void,\n /** Opens the overlay. */\n open(): void,\n /** Closes the overlay. */\n close(): void,\n /** Toggles the overlay's visibility. */\n toggle(): void\n}\n\n/**\n * Manages state for an overlay trigger. Tracks whether the overlay is open, and provides\n * methods to toggle this state.\n */\nexport function useOverlayTriggerState(props: OverlayTriggerProps): OverlayTriggerState {\n let [isOpen, setOpen] = useControlledState(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n\n return {\n isOpen,\n setOpen,\n open() {\n setOpen(true);\n },\n close() {\n setOpen(false);\n },\n toggle() {\n setOpen(!isOpen);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport {MenuTriggerProps} from '@react-types/menu';\nimport {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';\nimport {useState} from 'react';\n\nexport interface MenuTriggerState extends OverlayTriggerState {\n /** Controls which item will be auto focused when the menu opens. */\n readonly focusStrategy: FocusStrategy,\n\n /** Opens the menu. */\n open(focusStrategy?: FocusStrategy | null): void,\n\n /** Toggles the menu. */\n toggle(focusStrategy?: FocusStrategy | null): void\n}\n\n/**\n * Manages state for a menu trigger. Tracks whether the menu is currently open,\n * and controls which item will receive focus when it opens.\n */\nexport function useMenuTriggerState(props: MenuTriggerProps): MenuTriggerState {\n let overlayTriggerState = useOverlayTriggerState(props);\n let [focusStrategy, setFocusStrategy] = useState(null);\n\n return {\n focusStrategy,\n ...overlayTriggerState,\n open(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.open();\n },\n toggle(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.toggle();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\n\n/**\n * A Selection is a special Set containing Keys, which also has an anchor\n * and current selected key for use when range selecting.\n */\nexport class Selection extends Set {\n anchorKey: Key;\n currentKey: Key;\n\n constructor(keys?: Iterable | Selection, anchorKey?: Key, currentKey?: Key) {\n super(keys);\n if (keys instanceof Selection) {\n this.anchorKey = anchorKey || keys.anchorKey;\n this.currentKey = currentKey || keys.currentKey;\n } else {\n this.anchorKey = anchorKey;\n this.currentKey = currentKey;\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DisabledBehavior, MultipleSelection, SelectionBehavior, SelectionMode} from '@react-types/shared';\nimport {Key, useEffect, useMemo, useRef, useState} from 'react';\nimport {MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\nimport {useControlledState} from '@react-stately/utils';\n\nfunction equalSets(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n\n for (let item of setA) {\n if (!setB.has(item)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport interface MultipleSelectionStateProps extends MultipleSelection {\n /** How multiple selection should behave in the collection. */\n selectionBehavior?: SelectionBehavior,\n /** Whether onSelectionChange should fire even if the new set of keys is the same as the last. */\n allowDuplicateSelectionEvents?: boolean,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\n/**\n * Manages state for multiple selection and focus in a collection.\n */\nexport function useMultipleSelectionState(props: MultipleSelectionStateProps): MultipleSelectionState {\n let {\n selectionMode = 'none' as SelectionMode,\n disallowEmptySelection,\n allowDuplicateSelectionEvents,\n selectionBehavior: selectionBehaviorProp = 'toggle',\n disabledBehavior = 'all'\n } = props;\n\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = useRef(false);\n let [, setFocused] = useState(false);\n let focusedKeyRef = useRef(null);\n let childFocusStrategyRef = useRef(null);\n let [, setFocusedKey] = useState(null);\n let selectedKeysProp = useMemo(() => convertSelection(props.selectedKeys), [props.selectedKeys]);\n let defaultSelectedKeys = useMemo(() => convertSelection(props.defaultSelectedKeys, new Selection()), [props.defaultSelectedKeys]);\n let [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp,\n defaultSelectedKeys,\n props.onSelectionChange\n );\n let disabledKeysProp = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n let [selectionBehavior, setSelectionBehavior] = useState(selectionBehaviorProp);\n\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) {\n setSelectionBehavior('replace');\n }\n\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = useRef(selectionBehaviorProp);\n useEffect(() => {\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [selectionBehaviorProp]);\n\n return {\n selectionMode,\n disallowEmptySelection,\n selectionBehavior,\n setSelectionBehavior,\n get isFocused() {\n return isFocusedRef.current;\n },\n setFocused(f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey() {\n return focusedKeyRef.current;\n },\n get childFocusStrategy() {\n return childFocusStrategyRef.current;\n },\n setFocusedKey(k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys,\n setSelectedKeys(keys) {\n if (allowDuplicateSelectionEvents || !equalSets(keys, selectedKeys)) {\n setSelectedKeys(keys);\n }\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior\n };\n}\n\nfunction convertSelection(selection: 'all' | Iterable, defaultValue?: Selection): 'all' | Selection {\n if (!selection) {\n return defaultValue;\n }\n\n return selection === 'all'\n ? 'all'\n : new Selection(selection);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Collection,\n DisabledBehavior,\n FocusStrategy,\n Selection as ISelection,\n LongPressEvent,\n Node,\n PressEvent,\n SelectionBehavior,\n SelectionMode\n} from '@react-types/shared';\nimport {Key} from 'react';\nimport {MultipleSelectionManager, MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\n\ninterface SelectionManagerOptions {\n allowsCellSelection?: boolean\n}\n\n/**\n * An interface for reading and updating multiple selection state.\n */\nexport class SelectionManager implements MultipleSelectionManager {\n private collection: Collection>;\n private state: MultipleSelectionState;\n private allowsCellSelection: boolean;\n private _isSelectAll: boolean;\n\n constructor(collection: Collection>, state: MultipleSelectionState, options?: SelectionManagerOptions) {\n this.collection = collection;\n this.state = state;\n this.allowsCellSelection = options?.allowsCellSelection ?? false;\n this._isSelectAll = null;\n }\n\n /**\n * The type of selection that is allowed in the collection.\n */\n get selectionMode(): SelectionMode {\n return this.state.selectionMode;\n }\n\n /**\n * Whether the collection allows empty selection.\n */\n get disallowEmptySelection(): boolean {\n return this.state.disallowEmptySelection;\n }\n\n /**\n * The selection behavior for the collection.\n */\n get selectionBehavior(): SelectionBehavior {\n return this.state.selectionBehavior;\n }\n\n /**\n * Sets the selection behavior for the collection.\n */\n setSelectionBehavior(selectionBehavior: SelectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n\n /**\n * Whether the collection is currently focused.\n */\n get isFocused(): boolean {\n return this.state.isFocused;\n }\n\n /**\n * Sets whether the collection is focused.\n */\n setFocused(isFocused: boolean) {\n this.state.setFocused(isFocused);\n }\n\n /**\n * The current focused key in the collection.\n */\n get focusedKey(): Key {\n return this.state.focusedKey;\n }\n\n /** Whether the first or last child of the focused key should receive focus. */\n get childFocusStrategy(): FocusStrategy {\n return this.state.childFocusStrategy;\n }\n\n /**\n * Sets the focused key.\n */\n setFocusedKey(key: Key, childFocusStrategy?: FocusStrategy) {\n if (key == null || this.collection.getItem(key)) {\n this.state.setFocusedKey(key, childFocusStrategy);\n }\n }\n\n /**\n * The currently selected keys in the collection.\n */\n get selectedKeys(): Set {\n return this.state.selectedKeys === 'all'\n ? new Set(this.getSelectAllKeys())\n : this.state.selectedKeys;\n }\n\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */\n get rawSelection(): ISelection {\n return this.state.selectedKeys;\n }\n\n /**\n * Returns whether a key is selected.\n */\n isSelected(key: Key) {\n if (this.state.selectionMode === 'none') {\n return false;\n }\n\n key = this.getKey(key);\n return this.state.selectedKeys === 'all'\n ? this.canSelectItem(key)\n : this.state.selectedKeys.has(key);\n }\n\n /**\n * Whether the selection is empty.\n */\n get isEmpty(): boolean {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n\n /**\n * Whether all items in the collection are selected.\n */\n get isSelectAll(): boolean {\n if (this.isEmpty) {\n return false;\n }\n\n if (this.state.selectedKeys === 'all') {\n return true;\n }\n\n if (this._isSelectAll != null) {\n return this._isSelectAll;\n }\n\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every(k => selectedKeys.has(k));\n return this._isSelectAll;\n }\n\n get firstSelectedKey(): Key | null {\n let first: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!first || item?.index < first.index) {\n first = item;\n }\n }\n\n return first?.key;\n }\n\n get lastSelectedKey(): Key | null {\n let last: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!last || item?.index > last.index) {\n last = item;\n }\n }\n\n return last?.key;\n }\n\n get disabledKeys(): Set {\n return this.state.disabledKeys;\n }\n\n get disabledBehavior(): DisabledBehavior {\n return this.state.disabledBehavior;\n }\n\n /**\n * Extends the selection to the given key.\n */\n extendSelection(toKey: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n\n toKey = this.getKey(toKey);\n\n let selection: Selection;\n\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') {\n selection = new Selection([toKey], toKey, toKey);\n } else {\n let selectedKeys = this.state.selectedKeys as Selection;\n let anchorKey = selectedKeys.anchorKey || toKey;\n selection = new Selection(selectedKeys, anchorKey, toKey);\n for (let key of this.getKeyRange(anchorKey, selectedKeys.currentKey || toKey)) {\n selection.delete(key);\n }\n\n for (let key of this.getKeyRange(toKey, anchorKey)) {\n if (this.canSelectItem(key)) {\n selection.add(key);\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getKeyRange(from: Key, to: Key) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if (fromItem.index <= toItem.index) {\n return this.getKeyRangeInternal(from, to);\n }\n\n return this.getKeyRangeInternal(to, from);\n }\n\n return [];\n }\n\n private getKeyRangeInternal(from: Key, to: Key) {\n let keys: Key[] = [];\n let key = from;\n while (key) {\n let item = this.collection.getItem(key);\n if (item && item.type === 'item' || (item.type === 'cell' && this.allowsCellSelection)) {\n keys.push(key);\n }\n\n if (key === to) {\n return keys;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n\n return [];\n }\n\n private getKey(key: Key) {\n let item = this.collection.getItem(key);\n if (!item) {\n // ¯\\_(ツ)_/¯\n return key;\n }\n\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) {\n return key;\n }\n\n // Find a parent item to select\n while (item.type !== 'item' && item.parentKey != null) {\n item = this.collection.getItem(item.parentKey);\n }\n\n if (!item || item.type !== 'item') {\n return null;\n }\n\n return item.key;\n }\n\n /**\n * Toggles whether the given key is selected.\n */\n toggleSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let keys = new Selection(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(key)) {\n keys.delete(key);\n // TODO: move anchor to last selected key...\n // Does `current` need to move here too?\n } else if (this.canSelectItem(key)) {\n keys.add(key);\n keys.anchorKey = key;\n keys.currentKey = key;\n }\n\n if (this.disallowEmptySelection && keys.size === 0) {\n return;\n }\n\n this.state.setSelectedKeys(keys);\n }\n\n /**\n * Replaces the selection with only the given key.\n */\n replaceSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let selection = this.canSelectItem(key)\n ? new Selection([key], key, key)\n : new Selection();\n\n this.state.setSelectedKeys(selection);\n }\n\n /**\n * Replaces the selection with the given keys.\n */\n setSelectedKeys(keys: Iterable) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n let selection = new Selection();\n for (let key of keys) {\n key = this.getKey(key);\n if (key != null) {\n selection.add(key);\n if (this.selectionMode === 'single') {\n break;\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getSelectAllKeys() {\n let keys: Key[] = [];\n let addKeys = (key: Key) => {\n while (key) {\n if (this.canSelectItem(key)) {\n let item = this.collection.getItem(key);\n if (item.type === 'item') {\n keys.push(key);\n }\n\n // Add child keys. If cell selection is allowed, then include item children too.\n if (item.hasChildNodes && (this.allowsCellSelection || item.type !== 'item')) {\n addKeys([...item.childNodes][0].key);\n }\n }\n\n key = this.collection.getKeyAfter(key);\n }\n };\n\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n\n /**\n * Selects all items in the collection.\n */\n selectAll() {\n if (this.selectionMode === 'multiple') {\n this.state.setSelectedKeys('all');\n }\n }\n\n /**\n * Removes all keys from the selection.\n */\n clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) {\n this.state.setSelectedKeys(new Selection());\n }\n }\n\n /**\n * Toggles between select all and an empty selection.\n */\n toggleSelectAll() {\n if (this.isSelectAll) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n }\n\n select(key: Key, e?: PressEvent | LongPressEvent | PointerEvent) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n } else if (this.selectionBehavior === 'toggle' || (e && (e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n }\n\n /**\n * Returns whether the current selection is equal to the given selection.\n */\n isSelectionEqual(selection: Set) {\n if (selection === this.state.selectedKeys) {\n return true;\n }\n\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) {\n return false;\n }\n\n for (let key of selection) {\n if (!selectedKeys.has(key)) {\n return false;\n }\n }\n\n for (let key of selectedKeys) {\n if (!selection.has(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n canSelectItem(key: Key) {\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) {\n return false;\n }\n\n let item = this.collection.getItem(key);\n if (!item || (item.type === 'cell' && !this.allowsCellSelection)) {\n return false;\n }\n\n return true;\n }\n\n isDisabled(key: Key) {\n return this.state.disabledKeys.has(key) && this.state.disabledBehavior === 'all';\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class TreeCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>, {expandedKeys}: {expandedKeys?: Set} = {}) {\n this.iterable = nodes;\n expandedKeys = expandedKeys || new Set();\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && (node.type === 'section' || expandedKeys.has(node.key))) {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Expandable, MultipleSelection, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {TreeCollection} from './TreeCollection';\nimport {useCollection} from '@react-stately/collections';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface TreeProps extends CollectionBase, Expandable, MultipleSelection {}\nexport interface TreeState {\n /** A collection of items in the tree. */\n readonly collection: Collection>,\n\n /** A set of keys for items that are disabled. */\n readonly disabledKeys: Set,\n\n /** A set of keys for items that are expanded. */\n readonly expandedKeys: Set,\n\n /** Toggles the expanded state for an item by its key. */\n toggleKey(key: Key): void,\n\n /** A selection manager to read and update multiple selection state. */\n readonly selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for tree-like components. Handles building a collection\n * of items from props, item expanded state, and manages multiple selection state.\n */\nexport function useTreeState(props: TreeProps): TreeState {\n let [expandedKeys, setExpandedKeys] = useControlledState(\n props.expandedKeys ? new Set(props.expandedKeys) : undefined,\n props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : new Set(),\n props.onExpandedChange\n );\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let tree = useCollection(props, nodes => new TreeCollection(nodes, {expandedKeys}), null, [expandedKeys]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tree, selectionState.focusedKey]);\n\n let onToggle = (key: Key) => {\n setExpandedKeys(toggleKey(expandedKeys, key));\n };\n\n return {\n collection: tree,\n expandedKeys,\n disabledKeys,\n toggleKey: onToggle,\n selectionManager: new SelectionManager(tree, selectionState)\n };\n}\n\nfunction toggleKey(set: Set, key: Key): Set {\n let res = new Set(set);\n if (res.has(key)) {\n res.delete(key);\n } else {\n res.add(key);\n }\n\n return res;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CheckmarkMedium;\n\nvar _CheckmarkMedium = require(\"@adobe/react-spectrum-ui/dist/CheckmarkMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CheckmarkMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.CheckmarkMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckmarkMedium = CheckmarkMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CheckmarkMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z\"\n }));\n}\n\nCheckmarkMedium.displayName = 'CheckmarkMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n baseStyleProps,\n dimensionValue,\n passthroughStyle,\n StyleHandlers,\n useDOMRef,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {DimensionValue, DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {GridProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\n\nconst gridStyleProps: StyleHandlers = {\n ...baseStyleProps,\n autoFlow: ['gridAutoFlow', passthroughStyle],\n autoColumns: ['gridAutoColumns', gridDimensionValue],\n autoRows: ['gridAutoRows', gridDimensionValue],\n areas: ['gridTemplateAreas', gridTemplateAreasValue],\n columns: ['gridTemplateColumns', gridTemplateValue],\n rows: ['gridTemplateRows', gridTemplateValue],\n gap: ['gap', dimensionValue],\n rowGap: ['rowGap', dimensionValue],\n columnGap: ['columnGap', dimensionValue],\n justifyItems: ['justifyItems', passthroughStyle],\n justifyContent: ['justifyContent', passthroughStyle],\n alignItems: ['alignItems', passthroughStyle],\n alignContent: ['alignContent', passthroughStyle]\n};\n\nfunction Grid(props: GridProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, gridStyleProps);\n styleProps.style.display = 'grid'; // inline-grid?\n let domRef = useDOMRef(ref);\n\n return (\n
\n {children}\n
\n );\n}\n\n/**\n * Can be used to make a repeating fragment of the columns or rows list.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/repeat).\n * @param count - The number of times to repeat the fragment.\n * @param repeat - The fragment to repeat.\n */\nexport function repeat(count: number | 'auto-fill' | 'auto-fit', repeat: DimensionValue | DimensionValue[]): string {\n return `repeat(${count}, ${gridTemplateValue(repeat)})`;\n}\n\n/**\n * Defines a size range greater than or equal to min and less than or equal to max.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/minmax).\n * @param min - The minimum size.\n * @param max - The maximum size.\n */\nexport function minmax(min: DimensionValue, max: DimensionValue): string {\n return `minmax(${gridDimensionValue(min)}, ${gridDimensionValue(max)})`;\n}\n\n/**\n * Clamps a given size to an available size.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content).\n * @param dimension - The size to clamp.\n */\nexport function fitContent(dimension: DimensionValue): string {\n return `fit-content(${gridDimensionValue(dimension)})`;\n}\n\nfunction gridTemplateAreasValue(value) {\n return value.map(v => `\"${v}\"`).join('\\n');\n}\n\nfunction gridDimensionValue(value) {\n if (/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(value)) {\n return value;\n }\n\n return dimensionValue(value);\n}\n\nfunction gridTemplateValue(value) {\n if (Array.isArray(value)) {\n return value.map(gridDimensionValue).join(' ');\n }\n\n return gridDimensionValue(value);\n}\n\n/**\n * A layout container using CSS grid. Supports Spectrum dimensions as values to\n * ensure consistent and adaptive sizing and spacing.\n */\nconst _Grid = forwardRef(Grid);\nexport {_Grid as Grid};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.flex-container {\n /* this is necessary so that the inner margins don't affect anything outside */\n display: flex;\n}\n\n.flex {\n display: flex;\n}\n\n.flex-gap {\n --gap: 0px;\n --column-gap: var(--gap);\n --row-gap: var(--gap);\n\n /* apply a negative margin to counteract the margin on each item at the edges */\n margin: calc(var(--row-gap) / -2) calc(var(--column-gap) / -2);\n\n /* increase the width and height to account for this margin */\n /* Add 1px to fix rounding error in Safari (╯°□°)╯︵ ┻━┻ */\n width: calc(100% + calc(var(--column-gap) + 1px));\n height: calc(100% + var(--row-gap));\n}\n\n/* If the selector was .flex-gap > *, it wouldn't override when components have a margin 0 specified by a single\n * class selector, specificity is equal. Both are one class. Neither > nor * contribute to specificity.\n * We need to make it more specific, so we raise it by 1 class.\n */\n.flex-container .flex-gap > * {\n /* apply half of the gap to each side of every item */\n margin: calc(var(--row-gap) / 2) calc(var(--column-gap) / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, passthroughStyle, responsiveDimensionValue, StyleHandlers, useBreakpoint, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FlexProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\nimport styles from './flex-gap.css';\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst flexStyleProps: StyleHandlers = {\n direction: ['flexDirection', passthroughStyle],\n wrap: ['flexWrap', flexWrapValue],\n justifyContent: ['justifyContent', flexAlignValue],\n alignItems: ['alignItems', flexAlignValue],\n alignContent: ['alignContent', flexAlignValue]\n};\n\nfunction Flex(props: FlexProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base'];\n let {styleProps} = useStyleProps(otherProps);\n let {styleProps: flexStyle} = useStyleProps(otherProps, flexStyleProps);\n let domRef = useDOMRef(ref);\n let isSSR = useIsSSR();\n\n // If a gap property is specified, and there is no native support or we're in SSR, use a shim.\n // Two divs are required for this: the outer one contains most style properties, and the inner\n // one is the flex container. Each item inside the flex container gets a margin around it based\n // on the gap, and the flex container has a negative margin to counteract this. The outer container\n // is necessary to allow nesting of flex containers with gaps, so that the inner CSS variable doesn't\n // override the outer one.\n if ((props.gap || props.rowGap || props.columnGap) && (isSSR || !isFlexGapSupported())) {\n let style = {\n ...flexStyle.style,\n '--column-gap': props.columnGap != null ? responsiveDimensionValue(props.columnGap, matchedBreakpoints) : undefined,\n '--row-gap': props.rowGap != null ? responsiveDimensionValue(props.rowGap, matchedBreakpoints) : undefined,\n '--gap': props.gap != null ? responsiveDimensionValue(props.gap, matchedBreakpoints) : undefined\n };\n\n return (\n
\n
\n {children}\n
\n
\n );\n }\n\n // If no gaps, or native support exists, then we only need to render a single div.\n let style = {\n ...styleProps.style,\n ...flexStyle.style\n };\n\n if (props.gap != null) {\n style.gap = responsiveDimensionValue(props.gap, matchedBreakpoints);\n }\n\n if (props.columnGap != null) {\n style.columnGap = responsiveDimensionValue(props.columnGap, matchedBreakpoints);\n }\n\n if (props.rowGap != null) {\n style.rowGap = responsiveDimensionValue(props.rowGap, matchedBreakpoints);\n }\n\n return (\n
\n {children}\n
\n );\n}\n\n/**\n * Normalize 'start' and 'end' alignment values to 'flex-start' and 'flex-end'\n * in flex containers for browser compatibility.\n */\nfunction flexAlignValue(value) {\n if (value === 'start') {\n return 'flex-start';\n }\n\n if (value === 'end') {\n return 'flex-end';\n }\n\n return value;\n}\n\n/**\n * Takes a boolean and translates it to flex wrap or nowrap.\n */\nfunction flexWrapValue(value) {\n if (typeof value === 'boolean') {\n return value ? 'wrap' : 'nowrap';\n }\n\n return value;\n}\n\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/Modernizr/Modernizr/blob/7efb9d0edd66815fb115fdce95fabaf019ce8db5/feature-detects/css/flexgap.js\n\nlet _isFlexGapSupported = null;\nfunction isFlexGapSupported() {\n if (_isFlexGapSupported != null) {\n return _isFlexGapSupported;\n }\n\n if (typeof document === 'undefined') {\n return false;\n }\n\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n _isFlexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n flex.parentNode.removeChild(flex);\n\n return _isFlexGapSupported;\n}\n\n/**\n * A layout container using flexbox. Provides Spectrum dimension values, and supports the gap\n * property to define consistent spacing between items.\n */\nconst _Flex = forwardRef(Flex);\nexport {_Flex as Flex};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n\nexport interface SeparatorProps extends DOMProps, AriaLabelingProps {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: Orientation,\n /** The HTML element type that will be used to render the separator. */\n elementType?: string\n}\n\nexport interface SeparatorAria {\n /** Props for the separator element. */\n separatorProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a separator.\n * A separator is a visual divider between two groups of content,\n * e.g. groups of menu items or sections of a page.\n */\nexport function useSeparator(props: SeparatorProps): SeparatorAria {\n let domProps = filterDOMProps(props, {labelable: true});\n let ariaOrientation;\n // if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined\n // if it's vertical, we need to specify it\n if (props.orientation === 'vertical') {\n ariaOrientation = 'vertical';\n }\n // hr elements implicitly have role = separator and a horizontal orientation\n if (props.elementType !== 'hr') {\n return {\n separatorProps: {\n ...domProps,\n role: 'separator',\n 'aria-orientation': ariaOrientation\n }\n };\n }\n return {separatorProps: domProps};\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = More;\n\nvar _More = require(\"@adobe/react-spectrum-workflow/dist/More\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction More(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_More.A4uMore, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uMore = A4uMore;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uMore(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"17.8\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"29.5\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"6.1\",\n cy: \"18.2\",\n r: \"3.4\"\n }));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useContext} from 'react';\n\nexport interface MenuContextValue extends HTMLAttributes {\n onClose?: () => void,\n closeOnSelect?: boolean,\n shouldFocusWrap?: boolean,\n autoFocus?: boolean | FocusStrategy,\n ref?: MutableRefObject\n}\n\nexport const MenuContext = React.createContext({});\n\nexport function useMenuContext(): MenuContextValue {\n return useContext(MenuContext);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useDOMRef, useIsMobileDevice} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {Placement} from '@react-types/overlays';\nimport {Popover, Tray} from '@react-spectrum/overlays';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {forwardRef, Fragment, useRef} from 'react';\nimport {SpectrumMenuTriggerProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenuTrigger} from '@react-aria/menu';\nimport {useMenuTriggerState} from '@react-stately/menu';\n\nfunction MenuTrigger(props: SpectrumMenuTriggerProps, ref: DOMRef) {\n let triggerRef = useRef();\n let domRef = useDOMRef(ref);\n let menuTriggerRef = domRef || triggerRef;\n let menuRef = useRef();\n let {\n children,\n align = 'start',\n shouldFlip = true,\n direction = 'bottom',\n closeOnSelect,\n trigger = 'press'\n } = props;\n\n let [menuTrigger, menu] = React.Children.toArray(children);\n let state = useMenuTriggerState(props);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger({trigger}, state, menuTriggerRef);\n\n let initialPlacement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n initialPlacement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n initialPlacement = `${direction} ${align}` as Placement;\n }\n\n let isMobile = useIsMobileDevice();\n let menuContext = {\n ...menuProps,\n ref: menuRef,\n onClose: state.close,\n closeOnSelect,\n autoFocus: state.focusStrategy || true,\n UNSAFE_style: isMobile ? {\n width: '100%',\n maxHeight: 'inherit'\n } : undefined,\n UNSAFE_className: classNames(styles, {'spectrum-Menu-popover': !isMobile})\n };\n\n // On small screen devices, the menu is rendered in a tray, otherwise a popover.\n let overlay;\n if (isMobile) {\n overlay = (\n \n {menu}\n \n );\n } else {\n overlay = (\n \n {menu}\n \n );\n }\n\n return (\n \n \n \n {menuTrigger}\n \n \n \n {overlay}\n \n \n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nlet _MenuTrigger = forwardRef(MenuTrigger);\nexport {_MenuTrigger as MenuTrigger};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport CheckmarkMedium from '@spectrum-icons/ui/CheckmarkMedium';\nimport {classNames, ClearSlots, SlotProvider} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {mergeProps} from '@react-aria/utils';\nimport {Node} from '@react-types/shared';\nimport React, {Key, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {TreeState} from '@react-stately/tree';\nimport {useHover} from '@react-aria/interactions';\nimport {useMenuContext} from './context';\nimport {useMenuItem} from '@react-aria/menu';\n\ninterface MenuItemProps {\n item: Node,\n state: TreeState,\n isVirtualized?: boolean,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuItem(props: MenuItemProps) {\n let {\n item,\n state,\n isVirtualized,\n onAction\n } = props;\n\n let {\n onClose,\n closeOnSelect\n } = useMenuContext();\n\n let {\n rendered,\n key\n } = item;\n\n let isSelected = state.selectionManager.isSelected(key);\n let isDisabled = state.disabledKeys.has(key);\n\n let ref = useRef();\n let {menuItemProps, labelProps, descriptionProps, keyboardShortcutProps} = useMenuItem(\n {\n isSelected,\n isDisabled,\n 'aria-label': item['aria-label'],\n key,\n onClose,\n closeOnSelect,\n isVirtualized,\n onAction\n },\n state,\n ref\n );\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let contents = typeof rendered === 'string'\n ? {rendered}\n : rendered;\n\n return (\n \n \n \n \n \n {contents}\n {isSelected &&\n \n }\n \n \n \n \n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport {MenuItem} from './MenuItem';\nimport {Node} from '@react-types/shared';\nimport React, {Fragment, Key} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {TreeState} from '@react-stately/tree';\nimport {useMenuSection} from '@react-aria/menu';\nimport {useSeparator} from '@react-aria/separator';\n\ninterface MenuSectionProps {\n item: Node,\n state: TreeState,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuSection(props: MenuSectionProps) {\n let {item, state, onAction} = props;\n let {itemProps, headingProps, groupProps} = useMenuSection({\n heading: item.rendered,\n 'aria-label': item['aria-label']\n });\n\n let {separatorProps} = useSeparator({\n elementType: 'li'\n });\n\n return (\n \n {item.key !== state.collection.getFirstKey() &&\n \n }\n
  • \n {item.rendered &&\n \n {item.rendered}\n \n }\n \n {[...item.childNodes].map(node => {\n let item = (\n \n );\n\n if (node.wrapper) {\n item = node.wrapper(item);\n }\n\n return item;\n })}\n \n
  • \n
    \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {MenuItem} from './MenuItem';\nimport {MenuSection} from './MenuSection';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {ReactElement, useContext} from 'react';\nimport {SpectrumMenuProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenu} from '@react-aria/menu';\nimport {useTreeState} from '@react-stately/tree';\n\nfunction Menu(props: SpectrumMenuProps, ref: DOMRef) {\n let contextProps = useContext(MenuContext);\n let completeProps = {\n ...mergeProps(contextProps, props)\n };\n\n let domRef = useDOMRef(ref);\n let state = useTreeState(completeProps);\n let {menuProps} = useMenu(completeProps, state, domRef);\n let {styleProps} = useStyleProps(completeProps);\n useSyncRef(contextProps, domRef);\n\n return (\n \n {[...state.collection].map(item => {\n if (item.type === 'section') {\n return (\n \n );\n }\n\n let menuItem = (\n \n );\n\n if (item.wrapper) {\n menuItem = item.wrapper(menuItem);\n }\n\n return menuItem;\n })}\n \n );\n}\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Menu = React.forwardRef(Menu) as (props: SpectrumMenuProps & {ref?: DOMRef}) => ReactElement;\nexport {_Menu as Menu};\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"moreActions\": \"المزيد من الإجراءات\"\n}\n","{\n \"moreActions\": \"Повече действия\"\n}\n","{\n \"moreActions\": \"Další akce\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Mehr Aktionen\"\n}\n","{\n \"moreActions\": \"Περισσότερες ενέργειες\"\n}\n","{\n \"moreActions\": \"More actions\"\n}","{\n \"moreActions\": \"Más acciones\"\n}\n","{\n \"moreActions\": \"Veel toiminguid\"\n}\n","{\n \"moreActions\": \"Lisää toimintoja\"\n}\n","{\n \"moreActions\": \"Autres actions\"\n}\n","{\n \"moreActions\": \"פעולות נוספות\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"További lehetőségek\"\n}\n","{\n \"moreActions\": \"Altre azioni\"\n}\n","{\n \"moreActions\": \"その他のアクション\"\n}\n","{\n \"moreActions\": \"기타 작업\"\n}\n","{\n \"moreActions\": \"Daugiau veiksmų\"\n}\n","{\n \"moreActions\": \"Citas darbības\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Meer handelingen\"\n}\n","{\n \"moreActions\": \"Więcej akcji\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mai multe acțiuni\"\n}\n","{\n \"moreActions\": \"Дополнительные действия\"\n}\n","{\n \"moreActions\": \"Ďalšie akcie\"\n}\n","{\n \"moreActions\": \"Več možnosti\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"Fler åtgärder\"\n}\n","{\n \"moreActions\": \"Daha fazla eylem\"\n}\n","{\n \"moreActions\": \"Більше дій\"\n}\n","{\n \"moreActions\": \"更多操作\"\n}\n","{\n \"moreActions\": \"更多動作\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from '@react-spectrum/button';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusableRef} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Menu} from './Menu';\nimport {MenuTrigger} from './MenuTrigger';\nimport More from '@spectrum-icons/workflow/More';\nimport React, {forwardRef, ReactElement} from 'react';\nimport {SpectrumActionMenuProps} from '@react-types/menu';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useSlotProps} from '@react-spectrum/utils';\n\nfunction ActionMenu(props: SpectrumActionMenuProps, ref: FocusableRef) {\n props = useSlotProps(props, 'actionMenu');\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let buttonProps = filterDOMProps(props, {labelable: true});\n if (buttonProps['aria-label'] === undefined) {\n buttonProps['aria-label'] = stringFormatter.format('moreActions');\n }\n\n return (\n \n \n \n \n \n \n );\n}\n\n/**\n * ActionMenu combines an ActionButton with a Menu for simple \"more actions\" use cases.\n */\nconst _ActionMenu = forwardRef(ActionMenu) as (props: SpectrumActionMenuProps & {ref?: FocusableRef}) => ReactElement;\nexport {_ActionMenu as ActionMenu};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ClearSlots, useDOMRef, useSlotProps, useStyleProps, viewStyleProps} from '@react-spectrum/utils';\nimport {ColorVersion, DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {forwardRef, ReactElement} from 'react';\nimport {ViewProps} from '@react-types/view';\n\nfunction View(props: ViewProps, ref: DOMRef) {\n props = useSlotProps(props);\n let {\n elementType: ElementType = 'div',\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(props, viewStyleProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\n/**\n * View is a general purpose container with no specific semantics that can be used for custom styling purposes.\n * It supports Spectrum style props to ensure consistency with other Spectrum components.\n */\nconst _View = forwardRef(View) as (props: ViewProps & {ref?: DOMRef}) => ReactElement;\nexport {_View as View};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ClearSlots, useDOMRef, useSlotProps} from '@react-spectrum/utils';\nimport {ContentProps} from '@react-types/view';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {forwardRef} from 'react';\nimport {useStyleProps} from '@react-spectrum/utils';\n\nfunction Content(props: ContentProps, ref: DOMRef) {\n props = useSlotProps(props, 'content');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\n/**\n * Content represents the primary content within a Spectrum container.\n */\nconst _Content = forwardRef(Content);\nexport {_Content as Content};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ClearSlots, useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FooterProps} from '@react-types/view';\nimport React, {forwardRef} from 'react';\n\nfunction Footer(props: FooterProps, ref: DOMRef) {\n props = useSlotProps(props, 'footer');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\n/**\n * Footer represents a footer within a Spectrum container.\n */\nconst _Footer = forwardRef(Footer);\nexport {_Footer as Footer};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ClearSlots, useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeaderProps} from '@react-types/view';\nimport React, {forwardRef} from 'react';\n\nfunction Header(props: HeaderProps, ref: DOMRef) {\n props = useSlotProps(props, 'header');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n
    \n \n {children}\n \n
    \n );\n}\n\n/**\n * Header represents a header within a Spectrum container.\n */\nconst _Header = forwardRef(Header);\nexport {_Header as Header};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, ClearSlots, SlotProvider, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {Flex} from '@react-spectrum/layout';\nimport React, {forwardRef} from 'react';\nimport {SpectrumIllustratedMessageProps} from '@react-types/illustratedmessage';\nimport styles from '@adobe/spectrum-css-temp/components/illustratedmessage/vars.css';\n\nfunction IllustratedMessage(props: SpectrumIllustratedMessageProps, ref: DOMRef) {\n props = useSlotProps(props, 'illustration');\n let {\n children,\n ...otherProps\n } = props;\n\n let {styleProps} = useStyleProps(otherProps);\n let headingClassName = classNames(styles, 'spectrum-IllustratedMessage-heading');\n let contentClassName = classNames(styles, 'spectrum-IllustratedMessage-description');\n\n let slots = {\n heading: {UNSAFE_className: headingClassName},\n content: {UNSAFE_className: contentClassName}\n };\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\n/**\n * An IllustratedMessage displays an illustration and a message, usually\n * for an empty state or an error page.\n */\nlet _IllustratedMessage = forwardRef(IllustratedMessage);\nexport {_IllustratedMessage as IllustratedMessage};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {InvalidationContext} from './types';\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\n// import {Point} from './Point';\nimport {Rect} from './Rect';\nimport {Size} from './Size';\nimport {Virtualizer} from './Virtualizer';\n// import { DragTarget, DropTarget } from '@react-types/shared';\n\n/**\n * [CollectionView]{@link CollectionView} supports arbitrary layout objects, which compute what views are visible, and how\n * to position and style them. However, layouts do not create the views themselves directly. Instead,\n * layouts produce lightweight {@link LayoutInfo} objects which describe various properties of a view,\n * such as its position and size. The {@link CollectionView} is then responsible for creating the actual\n * views as needed, based on this layout information.\n *\n * Every layout extends from the {@link Layout} abstract base class. Layouts must implement a minimum of the\n * two methods listed below. All other methods can be optionally overridden to implement custom behavior.\n *\n * @see {@link getVisibleLayoutInfos}\n * @see {@link getLayoutInfo}\n */\nexport abstract class Layout {\n /** The CollectionView the layout is currently attached to. */\n virtualizer: Virtualizer;\n\n /**\n * Returns whether the layout should invalidate in response to\n * visible rectangle changes. By default, it only invalidates\n * when the collection view's size changes. Return true always\n * to make the layout invalidate while scrolling (e.g. sticky headers).\n */\n shouldInvalidate(newRect: Rect, oldRect: Rect): boolean {\n // By default, invalidate when the size changes\n return newRect.width !== oldRect.width\n || newRect.height !== oldRect.height;\n }\n\n /**\n * This method allows the layout to perform any pre-computation\n * it needs to in order to prepare {@link LayoutInfo}s for retrieval.\n * Called by the collection view before {@link getVisibleLayoutInfos}\n * or {@link getLayoutInfo} are called.\n */\n validate(invalidationContext: InvalidationContext) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * Returns an array of {@link LayoutInfo} objects which are inside the given rectangle.\n * Should be implemented by subclasses.\n * @param rect The rectangle that should contain the returned LayoutInfo objects.\n */\n abstract getVisibleLayoutInfos(rect: Rect): LayoutInfo[];\n\n /**\n * Returns a {@link LayoutInfo} for the given key.\n * Should be implemented by subclasses.\n * @param key The key of the LayoutInfo to retrieve.\n */\n abstract getLayoutInfo(key: Key): LayoutInfo;\n\n /**\n * Returns size of the content. By default, it returns collectionView's size.\n */\n abstract getContentSize(): Size;\n\n /**\n * Returns a {@link DragTarget} describing a view at the given point to be dragged.\n * Return `null` to cancel the drag. The default implementation returns the view at the given point.\n * @param point The point at which the drag occurred.\n */\n // getDragTarget(point: Point): DragTarget | null {\n // let target = this.virtualizer.keyAtPoint(point);\n // if (!target) {\n // return null;\n // }\n\n // return {\n // type: 'item',\n // key: target\n // };\n // }\n\n /**\n * Returns a {@link DragTarget} object describing where a drop should occur. Return `null`\n * to reject the drop. The dropped items will be inserted before the resulting target.\n * @param point The point at which the drop occurred.\n */\n // getDropTarget(point: Point): DropTarget | null {\n // return null;\n // }\n\n /**\n * Returns the starting attributes for an animated insertion.\n * The view is animated from this {@link LayoutInfo} to the one returned by {@link getLayoutInfo}.\n * The default implementation just returns its input.\n *\n * @param layoutInfo The proposed LayoutInfo for this view.\n */\n getInitialLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n\n /**\n * Returns the ending attributes for an animated removal.\n * The view is animated from the {@link LayoutInfo} returned by {@link getLayoutInfo}\n * to the one returned by this method. The default implementation returns its input.\n *\n * @param layoutInfo The original LayoutInfo for this view.\n */\n getFinalLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {Rect} from './Rect';\n\n/**\n * Instances of this lightweight class are created by {@link Layout} subclasses\n * to represent each view in the {@link CollectionView}. LayoutInfo objects describe\n * various properties of a view, such as its position and size, and style information.\n * The collection view uses this information when creating actual views to display.\n */\nexport class LayoutInfo {\n /**\n * A string representing the view type. Should be `'item'` for item views.\n * Other types are used by supplementary views.\n */\n type: string;\n\n /**\n * A unique key for this view. For item views, it should match the content key.\n */\n key: Key;\n\n /**\n * The key for a parent layout info, if any.\n */\n parentKey: Key | null;\n\n /**\n * The rectangle describing the size and position of this view.\n */\n rect: Rect;\n\n /**\n * Whether the size is estimated. `false` by default.\n */\n estimatedSize: boolean;\n\n /**\n * Whether the layout info sticks to the viewport when scrolling.\n */\n isSticky: boolean;\n\n /**\n * The view's opacity. 1 by default.\n */\n opacity: number;\n\n /**\n * A CSS transform string to apply to the view. `null` by default.\n */\n transform: string | null;\n\n /**\n * The z-index of the view. 0 by default.\n */\n zIndex: number;\n\n /**\n * Whether the layout info allows its contents to overflow its container.\n * @default false\n */\n allowOverflow: boolean;\n\n /**\n * @param type A string representing the view type. Should be `'item'` for item views.\n Other types are used by supplementary views.\n * @param key The unique key for this view.\n * @param rect The rectangle describing the size and position of this view.\n */\n constructor(type: string, key: Key, rect: Rect) {\n this.type = type;\n this.key = key;\n this.parentKey = null;\n this.rect = rect;\n this.estimatedSize = false;\n this.isSticky = false;\n this.opacity = 1;\n this.transform = null;\n this.zIndex = 0;\n this.allowOverflow = false;\n }\n\n /**\n * Returns a copy of the LayoutInfo.\n */\n copy(): LayoutInfo {\n let res = new LayoutInfo(this.type, this.key, this.rect.copy());\n res.estimatedSize = this.estimatedSize;\n res.opacity = this.opacity;\n res.transform = this.transform;\n res.parentKey = this.parentKey;\n res.isSticky = this.isSticky;\n res.zIndex = this.zIndex;\n res.allowOverflow = this.allowOverflow;\n return res;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Point {\n /** The x-coordinate of the point. */\n x: number;\n\n /** The y-coordinate of the point. */\n y: number;\n\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n\n /**\n * Returns a copy of this point.\n */\n copy(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * Checks if two points are equal.\n */\n equals(point: Point): boolean {\n return this.x === point.x && this.y === point.y;\n }\n\n /**\n * Returns true if this point is the origin.\n */\n isOrigin(): boolean {\n return this.x === 0 && this.y === 0;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Size} from './Size';\n\nexport type RectCorner = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\n\n/**\n * Represents a rectangle.\n */\nexport class Rect {\n /** The x-coordinate of the rectangle. */\n x: number;\n\n /** The y-coordinate of the rectangle. */\n y: number;\n\n /** The width of the rectangle. */\n width: number;\n\n /** The height of the rectangle. */\n height: number;\n\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n /**\n * The maximum x-coordinate in the rectangle.\n */\n get maxX(): number {\n return this.x + this.width;\n }\n\n /**\n * The maximum y-coordinate in the rectangle.\n */\n get maxY(): number {\n return this.y + this.height;\n }\n\n /**\n * The area of the rectangle.\n */\n get area(): number {\n return this.width * this.height;\n }\n\n /**\n * The top left corner of the rectangle.\n */\n get topLeft(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * The top right corner of the rectangle.\n */\n get topRight(): Point {\n return new Point(this.maxX, this.y);\n }\n\n /**\n * The bottom left corner of the rectangle.\n */\n get bottomLeft(): Point {\n return new Point(this.x, this.maxY);\n }\n\n /**\n * The bottom right corner of the rectangle.\n */\n get bottomRight(): Point {\n return new Point(this.maxX, this.maxY);\n }\n\n /**\n * Returns whether this rectangle intersects another rectangle.\n * @param rect - The rectangle to check.\n */\n intersects(rect: Rect): boolean {\n return this.x <= rect.x + rect.width\n && rect.x <= this.x + this.width\n && this.y <= rect.y + rect.height\n && rect.y <= this.y + this.height;\n }\n\n /**\n * Returns whether this rectangle fully contains another rectangle.\n * @param rect - The rectangle to check.\n */\n containsRect(rect: Rect): boolean {\n return this.x <= rect.x\n && this.y <= rect.y\n && this.maxX >= rect.maxX\n && this.maxY >= rect.maxY;\n }\n\n /**\n * Returns whether the rectangle contains the given point.\n * @param point - The point to check.\n */\n containsPoint(point: Point): boolean {\n return this.x <= point.x\n && this.y <= point.y\n && this.maxX >= point.x\n && this.maxY >= point.y;\n }\n\n /**\n * Returns the first corner of this rectangle (from top to bottom, left to right)\n * that is contained in the given rectangle, or null of the rectangles do not intersect.\n * @param rect - The rectangle to check.\n */\n getCornerInRect(rect: Rect): RectCorner | null {\n for (let key of ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']) {\n if (rect.containsPoint(this[key])) {\n return key as RectCorner;\n }\n }\n\n return null;\n }\n\n equals(rect: Rect) {\n return rect.x === this.x\n && rect.y === this.y\n && rect.width === this.width\n && rect.height === this.height;\n }\n\n pointEquals(point: Point | Rect) {\n return this.x === point.x\n && this.y === point.y;\n }\n\n sizeEquals(size: Size | Rect) {\n return this.width === size.width\n && this.height === size.height;\n }\n\n /**\n * Returns the union of this Rect and another.\n */\n union(other: Rect) {\n let x = Math.min(this.x, other.x);\n let y = Math.min(this.y, other.y);\n let width = Math.max(this.maxX, other.maxX) - x;\n let height = Math.max(this.maxY, other.maxY) - y;\n return new Rect(x, y, width, height);\n }\n\n /**\n * Returns the intersection of this Rect with another.\n * If the rectangles do not intersect, an all zero Rect is returned.\n */\n intersection(other: Rect): Rect {\n if (!this.intersects(other)) {\n return new Rect(0, 0, 0, 0);\n }\n\n let x = Math.max(this.x, other.x);\n let y = Math.max(this.y, other.y);\n return new Rect(\n x,\n y,\n Math.min(this.maxX, other.maxX) - x,\n Math.min(this.maxY, other.maxY) - y\n );\n }\n\n /**\n * Returns a copy of this rectangle.\n */\n copy(): Rect {\n return new Rect(this.x, this.y, this.width, this.height);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Size {\n width: number;\n height: number;\n\n constructor(width = 0, height = 0) {\n this.width = width;\n this.height = height;\n }\n\n /**\n * Returns a copy of this size.\n */\n copy(): Size {\n return new Size(this.width, this.height);\n }\n\n /**\n * Returns whether this size is equal to another one.\n */\n equals(other: Size): boolean {\n return this.width === other.width\n && this.height === other.height;\n }\n\n /**\n * The total area of the Size.\n */\n get area() {\n return this.width * this.height;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {Virtualizer} from './Virtualizer';\n\nlet KEY = 0;\n\n/**\n * [CollectionView]{@link CollectionView} creates instances of the [ReusableView]{@link ReusableView} class to\n * represent views currently being displayed. ReusableViews manage a DOM node, handle\n * applying {@link LayoutInfo} objects to the view, and render content\n * as needed. Subclasses must implement the {@link render} method at a\n * minimum. Other methods can be overridden to customize behavior.\n */\nexport class ReusableView {\n /** The CollectionVirtualizer this view is a part of. */\n virtualizer: Virtualizer;\n\n /** The LayoutInfo this view is currently representing. */\n layoutInfo: LayoutInfo | null;\n\n /** The content currently being displayed by this view, set by the collection view. */\n content: T;\n\n rendered: V;\n\n viewType: string;\n key: Key;\n\n constructor(virtualizer: Virtualizer) {\n this.virtualizer = virtualizer;\n this.key = ++KEY;\n }\n\n /**\n * Prepares the view for reuse. Called just before the view is removed from the DOM.\n */\n prepareForReuse() {\n this.content = null;\n this.rendered = null;\n this.layoutInfo = null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\n\n// use high res timer if available\nlet perf = typeof window !== 'undefined' ? window.performance : null;\n// @ts-ignore\nlet perfNow = perf && (perf.now || perf.webkitNow || perf.msNow || perf.mozNow);\nlet getTime = perfNow ? perfNow.bind(perf) : function () {\n return Date.now ? Date.now() : new Date().getTime();\n};\n\nlet fixTs: boolean;\n\nexport interface CancelablePromise extends Promise {\n cancel(): void\n}\n\nexport function tween(begin, end, duration, ease, fn): CancelablePromise {\n let canceled = false;\n let raf_id: number;\n\n let promise = new Promise(resolve => {\n let start = getTime();\n let diffX = end.x - begin.x;\n let diffY = end.y - begin.y;\n\n raf_id = requestAnimationFrame(function run(t) {\n // if we're using a high res timer, make sure timestamp is not the old epoch-based value.\n // http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision\n if (fixTs == null) {\n fixTs = t > 1e12 !== getTime() > 1e12;\n }\n\n if (fixTs) {\n t = getTime();\n }\n\n // check if we're done\n let delta = t - start;\n if (delta > duration) {\n fn(end);\n resolve();\n } else {\n // call frame callback after computing eased time and get the next frame\n let proceed = fn(new Point(\n begin.x + diffX * ease(delta / duration),\n begin.y + diffY * ease(delta / duration)\n ));\n\n if (proceed !== false && !canceled) {\n raf_id = requestAnimationFrame(run);\n }\n }\n });\n }) as CancelablePromise;\n\n promise.cancel = function () {\n canceled = true;\n cancelAnimationFrame(raf_id);\n };\n\n return promise;\n}\n\n// easing functions\nexport function linearEasing(t) {\n return t;\n}\n\nexport function easeOut(t) {\n return Math.sin(t * Math.PI / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function keyDiff(a: Map, b: Map): Set {\n let res = new Set();\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n\n/**\n * Returns the key difference between two maps. Returns a set of\n * keys to add to and remove from a to make it equal to b.\n * @private\n */\nexport function difference(a: Map, b: Map) {\n let toRemove = keyDiff(a, b);\n let toAdd = keyDiff(b, a);\n let toUpdate = new Set;\n for (let key of a.keys()) {\n if (b.has(key)) {\n toUpdate.add(key);\n }\n }\n return {toRemove, toAdd, toUpdate};\n}\n\n/**\n * Returns an iterator that yields the items in all of the given iterators.\n * @private\n */\nexport function* concatIterators(...iterators: Iterable[]) {\n for (let iterator of iterators) {\n yield* iterator;\n }\n}\n\n/**\n * Inverts the keys and values of an object.\n * @private\n */\nexport function invert(object) {\n let res = {};\n for (let key in object) {\n res[object[key]] = key;\n }\n\n return res;\n}\n\n/** Returns whether two sets are equal. */\nexport function isSetEqual(a: Set, b: Set): boolean {\n if (a === b) {\n return true;\n }\n\n if (a.size !== b.size) {\n return false;\n }\n\n for (let key of a) {\n if (!b.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Rect} from './Rect';\n\nclass RollingAverage {\n private count: number = 0;\n value: number = 0;\n \n addSample(sample: number) {\n this.count++;\n this.value += (sample - this.value) / this.count;\n }\n}\n\nexport class OverscanManager {\n private startTime = 0;\n private averagePerf = new RollingAverage();\n private averageTime = new RollingAverage();\n private velocity = new Point(5, 5);\n private overscanX = new RollingAverage();\n private overscanY = new RollingAverage();\n private visibleRect = new Rect();\n \n setVisibleRect(rect: Rect) {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averageTime.addSample(time);\n\n if (rect.x !== this.visibleRect.x && time > 0) {\n this.velocity.x = (rect.x - this.visibleRect.x) / time;\n }\n\n if (rect.y !== this.visibleRect.y && time > 0) {\n this.velocity.y = (rect.y - this.visibleRect.y) / time;\n }\n }\n\n this.startTime = performance.now();\n this.visibleRect = rect;\n }\n\n collectMetrics() {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averagePerf.addSample(time);\n }\n\n if (this.visibleRect.height > 0) {\n let o = Math.abs(this.velocity.y * (this.averageTime.value + this.averagePerf.value)); \n this.overscanY.addSample(o);\n }\n\n if (this.visibleRect.width > 0) {\n let o = Math.abs(this.velocity.x * (this.averageTime.value + this.averagePerf.value)); \n this.overscanX.addSample(o);\n }\n }\n\n getOverscannedRect() {\n let overscanned = this.visibleRect.copy();\n\n let overscanY = Math.round(Math.min(this.visibleRect.height * 2, this.overscanY.value) / 100) * 100;\n if (this.velocity.y > 0) {\n overscanned.y -= overscanY * 0.2;\n overscanned.height += overscanY + overscanY * 0.2;\n } else {\n overscanned.y -= overscanY;\n overscanned.height += overscanY + overscanY * 0.2;\n }\n\n let overscanX = Math.round(Math.min(this.visibleRect.width * 2, this.overscanX.value) / 100) * 100;\n if (this.velocity.x > 0) {\n overscanned.x -= overscanX * 0.2;\n overscanned.width += overscanX + overscanX * 0.2;\n } else {\n overscanned.x -= overscanX;\n overscanned.width += overscanX + overscanX * 0.2;\n }\n\n return overscanned;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {ReusableView} from './ReusableView';\n\ntype LayoutInfoMap = Map;\nexport class Transaction {\n level = 0;\n actions: (() => void)[] = [];\n animated = true;\n initialMap: LayoutInfoMap = new Map();\n finalMap: LayoutInfoMap = new Map();\n initialLayoutInfo: LayoutInfoMap = new Map();\n finalLayoutInfo: LayoutInfoMap = new Map();\n removed: Map> = new Map();\n toRemove: Map> = new Map();\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CancelablePromise, easeOut, tween} from './tween';\nimport {Collection} from '@react-types/shared';\nimport {concatIterators, difference, isSetEqual} from './utils';\nimport {\n InvalidationContext,\n ScrollAnchor,\n ScrollToItemOptions,\n VirtualizerDelegate,\n VirtualizerOptions\n} from './types';\nimport {Key} from 'react';\nimport {Layout} from './Layout';\nimport {LayoutInfo} from './LayoutInfo';\nimport {OverscanManager} from './OverscanManager';\nimport {Point} from './Point';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {Transaction} from './Transaction';\n\n/**\n * The CollectionView class renders a scrollable collection of data using customizable layouts,\n * and manages animated updates to the data over time. It supports very large collections by\n * only rendering visible views to the DOM, reusing them as you scroll. Collection views can\n * present any type of view, including non-item views such as section headers and footers.\n * Optionally, the {@link EditableCollectionView} subclass can be used to enable user interaction\n * with the collection, including drag and drop, multiple selection, and keyboard interacton.\n *\n * Collection views get their data from a {@link DataSource} object that you provide. Items are\n * grouped into sections by the data source, and the collection view calls its methods to retrieve\n * the data. When data changes, the data source emits change events, and the collection view\n * updates as appropriate, optionally with an animated transition. There is one built-in data source\n * implementation, {@link ArrayDataSource}, which renders content from a 2d array.\n *\n * Collection views use {@link Layout} objects to compute what views should be visible, and how\n * to position and style them. This means that collection views can have their items arranged in\n * a stack, a grid, a circle, or any other layout you can think of. The layout can be changed\n * dynamically at runtime as well, optionally with an animated transition between the layouts.\n *\n * Layouts produce information on what views should appear in the collection view, but do not create\n * the views themselves directly. It is the responsibility of the {@link CollectionViewDelegate} object\n * to create instances of {@link ReusableView} subclasses which render the items into DOM nodes.\n * The delegate determines what type of view to display for each item, and creates instances of\n * views as needed by the collection view. Those views are then reused by the collection view as\n * the user scrolls through the content.\n */\nexport class Virtualizer {\n /**\n * The collection view delegate. The delegate is used by the collection view\n * to create and configure views.\n */\n delegate: VirtualizerDelegate;\n\n /** The duration of animated layout changes, in milliseconds. Default is 500ms. */\n transitionDuration: number;\n\n /**\n * Whether to enable scroll anchoring. This will attempt to restore the scroll position\n * after layout changes outside the viewport. Default is off.\n */\n anchorScrollPosition: boolean;\n\n /** Whether to anchor the scroll position when at the top of the content. Default is off. */\n anchorScrollPositionAtTop: boolean;\n\n /**\n * Whether to overscan the visible area to pre-render items slightly outside and\n * improve performance. Default is on.\n */\n shouldOverscan: boolean;\n\n private _collection: Collection;\n private _layout: Layout;\n private _contentSize: Size;\n private _visibleRect: Rect;\n private _visibleLayoutInfos: Map;\n private _reusableViews: {[type: string]: ReusableView[]};\n private _visibleViews: Map>;\n private _renderedContent: WeakMap;\n private _children: Set>;\n private _invalidationContext: InvalidationContext | null;\n private _overscanManager: OverscanManager;\n private _persistedKeys: Set;\n private _relayoutRaf: number | null;\n private _scrollAnimation: CancelablePromise | null;\n private _isScrolling: boolean;\n private _sizeUpdateQueue: Map;\n private _animatedContentOffset: Point;\n private _transaction: Transaction | null;\n private _nextTransaction: Transaction | null;\n private _transactionQueue: Transaction[];\n\n constructor(options: VirtualizerOptions = {}) {\n this._contentSize = new Size;\n this._visibleRect = new Rect;\n\n this._reusableViews = {};\n this._visibleLayoutInfos = new Map();\n this._visibleViews = new Map();\n this._renderedContent = new WeakMap();\n this._children = new Set();\n this._invalidationContext = null;\n this._overscanManager = new OverscanManager();\n this._persistedKeys = new Set();\n\n this._scrollAnimation = null;\n this._isScrolling = false;\n this._sizeUpdateQueue = new Map();\n this._animatedContentOffset = new Point(0, 0);\n\n this._transaction = null;\n this._nextTransaction = null;\n this._transactionQueue = [];\n\n // Set options from passed object if given\n this.transitionDuration = options.transitionDuration ?? 500;\n this.anchorScrollPosition = options.anchorScrollPosition || false;\n this.anchorScrollPositionAtTop = options.anchorScrollPositionAtTop || false;\n this.shouldOverscan = options.shouldOverscan !== false;\n for (let key of ['delegate', 'size', 'layout', 'collection']) {\n if (options[key]) {\n this[key] = options[key];\n }\n }\n }\n\n _setContentSize(size: Size) {\n this._contentSize = size;\n this.delegate.setContentSize(size);\n }\n\n _setContentOffset(offset: Point) {\n let rect = new Rect(offset.x, offset.y, this._visibleRect.width, this._visibleRect.height);\n this.delegate.setVisibleRect(rect);\n }\n\n /**\n * Get the size of the scrollable content.\n */\n get contentSize(): Size {\n return this._contentSize;\n }\n\n /**\n * Get the collection view's currently visible rectangle.\n */\n get visibleRect(): Rect {\n return this._visibleRect;\n }\n\n /**\n * Set the collection view's currently visible rectangle.\n */\n set visibleRect(rect: Rect) {\n this._setVisibleRect(rect);\n }\n\n _setVisibleRect(rect: Rect, forceUpdate = false) {\n let current = this._visibleRect;\n\n // Ignore if the rects are equal\n if (rect.equals(current)) {\n return;\n }\n\n if (this.shouldOverscan) {\n this._overscanManager.setVisibleRect(rect);\n }\n\n let shouldInvalidate = this.layout && this.layout.shouldInvalidate(rect, this._visibleRect);\n\n this._resetAnimatedContentOffset();\n this._visibleRect = rect;\n\n if (shouldInvalidate) {\n this.relayout({\n offsetChanged: !rect.pointEquals(current),\n sizeChanged: !rect.sizeEquals(current)\n });\n } else {\n this.updateSubviews(forceUpdate);\n }\n }\n\n get collection(): Collection {\n return this._collection;\n }\n\n set collection(data: Collection) {\n this._setData(data);\n }\n\n private _setData(data: Collection) {\n if (data === this._collection) {\n return;\n }\n\n if (this._collection) {\n this._runTransaction(() => {\n this._collection = data;\n }, this.transitionDuration > 0);\n } else {\n this._collection = data;\n this.reloadData();\n }\n }\n\n /**\n * Reloads the data from the data source and relayouts the collection view.\n * Does not animate any changes. Equivalent to re-assigning the same data source\n * to the collection view.\n */\n reloadData() {\n this.relayout({\n contentChanged: true\n });\n }\n\n /**\n * Returns the item with the given key.\n */\n getItem(key: Key) {\n return this._collection ? this._collection.getItem(key) : null;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n get persistedKeys(): Set {\n return this._persistedKeys;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n set persistedKeys(persistedKeys: Set) {\n if (!isSetEqual(persistedKeys, this._persistedKeys)) {\n this._persistedKeys = persistedKeys;\n this.updateSubviews();\n }\n }\n\n /** Returns whether the given key, or an ancestor, is persisted. */\n isPersistedKey(key: Key) {\n // Quick check if the key is directly in the set of persisted keys.\n if (this._persistedKeys.has(key)) {\n return true;\n }\n\n // If not, check if the key is an ancestor of any of the persisted keys.\n for (let k of this._persistedKeys) {\n while (k != null) {\n let layoutInfo = this.layout.getLayoutInfo(k);\n if (!layoutInfo) {\n break;\n }\n\n k = layoutInfo.parentKey;\n\n if (k === key) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Get the collection view's layout.\n */\n get layout(): Layout {\n return this._layout;\n }\n\n /**\n * Set the collection view's layout.\n */\n set layout(layout: Layout) {\n this.setLayout(layout);\n }\n\n /**\n * Sets the collection view's layout, optionally with an animated transition\n * from the current layout to the new layout.\n * @param layout The layout to switch to.\n * @param animated Whether to animate the layout change.\n */\n setLayout(layout: Layout, animated = false) {\n if (layout === this._layout) {\n return;\n }\n\n let applyLayout = () => {\n if (this._layout) {\n // @ts-ignore\n this._layout.virtualizer = null;\n }\n\n layout.virtualizer = this;\n this._layout = layout;\n };\n\n if (animated) {\n // Animated layout transitions are really simple, thanks to our transaction support.\n // We just set the layout inside a transaction action, which runs after the initial\n // layout infos for the animation are retrieved from the previous layout. Then, the\n // final layout infos are retrieved from the new layout, and animations occur.\n this._runTransaction(applyLayout);\n } else {\n applyLayout();\n this.relayout();\n }\n }\n\n private _getReuseType(layoutInfo: LayoutInfo, content: T | null) {\n if (layoutInfo.type === 'item' && content) {\n let type = this.delegate.getType ? this.delegate.getType(content) : 'item';\n let reuseType = type === 'item' ? 'item' : layoutInfo.type + '_' + type;\n return {type, reuseType};\n }\n\n return {\n type: layoutInfo.type,\n reuseType: layoutInfo.type\n };\n }\n\n getReusableView(layoutInfo: LayoutInfo): ReusableView {\n let content = this.getItem(layoutInfo.key);\n let {reuseType} = this._getReuseType(layoutInfo, content);\n\n if (!this._reusableViews[reuseType]) {\n this._reusableViews[reuseType] = [];\n }\n\n let reusable = this._reusableViews[reuseType];\n let view = reusable.length > 0\n ? reusable.pop()\n : new ReusableView(this);\n\n view.viewType = reuseType;\n\n if (!this._animatedContentOffset.isOrigin()) {\n layoutInfo = layoutInfo.copy();\n layoutInfo.rect.x += this._animatedContentOffset.x;\n layoutInfo.rect.y += this._animatedContentOffset.y;\n }\n\n view.layoutInfo = layoutInfo;\n\n this._renderView(view);\n return view;\n }\n\n private _renderView(reusableView: ReusableView) {\n let {type, key} = reusableView.layoutInfo;\n reusableView.content = this.getItem(key);\n reusableView.rendered = this._renderContent(type, reusableView.content);\n }\n\n private _renderContent(type: string, content: T) {\n let cached = this._renderedContent.get(content);\n if (cached != null) {\n return cached;\n }\n\n let rendered = this.delegate.renderView(type, content);\n if (content) {\n this._renderedContent.set(content, rendered);\n }\n return rendered;\n }\n\n /**\n * Returns an array of all currently visible views, including both\n * item views and supplementary views.\n */\n get visibleViews(): ReusableView[] {\n return Array.from(this._visibleViews.values());\n }\n\n /**\n * Gets the visible view for the given type and key. Returns null if\n * the view is not currently visible.\n *\n * @param key The key of the view to retrieve.\n */\n getView(key: Key): ReusableView | null {\n return this._visibleViews.get(key) || null;\n }\n\n /**\n * Returns an array of visible views matching the given type.\n * @param type The view type to find.\n */\n getViewsOfType(type: string): ReusableView[] {\n return this.visibleViews.filter(v => v.layoutInfo && v.layoutInfo.type === type);\n }\n\n /**\n * Returns the key for the given view. Returns null\n * if the view is not currently visible.\n */\n keyForView(view: ReusableView): Key | null {\n if (view && view.layoutInfo) {\n return view.layoutInfo.key;\n }\n\n return null;\n }\n\n /**\n * Returns the key for the item view currently at the given point.\n */\n keyAtPoint(point: Point): Key | null {\n let rect = new Rect(point.x, point.y, 1, 1);\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n\n // Layout may return multiple layout infos in the case of\n // persisted keys, so find the first one that actually intersects.\n for (let layoutInfo of layoutInfos) {\n if (layoutInfo.rect.intersects(rect)) {\n return layoutInfo.key;\n }\n }\n\n return null;\n }\n\n /**\n * Cleanup for when the Virtualizer will be unmounted.\n */\n willUnmount() {\n cancelAnimationFrame(this._relayoutRaf);\n }\n\n /**\n * Triggers a layout invalidation, and updates the visible subviews.\n */\n relayout(context: InvalidationContext = {}) {\n // Ignore relayouts while animating the scroll position\n if (this._scrollAnimation || typeof requestAnimationFrame === 'undefined') {\n return;\n }\n\n // If we already scheduled a relayout, extend the invalidation\n // context so we coalesce multiple relayouts in the same frame.\n if (this._invalidationContext) {\n Object.assign(this._invalidationContext, context);\n return;\n }\n\n this._invalidationContext = context;\n this._relayoutRaf = requestAnimationFrame(() => {\n this._relayoutRaf = null;\n this.relayoutNow();\n });\n }\n\n /**\n * Performs a relayout immediately. Prefer {@link relayout} over this method\n * where possible, since it coalesces multiple layout passes in the same tick.\n */\n relayoutNow(context: InvalidationContext = this._invalidationContext || {}) {\n // Cancel the scheduled relayout, since we're doing it now.\n if (this._relayoutRaf) {\n cancelAnimationFrame(this._relayoutRaf);\n this._relayoutRaf = null;\n // Update the provided context with the current invalidationContext since we are cancelling\n // a scheduled relayoutNow call that has this._invalidationContext set as its default context arg (relayoutNow() in relayout)\n context = {...this._invalidationContext, ...context};\n }\n\n // Reset the invalidation context\n this._invalidationContext = null;\n\n // Do nothing if we don't have a layout or content, or we are\n // in the middle of an animated scroll transition.\n if (!this.layout || !this._collection || this._scrollAnimation) {\n return;\n }\n\n let scrollAnchor = this._getScrollAnchor();\n\n // Trigger the beforeLayout hook, if provided\n if (typeof context.beforeLayout === 'function') {\n context.beforeLayout();\n }\n\n // Validate the layout\n this.layout.validate(context);\n this._setContentSize(this.layout.getContentSize());\n\n // Trigger the afterLayout hook, if provided\n if (typeof context.afterLayout === 'function') {\n context.afterLayout();\n }\n\n // Adjust scroll position based on scroll anchor, and constrain.\n // If the content changed, scroll to the top.\n let visibleRect = this.getVisibleRect();\n let restoredScrollAnchor = this._restoreScrollAnchor(scrollAnchor, context);\n let contentOffsetX = context.contentChanged ? 0 : restoredScrollAnchor.x;\n let contentOffsetY = context.contentChanged ? 0 : restoredScrollAnchor.y;\n contentOffsetX = Math.max(0, Math.min(this.contentSize.width - visibleRect.width, contentOffsetX));\n contentOffsetY = Math.max(0, Math.min(this.contentSize.height - visibleRect.height, contentOffsetY));\n\n let hasLayoutUpdates = false;\n if (contentOffsetX !== visibleRect.x || contentOffsetY !== visibleRect.y) {\n // If this is an animated relayout, we do not immediately scroll because it would be jittery.\n // Save the difference between the current and new content offsets, and apply it to the\n // individual content items instead. At the end of the animation, we'll reset and set the\n // scroll offset for real. This ensures jitter-free animation since we don't need to sync\n // the scroll animation and the content animation.\n if (context.animated || !this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset.x += visibleRect.x - contentOffsetX;\n this._animatedContentOffset.y += visibleRect.y - contentOffsetY;\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n } else {\n this._setContentOffset(new Point(contentOffsetX, contentOffsetY));\n }\n } else {\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n }\n\n // Apply layout infos, unless this is coming from an animated transaction\n if (!(context.transaction && context.animated)) {\n this._applyLayoutInfos();\n }\n\n // Wait for animations, and apply the afterAnimation hook, if provided\n if (context.animated && hasLayoutUpdates) {\n this._enableTransitions();\n\n let done = () => {\n this._disableTransitions();\n\n // Reset scroll position after animations (see above comment).\n if (!this._animatedContentOffset.isOrigin()) {\n // Get the content offset to scroll to, taking _animatedContentOffset into account.\n let {x, y} = this.getVisibleRect();\n this._resetAnimatedContentOffset();\n this._setContentOffset(new Point(x, y));\n }\n\n if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n };\n\n // Sometimes the animation takes slightly longer than expected.\n setTimeout(done, this.transitionDuration + 100);\n return;\n } else if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n }\n\n /**\n * Corrects DOM order of visible views to match item order of collection.\n */\n private _correctItemOrder() {\n // Defer until after scrolling and animated transactions are complete\n if (this._isScrolling || this._transaction) {\n return;\n }\n\n for (let key of this._visibleLayoutInfos.keys()) {\n let view = this._visibleViews.get(key);\n this._children.delete(view);\n this._children.add(view);\n }\n }\n\n private _enableTransitions() {\n this.delegate.beginAnimations();\n }\n\n private _disableTransitions() {\n this.delegate.endAnimations();\n }\n\n private _getScrollAnchor(): ScrollAnchor | null {\n if (!this.anchorScrollPosition) {\n return null;\n }\n\n let visibleRect = this.getVisibleRect();\n\n // Ask the delegate to provide a scroll anchor, if possible\n if (this.delegate.getScrollAnchor) {\n let key = this.delegate.getScrollAnchor(visibleRect);\n if (key != null) {\n let layoutInfo = this.layout.getLayoutInfo(key);\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n if (corner) {\n let key = layoutInfo.key;\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n return {key, layoutInfo, corner, offset};\n }\n }\n }\n\n // No need to anchor the scroll position if it is at the top\n if (visibleRect.y === 0 && !this.anchorScrollPositionAtTop) {\n return null;\n }\n\n // Find a view with a visible corner that has the smallest distance to the top of the collection view\n let cornerAnchor: ScrollAnchor | null = null;\n\n for (let [key, view] of this._visibleViews) {\n let layoutInfo = view.layoutInfo;\n if (layoutInfo && layoutInfo.rect.area > 0) {\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n\n if (corner) {\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n if (!cornerAnchor || (offset < cornerAnchor.offset)) {\n cornerAnchor = {key, layoutInfo, corner, offset};\n }\n }\n }\n }\n\n return cornerAnchor;\n }\n\n private _restoreScrollAnchor(scrollAnchor: ScrollAnchor | null, context: InvalidationContext) {\n let contentOffset = this.getVisibleRect();\n\n if (scrollAnchor) {\n let finalAnchor = context.transaction?.animated\n ? context.transaction.finalMap.get(scrollAnchor.key)\n : this.layout.getLayoutInfo(scrollAnchor.layoutInfo.key);\n\n if (finalAnchor) {\n let adjustment = (finalAnchor.rect[scrollAnchor.corner].y - contentOffset.y) - scrollAnchor.offset;\n contentOffset.y += adjustment;\n }\n }\n\n return contentOffset;\n }\n\n getVisibleRect(): Rect {\n let v = this.visibleRect;\n let x = v.x - this._animatedContentOffset.x;\n let y = v.y - this._animatedContentOffset.y;\n return new Rect(x, y, v.width, v.height);\n }\n\n getVisibleLayoutInfos() {\n let rect = this.shouldOverscan ? this._overscanManager.getOverscannedRect() : this.getVisibleRect();\n this._visibleLayoutInfos = this._getLayoutInfoMap(rect);\n return this._visibleLayoutInfos;\n }\n\n private _getLayoutInfoMap(rect: Rect, copy = false) {\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n let map = new Map;\n\n for (let layoutInfo of layoutInfos) {\n if (copy) {\n layoutInfo = layoutInfo.copy();\n }\n\n map.set(layoutInfo.key, layoutInfo);\n }\n\n return map;\n }\n\n updateSubviews(forceUpdate = false) {\n if (!this._collection) {\n return;\n }\n\n let visibleLayoutInfos = this.getVisibleLayoutInfos();\n let currentlyVisible = this._visibleViews;\n let toAdd, toRemove, toUpdate;\n\n // If this is a force update, remove and re-add all views.\n // Otherwise, find and update the diff.\n if (forceUpdate) {\n toAdd = visibleLayoutInfos;\n toRemove = currentlyVisible;\n toUpdate = new Set();\n } else {\n ({toAdd, toRemove, toUpdate} = difference(currentlyVisible, visibleLayoutInfos));\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key);\n if (!view || !view.layoutInfo) {\n continue;\n }\n\n let item = this.getItem(visibleLayoutInfos.get(key).key);\n if (view.content === item) {\n toUpdate.delete(key);\n } else {\n // If the view type changes, delete and recreate the view instead of updating\n let {reuseType} = this._getReuseType(view.layoutInfo, item);\n if (view.viewType !== reuseType) {\n toUpdate.delete(key);\n toAdd.add(key);\n toRemove.add(key);\n }\n }\n }\n\n // We are done if the sets are equal\n if (toAdd.size === 0 && toRemove.size === 0 && toUpdate.size === 0) {\n if (this._transaction) {\n this._applyLayoutInfos();\n }\n\n return;\n }\n }\n\n // Track views that should be removed. They are not removed from\n // the DOM immediately, since we may reuse and need to re-insert\n // them back into the DOM anyway.\n let removed = new Set>();\n\n for (let key of toRemove.keys()) {\n let view = this._visibleViews.get(key);\n if (view) {\n removed.add(view);\n this._visibleViews.delete(key);\n\n // If we are in the middle of a transaction, wait until the end\n // of the animations to remove the views from the DOM. Also means\n // we can't reuse those views immediately.\n if (this._transaction) {\n this._transaction.toRemove.set(key, view);\n } else {\n this.reuseView(view);\n }\n }\n }\n\n for (let key of toAdd.keys()) {\n let layoutInfo = visibleLayoutInfos.get(key);\n let view: ReusableView | void;\n\n // If we're in a transaction, and a layout change happens\n // during the animations such that a view that was going\n // to be removed is now not, we don't create a new view\n // since the old one is still in the DOM, marked as toRemove.\n if (this._transaction) {\n // if transaction, get initial layout attributes for the animation\n if (this._transaction.initialLayoutInfo.has(key)) {\n layoutInfo = this._transaction.initialLayoutInfo.get(key);\n }\n\n view = this._transaction.toRemove.get(key);\n if (view) {\n this._transaction.toRemove.delete(key);\n this._applyLayoutInfo(view, layoutInfo);\n }\n }\n\n if (!view) {\n // Create or reuse a view for this row\n view = this.getReusableView(layoutInfo);\n\n // Add the view to the DOM if needed\n if (!removed.has(view)) {\n this._children.add(view);\n }\n }\n\n this._visibleViews.set(key, view);\n removed.delete(view);\n }\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key) as ReusableView;\n this._renderedContent.delete(key);\n this._renderView(view);\n }\n\n // Remove the remaining rows to delete from the DOM\n if (!this._transaction) {\n this.removeViews(removed);\n }\n\n this._correctItemOrder();\n this._flushVisibleViews();\n\n let hasLayoutUpdates = this._transaction && (toAdd.size > 0 || toRemove.size > 0 || this._hasLayoutUpdates());\n if (hasLayoutUpdates) {\n requestAnimationFrame(() => {\n // If we're in a transaction, apply animations to visible views\n // and \"to be removed\" views, which animate off screen.\n if (this._transaction) {\n requestAnimationFrame(() => this._applyLayoutInfos());\n }\n });\n }\n\n return hasLayoutUpdates;\n }\n\n afterRender() {\n if (this.shouldOverscan) {\n this._overscanManager.collectMetrics();\n }\n }\n\n private _flushVisibleViews() {\n // CollectionVirtualizer deals with a flattened set of LayoutInfos, but they can represent heirarchy\n // by referencing a parentKey. Just before rendering the visible views, we rebuild this heirarchy\n // by creating a mapping of views by parent key and recursively calling the delegate's renderWrapper\n // method to build the final tree.\n let viewsByParentKey = new Map([[null, []]]);\n for (let view of this._children) {\n if (view.layoutInfo?.parentKey != null && !viewsByParentKey.has(view.layoutInfo.parentKey)) {\n viewsByParentKey.set(view.layoutInfo.parentKey, []);\n }\n\n viewsByParentKey.get(view.layoutInfo?.parentKey)?.push(view);\n if (!viewsByParentKey.has(view.layoutInfo?.key)) {\n viewsByParentKey.set(view.layoutInfo?.key, []);\n }\n }\n\n let buildTree = (parent: ReusableView, views: ReusableView[]): W[] => views.map(view => {\n let children = viewsByParentKey.get(view.layoutInfo.key);\n return this.delegate.renderWrapper(\n parent,\n view,\n children,\n (childViews) => buildTree(view, childViews)\n );\n });\n\n let children = buildTree(null, viewsByParentKey.get(null));\n this.delegate.setVisibleViews(children);\n }\n\n private _applyLayoutInfo(view: ReusableView, layoutInfo: LayoutInfo) {\n if (view.layoutInfo === layoutInfo) {\n return false;\n }\n\n view.layoutInfo = layoutInfo;\n return true;\n }\n\n private _applyLayoutInfos() {\n let updated = false;\n\n // Apply layout infos to visible views\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n // Apply final layout infos for views that will be removed\n if (this._transaction) {\n for (let view of this._transaction.toRemove.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n for (let view of this._transaction.removed.values()) {\n let cur = view.layoutInfo;\n let layoutInfo = this._transaction.finalLayoutInfo.get(cur.key) || cur;\n layoutInfo = this.layout.getFinalLayoutInfo(layoutInfo.copy());\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n if (updated) {\n this._flushVisibleViews();\n }\n }\n\n private _hasLayoutUpdates() {\n if (!this._transaction) {\n return false;\n }\n\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (!cur) {\n return true;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (\n // Uses equals rather than pointEquals so that width/height changes are taken into account\n !cur.rect.equals(layoutInfo.rect) ||\n cur.opacity !== layoutInfo.opacity ||\n cur.transform !== layoutInfo.transform\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n reuseView(view: ReusableView) {\n view.prepareForReuse();\n this._reusableViews[view.viewType].push(view);\n }\n\n removeViews(toRemove: Set>) {\n for (let view of toRemove) {\n this._children.delete(view);\n }\n }\n\n updateItemSize(key: Key, size: Size) {\n // TODO: we should be able to invalidate a single index path\n // @ts-ignore\n if (!this.layout.updateItemSize) {\n return;\n }\n\n // If the scroll position is currently animating, add the update\n // to a queue to be processed after the animation is complete.\n if (this._scrollAnimation) {\n this._sizeUpdateQueue.set(key, size);\n return;\n }\n\n // @ts-ignore\n let changed = this.layout.updateItemSize(key, size);\n if (changed) {\n this.relayout();\n }\n }\n\n startScrolling() {\n this._isScrolling = true;\n }\n\n endScrolling() {\n this._isScrolling = false;\n this._correctItemOrder();\n this._flushVisibleViews();\n }\n\n private _resetAnimatedContentOffset() {\n // Reset the animated content offset of subviews. See comment in relayoutNow for details.\n if (!this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset = new Point(0, 0);\n this._applyLayoutInfos();\n }\n }\n\n /**\n * Scrolls the item with the given key into view, optionally with an animation.\n * @param key The key of the item to scroll into view.\n * @param duration The duration of the scroll animation.\n */\n scrollToItem(key: Key, options?: ScrollToItemOptions) {\n // key can be 0, so check if null or undefined\n if (key == null) {\n return;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(key);\n if (!layoutInfo) {\n return;\n }\n\n let {\n duration = 300,\n shouldScrollX = true,\n shouldScrollY = true,\n offsetX = 0,\n offsetY = 0\n } = options;\n\n let x = this.visibleRect.x;\n let y = this.visibleRect.y;\n let minX = layoutInfo.rect.x - offsetX;\n let minY = layoutInfo.rect.y - offsetY;\n let maxX = x + this.visibleRect.width;\n let maxY = y + this.visibleRect.height;\n\n if (shouldScrollX) {\n if (minX <= x || maxX === 0) {\n x = minX;\n } else if (layoutInfo.rect.maxX > maxX) {\n x += layoutInfo.rect.maxX - maxX;\n }\n }\n\n if (shouldScrollY) {\n if (minY <= y || maxY === 0) {\n y = minY;\n } else if (layoutInfo.rect.maxY > maxY) {\n y += layoutInfo.rect.maxY - maxY;\n }\n }\n\n return this.scrollTo(new Point(x, y), duration);\n }\n\n /**\n * Performs an animated scroll to the given offset.\n * @param offset - The offset to scroll to.\n * @param duration The duration of the animation.\n * @returns A promise that resolves when the animation is complete.\n */\n scrollTo(offset: Point, duration: number = 300): Promise {\n // Cancel the current scroll animation\n if (this._scrollAnimation) {\n this._scrollAnimation.cancel();\n this._scrollAnimation = null;\n }\n\n // Set the content offset synchronously if the duration is zero\n if (duration <= 0 || this.visibleRect.pointEquals(offset)) {\n this._setContentOffset(offset);\n return Promise.resolve();\n }\n\n this.startScrolling();\n\n this._scrollAnimation = tween(this.visibleRect, offset, duration, easeOut, offset => {this._setContentOffset(offset);});\n this._scrollAnimation.then(() => {\n this._scrollAnimation = null;\n\n // Process view size updates that occurred during the animation.\n // Only views that are still visible will be actually updated.\n for (let [key, size] of this._sizeUpdateQueue) {\n this.updateItemSize(key, size);\n }\n\n this._sizeUpdateQueue.clear();\n this.relayout();\n this._processTransactionQueue();\n this.endScrolling();\n });\n\n return this._scrollAnimation;\n }\n\n private _runTransaction(action: () => void, animated?: boolean) {\n this._startTransaction();\n if (this._nextTransaction) {\n this._nextTransaction.actions.push(action);\n }\n this._endTransaction(animated);\n }\n\n private _startTransaction() {\n if (!this._nextTransaction) {\n this._nextTransaction = new Transaction;\n }\n\n this._nextTransaction.level++;\n }\n\n private _endTransaction(animated?: boolean) {\n if (!this._nextTransaction) {\n return false;\n }\n\n // Save whether the transaction should be animated.\n if (animated != null) {\n this._nextTransaction.animated = animated;\n }\n\n // If we haven't reached level 0, we are still in a\n // nested transaction. Wait for the parent to end.\n if (--this._nextTransaction.level > 0) {\n return false;\n }\n\n // Do nothing for empty transactions\n if (this._nextTransaction.actions.length === 0) {\n this._nextTransaction = null;\n return false;\n }\n\n // Default animations to true\n if (this._nextTransaction.animated == null) {\n this._nextTransaction.animated = true;\n }\n\n // Enqueue the transaction\n this._transactionQueue.push(this._nextTransaction);\n this._nextTransaction = null;\n\n this._processTransactionQueue();\n return true;\n }\n\n private _processTransactionQueue() {\n // If the current transaction is animating, wait until the end\n // to process the next transaction.\n if (this._transaction || this._scrollAnimation) {\n return;\n }\n\n let next = this._transactionQueue.shift();\n if (next) {\n this._performTransaction(next);\n }\n }\n\n private _getContentRect(): Rect {\n return new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n }\n\n private _performTransaction(transaction: Transaction) {\n this._transaction = transaction;\n\n this.relayoutNow({\n transaction: transaction,\n animated: transaction.animated,\n\n beforeLayout: () => {\n // Get the initial layout infos for all views before the updates\n // so we can figure out which views to add and remove.\n if (transaction.animated) {\n transaction.initialMap = this._getLayoutInfoMap(this._getContentRect(), true);\n }\n\n // Apply the actions that occurred during this transaction\n for (let action of transaction.actions) {\n action();\n }\n },\n\n afterLayout: () => {\n // Get the final layout infos after the updates\n if (transaction.animated) {\n transaction.finalMap = this._getLayoutInfoMap(this._getContentRect());\n this._setupTransactionAnimations(transaction);\n } else {\n this._transaction = null;\n }\n },\n\n afterAnimation: () => {\n // Remove and reuse views when animations are done\n if (transaction.toRemove.size > 0 || transaction.removed.size > 0) {\n for (let view of concatIterators(transaction.toRemove.values(), transaction.removed.values())) {\n this._children.delete(view);\n this.reuseView(view);\n }\n }\n\n this._transaction = null;\n\n // Ensure DOM order is correct for accessibility after animations are complete\n this._correctItemOrder();\n this._flushVisibleViews();\n\n this._processTransactionQueue();\n }\n });\n }\n\n private _setupTransactionAnimations(transaction: Transaction) {\n let {initialMap, finalMap} = transaction;\n\n // Store initial and final layout infos for animations\n for (let [key, layoutInfo] of initialMap) {\n if (finalMap.has(key)) {\n // Store the initial layout info for use during animations.\n transaction.initialLayoutInfo.set(key, layoutInfo);\n } else {\n // This view was removed. Store the layout info for use\n // in Layout#getFinalLayoutInfo during animations.\n transaction.finalLayoutInfo.set(layoutInfo.key, layoutInfo);\n }\n }\n\n // Get initial layout infos for views that were added\n for (let [key, layoutInfo] of finalMap) {\n if (!initialMap.has(key)) {\n let initialLayoutInfo = this.layout.getInitialLayoutInfo(layoutInfo.copy());\n transaction.initialLayoutInfo.set(key, initialLayoutInfo);\n }\n }\n\n // Figure out which views were removed.\n for (let [key, view] of this._visibleViews) {\n // If an item has a width of 0, there is no need to remove it from the _visibleViews.\n // Removing an item with width of 0 can cause a loop where the item gets added, removed,\n // added, removed... etc in a loop.\n if (!finalMap.has(key) && view.layoutInfo.rect.width > 0) {\n transaction.removed.set(key, view);\n this._visibleViews.delete(key);\n\n // In case something weird happened, where we have a view but no\n // initial layout info, use the one attached to the view.\n if (view.layoutInfo) {\n if (!transaction.finalLayoutInfo.has(view.layoutInfo.key)) {\n transaction.finalLayoutInfo.set(view.layoutInfo.key, view.layoutInfo);\n }\n }\n }\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {Key, useCallback, useEffect, useMemo, useState} from 'react';\nimport {Layout} from './Layout';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {Virtualizer} from './Virtualizer';\n\ninterface VirtualizerProps {\n renderView(type: string, content: T): V,\n renderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => W[]\n ): W,\n layout: Layout,\n collection: Collection,\n onVisibleRectChange(rect: Rect): void,\n getScrollAnchor?(rect: Rect): Key,\n transitionDuration?: number\n}\n\nexport interface VirtualizerState {\n visibleViews: W[],\n setVisibleRect: (rect: Rect) => void,\n contentSize: Size,\n isAnimating: boolean,\n virtualizer: Virtualizer,\n isScrolling: boolean,\n startScrolling: () => void,\n endScrolling: () => void\n}\n\nexport function useVirtualizerState(opts: VirtualizerProps): VirtualizerState {\n let [visibleViews, setVisibleViews] = useState([]);\n let [contentSize, setContentSize] = useState(new Size());\n let [isAnimating, setAnimating] = useState(false);\n let [isScrolling, setScrolling] = useState(false);\n let virtualizer = useMemo(() => new Virtualizer(), []);\n\n virtualizer.delegate = {\n setVisibleViews,\n setVisibleRect(rect) {\n virtualizer.visibleRect = rect;\n opts.onVisibleRectChange(rect);\n },\n setContentSize,\n renderView: opts.renderView,\n renderWrapper: opts.renderWrapper,\n beginAnimations: () => setAnimating(true),\n endAnimations: () => setAnimating(false),\n getScrollAnchor: opts.getScrollAnchor\n };\n\n virtualizer.layout = opts.layout;\n virtualizer.collection = opts.collection;\n virtualizer.transitionDuration = opts.transitionDuration;\n\n useLayoutEffect(() => {\n virtualizer.afterRender();\n });\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => virtualizer.willUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let setVisibleRect = useCallback((rect) => {\n virtualizer.visibleRect = rect;\n }, [virtualizer]);\n let startScrolling = useCallback(() => {\n virtualizer.startScrolling();\n setScrolling(true);\n }, [virtualizer]);\n let endScrolling = useCallback(() => {\n virtualizer.endScrolling();\n setScrolling(false);\n }, [virtualizer]);\n\n let state = useMemo(() => ({\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n }), [\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n ]);\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ntype Assertiveness = 'assertive' | 'polite';\n\n/* Inspired by https://github.com/AlmeroSteyn/react-aria-live */\nconst LIVEREGION_TIMEOUT_DELAY = 7000;\n\nlet liveAnnouncer: LiveAnnouncer = null;\n\n/**\n * Announces the message using screen reader technology.\n */\nexport function announce(\n message: string,\n assertiveness: Assertiveness = 'assertive',\n timeout = LIVEREGION_TIMEOUT_DELAY\n) {\n if (!liveAnnouncer) {\n liveAnnouncer = new LiveAnnouncer();\n }\n\n liveAnnouncer.announce(message, assertiveness, timeout);\n}\n\n/**\n * Stops all queued announcements.\n */\nexport function clearAnnouncer(assertiveness: Assertiveness) {\n if (liveAnnouncer) {\n liveAnnouncer.clear(assertiveness);\n }\n}\n\n/**\n * Removes the announcer from the DOM.\n */\nexport function destroyAnnouncer() {\n if (liveAnnouncer) {\n liveAnnouncer.destroy();\n liveAnnouncer = null;\n }\n}\n\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass LiveAnnouncer {\n node: HTMLElement;\n assertiveLog: HTMLElement;\n politeLog: HTMLElement;\n\n constructor() {\n this.node = document.createElement('div');\n this.node.dataset.liveAnnouncer = 'true';\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n });\n\n this.assertiveLog = this.createLog('assertive');\n this.node.appendChild(this.assertiveLog);\n\n this.politeLog = this.createLog('polite');\n this.node.appendChild(this.politeLog);\n\n document.body.prepend(this.node);\n }\n\n createLog(ariaLive: string) {\n let node = document.createElement('div');\n node.setAttribute('role', 'log');\n node.setAttribute('aria-live', ariaLive);\n node.setAttribute('aria-relevant', 'additions');\n return node;\n }\n\n destroy() {\n if (!this.node) {\n return;\n }\n\n document.body.removeChild(this.node);\n this.node = null;\n }\n\n announce(message: string, assertiveness = 'assertive', timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) {\n return;\n }\n\n let node = document.createElement('div');\n node.textContent = message;\n\n if (assertiveness === 'assertive') {\n this.assertiveLog.appendChild(node);\n } else {\n this.politeLog.appendChild(node);\n }\n\n if (message !== '') {\n setTimeout(() => {\n node.remove();\n }, timeout);\n }\n }\n\n clear(assertiveness: Assertiveness) {\n if (!this.node) {\n return;\n }\n\n if (!assertiveness || assertiveness === 'assertive') {\n this.assertiveLog.innerHTML = '';\n }\n\n if (!assertiveness || assertiveness === 'polite') {\n this.politeLog.innerHTML = '';\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {GridCollection} from '@react-types/grid';\nimport type {GridState} from '@react-stately/grid';\nimport {Key} from 'react';\nimport type {KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate,\n actions: {\n onRowAction: (key: Key) => void,\n onCellAction: (key: Key) => void\n }\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap = new WeakMap>, GridMapShared>();\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '@react-aria/live-announcer';\nimport {Collection, Node, Selection} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key, useRef} from 'react';\nimport {SelectionManager} from '@react-stately/selection';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useUpdateEffect} from '@react-aria/utils';\n\nexport interface GridSelectionAnnouncementProps {\n /**\n * A function that returns the text that should be announced by assistive technology when a row is added or removed from selection.\n * @default (key) => state.collection.getItem(key)?.textValue\n */\n getRowText?: (key: Key) => string\n}\n\ninterface GridSelectionState {\n /** A collection of items in the grid. */\n collection: Collection>,\n /** A set of items that are disabled. */\n disabledKeys: Set,\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\nexport function useGridSelectionAnnouncement(props: GridSelectionAnnouncementProps, state: GridSelectionState) {\n let {\n getRowText = (key) => state.collection.getItem(key)?.textValue\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n // Many screen readers do not announce when items in a grid are selected/deselected.\n // We do this using an ARIA live region.\n let selection = state.selectionManager.rawSelection;\n let lastSelection = useRef(selection);\n useUpdateEffect(() => {\n if (!state.selectionManager.isFocused) {\n lastSelection.current = selection;\n\n return;\n }\n\n let addedKeys = diffSelection(selection, lastSelection.current);\n let removedKeys = diffSelection(lastSelection.current, selection);\n\n // If adding or removing a single row from the selection, announce the name of that item.\n let isReplace = state.selectionManager.selectionBehavior === 'replace';\n let messages = [];\n\n if ((state.selectionManager.selectedKeys.size === 1 && isReplace)) {\n if (state.collection.getItem(state.selectionManager.selectedKeys.keys().next().value)) {\n let currentSelectionText = getRowText(state.selectionManager.selectedKeys.keys().next().value);\n if (currentSelectionText) {\n messages.push(stringFormatter.format('selectedItem', {item: currentSelectionText}));\n }\n }\n } else if (addedKeys.size === 1 && removedKeys.size === 0) {\n let addedText = getRowText(addedKeys.keys().next().value);\n if (addedText) {\n messages.push(stringFormatter.format('selectedItem', {item: addedText}));\n }\n } else if (removedKeys.size === 1 && addedKeys.size === 0) {\n if (state.collection.getItem(removedKeys.keys().next().value)) {\n let removedText = getRowText(removedKeys.keys().next().value);\n if (removedText) {\n messages.push(stringFormatter.format('deselectedItem', {item: removedText}));\n }\n }\n }\n\n // Announce how many items are selected, except when selecting the first item.\n if (state.selectionManager.selectionMode === 'multiple') {\n if (messages.length === 0 || selection === 'all' || selection.size > 1 || lastSelection.current === 'all' || lastSelection.current?.size > 1) {\n messages.push(selection === 'all'\n ? stringFormatter.format('selectedAll')\n : stringFormatter.format('selectedCount', {count: selection.size})\n );\n }\n }\n\n if (messages.length > 0) {\n announce(messages.join(' '));\n }\n\n lastSelection.current = selection;\n }, [selection]);\n}\n\nfunction diffSelection(a: Selection, b: Selection): Set {\n let res = new Set();\n if (a === 'all' || b === 'all') {\n return res;\n }\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useDescription} from '@react-aria/utils';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\nexport interface HighlightSelectionDescriptionProps {\n selectionManager: MultipleSelectionManager,\n hasItemActions?: boolean\n}\n\n/**\n * Computes the description for a grid selectable collection.\n * @param props\n */\nexport function useHighlightSelectionDescription(props: HighlightSelectionDescriptionProps): AriaLabelingProps {\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let modality = useInteractionModality();\n // null is the default if the user hasn't interacted with the table at all yet or the rest of the page\n let shouldLongPress = (modality === 'pointer' || modality === 'virtual' || modality == null)\n && typeof window !== 'undefined' && 'ontouchstart' in window;\n\n let interactionDescription = useMemo(() => {\n let selectionMode = props.selectionManager.selectionMode;\n let selectionBehavior = props.selectionManager.selectionBehavior;\n\n let message = undefined;\n if (shouldLongPress) {\n message = stringFormatter.format('longPressToSelect');\n }\n\n return selectionBehavior === 'replace' && selectionMode !== 'none' && props.hasItemActions ? message : undefined;\n }, [props.selectionManager.selectionMode, props.selectionManager.selectionBehavior, props.hasItemActions, stringFormatter, shouldLongPress]);\n\n let descriptionProps = useDescription(interactionDescription);\n return descriptionProps;\n}\n","import {AriaCheckboxProps} from '@react-types/checkbox';\nimport {GridCollection} from '@react-types/grid';\nimport {GridState} from '@react-stately/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface AriaGridSelectionCheckboxProps {\n /** A unique key for the checkbox. */\n key: Key\n}\n\nexport interface GridSelectionCheckboxAria {\n /** Props for the row selection checkbox element. */\n checkboxProps: AriaCheckboxProps\n}\n\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid.\n * @param props - Props for the selection checkbox.\n * @param state - State of the grid, as returned by `useGridState`.\n */\nexport function useGridSelectionCheckbox>(props: AriaGridSelectionCheckboxProps, state: GridState): GridSelectionCheckboxAria {\n let {key} = props;\n\n let manager = state.selectionManager;\n let checkboxId = useId();\n let isDisabled = !state.selectionManager.canSelectItem(key);\n let isSelected = state.selectionManager.isSelected(key);\n\n let onChange = () => manager.select(key);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return {\n checkboxProps: {\n id: checkboxId,\n 'aria-label': stringFormatter.format('select'),\n isSelected,\n isDisabled,\n onChange\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"deselectedItem\": \"{item} غير المحدد\",\n \"longPressToSelect\": \"اضغط مطولًا للدخول إلى وضع التحديد.\",\n \"select\": \"تحديد\",\n \"selectedAll\": \"جميع العناصر المحددة.\",\n \"selectedCount\": \"{count, plural, =0 {لم يتم تحديد عناصر} one {# عنصر محدد} other {# عنصر محدد}}.\",\n \"selectedItem\": \"{item} المحدد\"\n}\n","{\n \"deselectedItem\": \"{item} не е избран.\",\n \"longPressToSelect\": \"Натиснете и задръжте за да влезете в избирателен режим.\",\n \"select\": \"Изберете\",\n \"selectedAll\": \"Всички елементи са избрани.\",\n \"selectedCount\": \"{count, plural, =0 {Няма избрани елементи} one {# избран елемент} other {# избрани елементи}}.\",\n \"selectedItem\": \"{item} избран.\"\n}\n","{\n \"deselectedItem\": \"Položka {item} není vybrána.\",\n \"longPressToSelect\": \"Dlouhým stisknutím přejdete do režimu výběru.\",\n \"select\": \"Vybrat\",\n \"selectedAll\": \"Vybrány všechny položky.\",\n \"selectedCount\": \"{count, plural, =0 {Nevybrány žádné položky} one {Vybrána # položka} other {Vybráno # položek}}.\",\n \"selectedItem\": \"Vybrána položka {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} ikke valgt.\",\n \"longPressToSelect\": \"Lav et langt tryk for at aktivere valgtilstand.\",\n \"select\": \"Vælg\",\n \"selectedAll\": \"Alle elementer valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer valgt} one {# element valgt} other {# elementer valgt}}.\",\n \"selectedItem\": \"{item} valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} nicht ausgewählt.\",\n \"longPressToSelect\": \"Gedrückt halten, um Auswahlmodus zu öffnen.\",\n \"select\": \"Auswählen\",\n \"selectedAll\": \"Alle Elemente ausgewählt.\",\n \"selectedCount\": \"{count, plural, =0 {Keine Elemente ausgewählt} one {# Element ausgewählt} other {# Elemente ausgewählt}}.\",\n \"selectedItem\": \"{item} ausgewählt.\"\n}\n","{\n \"deselectedItem\": \"Δεν επιλέχθηκε το στοιχείο {item}.\",\n \"longPressToSelect\": \"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.\",\n \"select\": \"Επιλογή\",\n \"selectedAll\": \"Επιλέχθηκαν όλα τα στοιχεία.\",\n \"selectedCount\": \"{count, plural, =0 {Δεν επιλέχθηκαν στοιχεία} one {Επιλέχθηκε # στοιχείο} other {Επιλέχθηκαν # στοιχεία}}.\",\n \"selectedItem\": \"Επιλέχθηκε το στοιχείο {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} not selected.\",\n \"select\": \"Select\",\n \"selectedCount\": \"{count, plural, =0 {No items selected} one {# item selected} other {# items selected}}.\",\n \"selectedAll\": \"All items selected.\",\n \"selectedItem\": \"{item} selected.\",\n \"longPressToSelect\": \"Long press to enter selection mode.\"\n}\n","{\n \"deselectedItem\": \"{item} no seleccionado.\",\n \"longPressToSelect\": \"Mantenga pulsado para abrir el modo de selección.\",\n \"select\": \"Seleccionar\",\n \"selectedAll\": \"Todos los elementos seleccionados.\",\n \"selectedCount\": \"{count, plural, =0 {Ningún elemento seleccionado} one {# elemento seleccionado} other {# elementos seleccionados}}.\",\n \"selectedItem\": \"{item} seleccionado.\"\n}\n","{\n \"deselectedItem\": \"{item} pole valitud.\",\n \"longPressToSelect\": \"Valikurežiimi sisenemiseks vajutage pikalt.\",\n \"select\": \"Vali\",\n \"selectedAll\": \"Kõik üksused valitud.\",\n \"selectedCount\": \"{count, plural, =0 {Üksusi pole valitud} one {# üksus valitud} other {# üksust valitud}}.\",\n \"selectedItem\": \"{item} valitud.\"\n}\n","{\n \"deselectedItem\": \"Kohdetta {item} ei valittu.\",\n \"longPressToSelect\": \"Siirry valintatilaan painamalla pitkään.\",\n \"select\": \"Valitse\",\n \"selectedAll\": \"Kaikki kohteet valittu.\",\n \"selectedCount\": \"{count, plural, =0 {Ei yhtään kohdetta valittu} one {# kohde valittu} other {# kohdetta valittu}}.\",\n \"selectedItem\": \"{item} valittu.\"\n}\n","{\n \"deselectedItem\": \"{item} non sélectionné.\",\n \"longPressToSelect\": \"Appuyez de manière prolongée pour passer en mode de sélection.\",\n \"select\": \"Sélectionner\",\n \"selectedAll\": \"Tous les éléments sélectionnés.\",\n \"selectedCount\": \"{count, plural, =0 {Aucun élément sélectionné} one {# élément sélectionné} other {# éléments sélectionnés}}.\",\n \"selectedItem\": \"{item} sélectionné.\"\n}\n","{\n \"deselectedItem\": \"{item} לא נבחר.\",\n \"longPressToSelect\": \"הקשה ארוכה לכניסה למצב בחירה.\",\n \"select\": \"בחר\",\n \"selectedAll\": \"כל הפריטים נבחרו.\",\n \"selectedCount\": \"{count, plural, =0 {לא נבחרו פריטים} one {פריט # נבחר} other {# פריטים נבחרו}}.\",\n \"selectedItem\": \"{item} נבחר.\"\n}\n","{\n \"deselectedItem\": \"Stavka {item} nije odabrana.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u način odabira.\",\n \"select\": \"Odaberite\",\n \"selectedAll\": \"Odabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije odabrana nijedna stavka} one {Odabrana je # stavka} other {Odabrano je # stavki}}.\",\n \"selectedItem\": \"Stavka {item} je odabrana.\"\n}\n","{\n \"deselectedItem\": \"{item} nincs kijelölve.\",\n \"longPressToSelect\": \"Nyomja hosszan a kijelöléshez.\",\n \"select\": \"Kijelölés\",\n \"selectedAll\": \"Az összes elem kijelölve.\",\n \"selectedCount\": \"{count, plural, =0 {Egy elem sincs kijelölve} one {# elem kijelölve} other {# elem kijelölve}}.\",\n \"selectedItem\": \"{item} kijelölve.\"\n}\n","{\n \"deselectedItem\": \"{item} non selezionato.\",\n \"longPressToSelect\": \"Premi a lungo per passare alla modalità di selezione.\",\n \"select\": \"Seleziona\",\n \"selectedAll\": \"Tutti gli elementi selezionati.\",\n \"selectedCount\": \"{count, plural, =0 {Nessun elemento selezionato} one {# elemento selezionato} other {# elementi selezionati}}.\",\n \"selectedItem\": \"{item} selezionato.\"\n}\n","{\n \"deselectedItem\": \"{item} が選択されていません。\",\n \"longPressToSelect\": \"長押しして選択モードを開きます。\",\n \"select\": \"選択\",\n \"selectedAll\": \"すべての項目を選択しました。\",\n \"selectedCount\": \"{count, plural, =0 {項目が選択されていません} one {# 項目を選択しました} other {# 項目を選択しました}}。\",\n \"selectedItem\": \"{item} を選択しました。\"\n}\n","{\n \"deselectedItem\": \"{item}이(가) 선택되지 않았습니다.\",\n \"longPressToSelect\": \"선택 모드로 들어가려면 길게 누르십시오.\",\n \"select\": \"선택\",\n \"selectedAll\": \"모든 항목이 선택되었습니다.\",\n \"selectedCount\": \"{count, plural, =0 {선택된 항목이 없습니다} one {#개 항목이 선택되었습니다} other {#개 항목이 선택되었습니다}}.\",\n \"selectedItem\": \"{item}이(가) 선택되었습니다.\"\n}\n","{\n \"deselectedItem\": \"{item} nepasirinkta.\",\n \"longPressToSelect\": \"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.\",\n \"select\": \"Pasirinkti\",\n \"selectedAll\": \"Pasirinkti visi elementai.\",\n \"selectedCount\": \"{count, plural, =0 {Nepasirinktas nė vienas elementas} one {Pasirinktas # elementas} other {Pasirinkta elementų: #}}.\",\n \"selectedItem\": \"Pasirinkta: {item}.\"\n}\n","{\n \"deselectedItem\": \"Vienums {item} nav atlasīts.\",\n \"longPressToSelect\": \"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.\",\n \"select\": \"Atlasīt\",\n \"selectedAll\": \"Atlasīti visi vienumi.\",\n \"selectedCount\": \"{count, plural, =0 {Nav atlasīts neviens vienums} one {Atlasīto vienumu skaits: #} other {Atlasīto vienumu skaits: #}}.\",\n \"selectedItem\": \"Atlasīts vienums {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} er ikke valgt.\",\n \"longPressToSelect\": \"Bruk et langt trykk for å gå inn i valgmodus.\",\n \"select\": \"Velg\",\n \"selectedAll\": \"Alle elementer er valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer er valgt} one {# element er valgt} other {# elementer er valgt}}.\",\n \"selectedItem\": \"{item} er valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} niet geselecteerd.\",\n \"longPressToSelect\": \"Druk lang om de selectiemodus te openen.\",\n \"select\": \"Selecteren\",\n \"selectedAll\": \"Alle items geselecteerd.\",\n \"selectedCount\": \"{count, plural, =0 {Geen items geselecteerd} one {# item geselecteerd} other {# items geselecteerd}}.\",\n \"selectedItem\": \"{item} geselecteerd.\"\n}\n","{\n \"deselectedItem\": \"Nie zaznaczono {item}.\",\n \"longPressToSelect\": \"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.\",\n \"select\": \"Zaznacz\",\n \"selectedAll\": \"Wszystkie zaznaczone elementy.\",\n \"selectedCount\": \"{count, plural, =0 {Nie zaznaczono żadnych elementów} one {# zaznaczony element} other {# zaznaczonych elementów}}.\",\n \"selectedItem\": \"Zaznaczono {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Mantenha pressionado para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Prima continuamente para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} neselectat.\",\n \"longPressToSelect\": \"Apăsați lung pentru a intra în modul de selectare.\",\n \"select\": \"Selectare\",\n \"selectedAll\": \"Toate elementele selectate.\",\n \"selectedCount\": \"{count, plural, =0 {Niciun element selectat} one {# element selectat} other {# elemente selectate}}.\",\n \"selectedItem\": \"{item} selectat.\"\n}\n","{\n \"deselectedItem\": \"{item} не выбрано.\",\n \"longPressToSelect\": \"Нажмите и удерживайте для входа в режим выбора.\",\n \"select\": \"Выбрать\",\n \"selectedAll\": \"Выбраны все элементы.\",\n \"selectedCount\": \"{count, plural, =0 {Нет выбранных элементов} one {# элемент выбран} other {# элементов выбрано}}.\",\n \"selectedItem\": \"{item} выбрано.\"\n}\n","{\n \"deselectedItem\": \"Nevybraté položky: {item}.\",\n \"longPressToSelect\": \"Dlhším stlačením prejdite do režimu výberu.\",\n \"select\": \"Vybrať\",\n \"selectedAll\": \"Všetky vybraté položky.\",\n \"selectedCount\": \"{count, plural, =0 {Žiadne vybraté položky} one {# vybratá položka} other {Počet vybratých položiek:#}}.\",\n \"selectedItem\": \"Vybraté položky: {item}.\"\n}\n","{\n \"deselectedItem\": \"Element {item} ni izbran.\",\n \"longPressToSelect\": \"Za izbirni način pritisnite in dlje časa držite.\",\n \"select\": \"Izberite\",\n \"selectedAll\": \"Vsi elementi so izbrani.\",\n \"selectedCount\": \"{count, plural, =0 {Noben element ni izbran} one {# element je izbran} other {# elementov je izbranih}}.\",\n \"selectedItem\": \"Element {item} je izbran.\"\n}\n","{\n \"deselectedItem\": \"{item} nije izabrano.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u režim biranja.\",\n \"select\": \"Izaberite\",\n \"selectedAll\": \"Izabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije izabrana nijedna stavka} one {Izabrana je # stavka} other {Izabrano je # stavki}}.\",\n \"selectedItem\": \"{item} je izabrano.\"\n}\n","{\n \"deselectedItem\": \"{item} ej markerat.\",\n \"longPressToSelect\": \"Tryck länge när du vill öppna väljarläge.\",\n \"select\": \"Markera\",\n \"selectedAll\": \"Alla markerade objekt.\",\n \"selectedCount\": \"{count, plural, =0 {Inga markerade objekt} one {# markerat objekt} other {# markerade objekt}}.\",\n \"selectedItem\": \"{item} markerat.\"\n}\n","{\n \"deselectedItem\": \"{item} seçilmedi.\",\n \"longPressToSelect\": \"Seçim moduna girmek için uzun basın.\",\n \"select\": \"Seç\",\n \"selectedAll\": \"Tüm ögeler seçildi.\",\n \"selectedCount\": \"{count, plural, =0 {Hiçbir öge seçilmedi} one {# öge seçildi} other {# öge seçildi}}.\",\n \"selectedItem\": \"{item} seçildi.\"\n}\n","{\n \"deselectedItem\": \"{item} не вибрано.\",\n \"longPressToSelect\": \"Виконайте довге натиснення, щоб перейти в режим вибору.\",\n \"select\": \"Вибрати\",\n \"selectedAll\": \"Усі елементи вибрано.\",\n \"selectedCount\": \"{count, plural, =0 {Жодних елементів не вибрано} one {# елемент вибрано} other {Вибрано елементів: #}}.\",\n \"selectedItem\": \"{item} вибрано.\"\n}\n","{\n \"deselectedItem\": \"未选择 {item}。\",\n \"longPressToSelect\": \"长按以进入选择模式。\",\n \"select\": \"选择\",\n \"selectedAll\": \"已选择所有项目。\",\n \"selectedCount\": \"{count, plural, =0 {未选择项目} one {已选择 # 个项目} other {已选择 # 个项目}}。\",\n \"selectedItem\": \"已选择 {item}。\"\n}\n","{\n \"deselectedItem\": \"未選取「{item}」。\",\n \"longPressToSelect\": \"長按以進入選擇模式。\",\n \"select\": \"選取\",\n \"selectedAll\": \"已選取所有項目。\",\n \"selectedCount\": \"{count, plural, =0 {未選取任何項目} one {已選取 # 個項目} other {已選取 # 個項目}}。\",\n \"selectedItem\": \"已選取「{item}」。\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport type {ListState} from '@react-stately/list';\n\ninterface ListMapShared {\n id: string,\n onAction: (key: Key) => void\n}\n\n// Used to share:\n// id of the list and onAction between useList, useListItem, and useListSelectionCheckbox\nexport const listMap = new WeakMap, ListMapShared>();\n\nexport function getRowId(state: ListState, key: Key) {\n let {id} = listMap.get(state);\n if (!id) {\n throw new Error('Unknown list');\n }\n\n return `${id}-${normalizeKey(key)}`;\n}\n\nexport function normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n KeyboardDelegate,\n MultipleSelection\n} from '@react-types/shared';\nimport {filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {listMap} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useGridSelectionAnnouncement, useHighlightSelectionDescription} from '@react-aria/grid';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface GridListProps extends CollectionBase, MultipleSelection {\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\nexport interface AriaGridListProps extends GridListProps, DOMProps, AriaLabelingProps {}\n\nexport interface AriaGridListOptions extends Omit, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList(props: AriaGridListOptions, state: ListState, ref: RefObject): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n onAction\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate: keyboardDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace'\n });\n\n let id = useId();\n listMap.set(state, {id, onAction});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n state.collection.size === 0 ? {} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, Node as RSNode} from '@react-types/shared';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {getRowId, listMap} from './utils';\nimport {isFocusVisible} from '@react-aria/interactions';\nimport type {ListState} from '@react-stately/list';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {KeyboardEvent as ReactKeyboardEvent, RefObject} from 'react';\nimport {SelectableItemStates, useSelectableItem} from '@react-aria/selection';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaGridListItemOptions {\n /** An object representing the list item. Contains all the relevant information that makes up the list row. */\n node: RSNode,\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes,\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes,\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem(props: AriaGridListItemOptions, state: ListState, ref: RefObject): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {\n node,\n isVirtualized,\n shouldSelectOnPressUp\n } = props;\n\n let {direction} = useLocale();\n let {onAction} = listMap.get(state);\n let descriptionId = useSlotId();\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (!ref.current.contains(document.activeElement)) {\n focusSafely(ref.current);\n }\n };\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp,\n onAction: onAction ? () => onAction(node.key) : undefined,\n focus\n });\n\n let onKeyDown = (e: ReactKeyboardEvent) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n switch (e.key) {\n case 'ArrowLeft': {\n // Find the next focusable element within the row.\n let focusable = direction === 'rtl'\n ? walker.nextNode() as FocusableElement\n : walker.previousNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n let focusable = direction === 'rtl'\n ? walker.previousNode() as FocusableElement\n : walker.nextNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && ref.current.contains(e.target as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = (e) => {\n if (e.target !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let rowProps: DOMAttributes = mergeProps(itemProps, {\n role: 'row',\n onKeyDownCapture: onKeyDown,\n onFocus,\n 'aria-label': node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key) ? state.selectionManager.isSelected(node.key) : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby': descriptionId && node.textValue ? `${getRowId(state, node.key)} ${descriptionId}` : undefined,\n id: getRowId(state, node.key)\n });\n\n if (isVirtualized) {\n rowProps['aria-rowindex'] = node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n return {\n rowProps,\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridSelectionCheckboxProps, GridSelectionCheckboxAria, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {getRowId} from './utils';\nimport type {ListState} from '@react-stately/list';\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid list.\n * @param props - Props for the selection checkbox.\n * @param state - State of the list, as returned by `useListState`.\n */\nexport function useGridListSelectionCheckbox(props: AriaGridSelectionCheckboxProps, state: ListState): GridSelectionCheckboxAria {\n let {key} = props;\n const {checkboxProps} = useGridSelectionCheckbox(props, state as any);\n\n return {\n checkboxProps: {\n ...checkboxProps,\n 'aria-labelledby': `${checkboxProps.id} ${getRowId(state, key)}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DropTarget, DropTargetDelegate, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[],\n validRect: Rect\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout extends Layout> implements KeyboardDelegate, DropTargetDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection>, key: Key) => number;\n protected layoutInfos: Map;\n protected layoutNodes: Map;\n protected contentSize: Size;\n collection: Collection>;\n disabledKeys: Set = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n protected lastValidRect: Rect;\n protected validRect: Rect;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n this.lastValidRect = new Rect();\n this.validRect = new Rect();\n this.contentSize = new Size();\n }\n\n getLayoutInfo(key: Key) {\n let res = this.layoutInfos.get(key);\n\n // If the layout info wasn't found, it might be outside the bounds of the area that we've\n // computed layout for so far. This can happen when accessing a random key, e.g pressing Home/End.\n // Compute the full layout and try again.\n if (!res && this.validRect.area < this.contentSize.area && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = new Rect(0, 0, Infinity, Infinity);\n this.rootNodes = this.buildCollection();\n this.validRect = new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n res = this.layoutInfos.get(key);\n }\n\n return res;\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n // If layout hasn't yet been done for the requested rect, union the\n // new rect with the existing valid rect, and recompute.\n if (!this.validRect.containsRect(rect) && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = this.validRect.union(rect);\n this.rootNodes = this.buildCollection();\n }\n\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky || this.virtualizer.isPersistedKey(node.layoutInfo.key);\n }\n\n protected shouldInvalidateEverything(invalidationContext: InvalidationContext, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n return invalidationContext.sizeChanged;\n }\n\n validate(invalidationContext: InvalidationContext, unknown>) {\n this.collection = this.virtualizer.collection;\n\n // Reset valid rect if we will have to invalidate everything.\n // Otherwise we can reuse cached layout infos outside the current visible rect.\n this.invalidateEverything = this.shouldInvalidateEverything(invalidationContext);\n if (this.invalidateEverything) {\n this.lastValidRect = this.validRect;\n this.validRect = this.virtualizer.getVisibleRect();\n }\n\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection && this.collection !== this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n this.invalidateEverything = false;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let skipped = 0;\n let nodes = [];\n for (let node of this.collection) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (node.type === 'item' && y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n\n if (node.type === 'item' && y > this.validRect.maxY) {\n y += (this.collection.size - (nodes.length + skipped)) * rowHeight;\n break;\n }\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n isValid(node: Node, y: number) {\n let cached = this.layoutNodes.get(node.key);\n return (\n !this.invalidateEverything &&\n cached &&\n cached.node === node &&\n y === (cached.header || cached.layoutInfo).rect.y &&\n cached.layoutInfo.rect.intersects(this.lastValidRect) &&\n cached.validRect.containsRect(cached.layoutInfo.rect.intersection(this.validRect))\n );\n }\n\n buildChild(node: Node, x: number, y: number): LayoutNode {\n if (this.isValid(node, y)) {\n return this.layoutNodes.get(node.key);\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let skipped = 0;\n let children = [];\n for (let child of node.childNodes) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n\n if (y > this.validRect.maxY) {\n // Estimate the remaining height for rows that we don't need to layout right now.\n y += ([...node.childNodes].length - (children.length + skipped)) * rowHeight;\n break;\n }\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children,\n validRect: layoutInfo.rect.intersection(this.validRect)\n };\n }\n\n buildItem(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || node !== previousLayoutNode.node || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n // allow overflow so the focus ring/selection ring can extend outside to overlap with the adjacent items borders\n layoutInfo.allowOverflow = true;\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo,\n validRect: layoutInfo.rect\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by reseting validRect.\n n.validRect = new Rect();\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey(): Key | null {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey(): Key | null {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget {\n x += this.virtualizer.visibleRect.x;\n y += this.virtualizer.visibleRect.y;\n\n let key = this.virtualizer.keyAtPoint(new Point(x, y));\n if (key == null || this.collection.size === 0) {\n return {type: 'root'};\n }\n\n let layoutInfo = this.getLayoutInfo(key);\n let rect = layoutInfo.rect;\n let target: DropTarget = {\n type: 'item',\n key: layoutInfo.key,\n dropPosition: 'on'\n };\n\n // If dropping on the item isn't accepted, try the target before or after depending on the y position.\n // Otherwise, if dropping on the item is accepted, still try the before/after positions if within 10px\n // of the top or bottom of the item.\n if (!isValidDropTarget(target)) {\n if (y <= rect.y + rect.height / 2 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n } else if (y <= rect.y + 10 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (y >= rect.maxY - 10 && isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n\n return target;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class ListCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>) {\n this.iterable = nodes;\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && node.type === 'section') {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {ListCollection} from './ListCollection';\nimport {MultipleSelectionStateProps, SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface ListProps extends CollectionBase, MultipleSelectionStateProps {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface ListState {\n /** A collection of items in the list. */\n collection: Collection>,\n\n /** A set of items that are disabled. */\n disabledKeys: Set,\n\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for list-like components. Handles building a collection\n * of items from props, and manages multiple selection state.\n */\nexport function useListState(props: ListProps): ListState {\n let {filter} = props;\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let factory = nodes => filter ? new ListCollection(filter(nodes)) : new ListCollection(nodes as Iterable>);\n let context = useMemo(() => ({suppressTextValueWarning: props.suppressTextValueWarning}), [props.suppressTextValueWarning]);\n\n let collection = useCollection(props, factory, context, [filter]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collection, selectionState.focusedKey]);\n\n return {\n collection,\n disabledKeys,\n selectionManager: new SelectionManager(collection, selectionState)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: DOMAttributes | LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, HelpTextProps, Validation} from '@react-types/shared';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\nexport interface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaProgressBarProps} from '@react-types/progress';\nimport {clamp, filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {useLabel} from '@react-aria/label';\nimport {useNumberFormatter} from '@react-aria/i18n';\n\nexport interface ProgressBarAria {\n /** Props for the progress bar container element. */\n progressBarProps: DOMAttributes,\n /** Props for the progress bar's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a progress bar component.\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n */\nexport function useProgressBar(props: AriaProgressBarProps): ProgressBarAria {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n valueLabel,\n isIndeterminate,\n formatOptions = {\n style: 'percent'\n }\n } = props;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Progress bar is not an HTML input element so it\n // shouldn't be labeled by a
    \n );\n}\n\nlet _ProgressBarBase = React.forwardRef(ProgressBarBase);\nexport {_ProgressBarBase as ProgressBarBase};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {ProgressBarBase} from './ProgressBarBase';\nimport React from 'react';\nimport {SpectrumProgressBarProps} from '@react-types/progress';\nimport styles from '@adobe/spectrum-css-temp/components/barloader/vars.css';\nimport {useProgressBar} from '@react-aria/progress';\n\nfunction ProgressBar(props: SpectrumProgressBarProps, ref: DOMRef) {\n let {variant, ...otherProps} = props;\n const {\n progressBarProps,\n labelProps\n } = useProgressBar(props);\n\n return (\n \n );\n}\n\n/**\n * ProgressBars show the progression of a system operation: downloading, uploading, processing, etc., in a visual way.\n * They can represent either determinate or indeterminate progress.\n */\nlet _ProgressBar = React.forwardRef(ProgressBar);\nexport {_ProgressBar as ProgressBar};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {clamp} from '@react-aria/utils';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport React, {CSSProperties} from 'react';\nimport {SpectrumProgressCircleProps} from '@react-types/progress';\nimport styles from '@adobe/spectrum-css-temp/components/circleloader/vars.css';\nimport {useProgressBar} from '@react-aria/progress';\n\nfunction ProgressCircle(props: SpectrumProgressCircleProps, ref: DOMRef) {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n size = 'M',\n variant,\n isIndeterminate = false,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...otherProps\n } = props;\n let domRef = useDOMRef(ref);\n let {styleProps} = useStyleProps(otherProps);\n\n value = clamp(value, minValue, maxValue);\n let {progressBarProps} = useProgressBar({...props, value});\n\n let subMask1Style: CSSProperties = {};\n let subMask2Style: CSSProperties = {};\n if (!isIndeterminate) {\n let percentage = (value - minValue) / (maxValue - minValue) * 100;\n let angle;\n if (percentage > 0 && percentage <= 50) {\n angle = -180 + (percentage / 50 * 180);\n subMask1Style.transform = `rotate(${angle}deg)`;\n subMask2Style.transform = 'rotate(-180deg)';\n } else if (percentage > 50) {\n angle = -180 + (percentage - 50) / 50 * 180;\n subMask1Style.transform = 'rotate(0deg)';\n subMask2Style.transform = `rotate(${angle}deg)`;\n }\n }\n\n if (!ariaLabel && !ariaLabelledby) {\n console.warn('ProgressCircle requires an aria-label or aria-labelledby attribute for accessibility');\n }\n\n return (\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n}\n\n/**\n * ProgressCircles show the progression of a system operation such as downloading, uploading, processing, etc. in a visual way.\n * They can represent determinate or indeterminate progress.\n */\nlet _ProgressCircle = React.forwardRef(ProgressCircle);\nexport {_ProgressCircle as ProgressCircle};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\n\nexport type RTLOffsetType =\n | 'negative'\n | 'positive-descending'\n | 'positive-ascending';\n\nlet cachedRTLResult: RTLOffsetType | null = null;\n\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/bvaughn/react-window/blob/master/src/createGridComponent.js\n\n// According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\nexport function getRTLOffsetType(recalculate: boolean = false): RTLOffsetType {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement('div');\n const outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n\n const innerDiv = document.createElement('div');\n const innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n\n outerDiv.appendChild(innerDiv);\n\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nexport function getScrollLeft(node: Element, direction: Direction): number {\n let {scrollLeft} = node;\n\n // scrollLeft in rtl locales differs across browsers, so normalize.\n // See comment by getRTLOffsetType below for details.\n if (direction === 'rtl') {\n let {scrollWidth, clientWidth} = node;\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollLeft = -scrollLeft;\n break;\n case 'positive-descending':\n scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n return scrollLeft;\n}\n\nexport function setScrollLeft(node: Element, direction: Direction, scrollLeft: number) {\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollLeft = -scrollLeft;\n break;\n case 'positive-ascending':\n break;\n default: {\n const {clientWidth, scrollWidth} = node;\n scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n }\n\n node.scrollLeft = scrollLeft;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport {flushSync} from 'react-dom';\nimport {getScrollLeft} from './utils';\nimport React, {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport {Rect, Size} from '@react-stately/virtualizer';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\nimport {useResizeObserver} from '@react-aria/utils';\n\ninterface ScrollViewProps extends HTMLAttributes {\n contentSize: Size,\n onVisibleRectChange: (rect: Rect) => void,\n children: ReactNode,\n innerStyle?: CSSProperties,\n sizeToFit?: 'width' | 'height',\n onScrollStart?: () => void,\n onScrollEnd?: () => void,\n scrollDirection?: 'horizontal' | 'vertical' | 'both'\n}\n\nfunction ScrollView(props: ScrollViewProps, ref: RefObject) {\n let {\n contentSize,\n onVisibleRectChange,\n children,\n innerStyle,\n sizeToFit,\n onScrollStart,\n onScrollEnd,\n scrollDirection = 'both',\n ...otherProps\n } = props;\n\n let defaultRef = useRef();\n ref = ref || defaultRef;\n let state = useRef({\n scrollTop: 0,\n scrollLeft: 0,\n scrollEndTime: 0,\n scrollTimeout: null,\n width: 0,\n height: 0,\n isScrolling: false\n }).current;\n let {direction} = useLocale();\n\n let [isScrolling, setScrolling] = useState(false);\n let onScroll = useCallback((e) => {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (props.onScroll) {\n props.onScroll(e);\n }\n\n flushSync(() => {\n let scrollTop = e.currentTarget.scrollTop;\n let scrollLeft = getScrollLeft(e.currentTarget, direction);\n\n // Prevent rubber band scrolling from shaking when scrolling out of bounds\n state.scrollTop = Math.max(0, Math.min(scrollTop, contentSize.height - state.height));\n state.scrollLeft = Math.max(0, Math.min(scrollLeft, contentSize.width - state.width));\n\n onVisibleRectChange(new Rect(state.scrollLeft, state.scrollTop, state.width, state.height));\n\n if (!state.isScrolling) {\n state.isScrolling = true;\n setScrolling(true);\n\n if (onScrollStart) {\n onScrollStart();\n }\n }\n\n // So we don't constantly call clearTimeout and setTimeout,\n // keep track of the current timeout time and only reschedule\n // the timer when it is getting close.\n let now = Date.now();\n if (state.scrollEndTime <= now + 50) {\n state.scrollEndTime = now + 300;\n\n clearTimeout(state.scrollTimeout);\n state.scrollTimeout = setTimeout(() => {\n state.isScrolling = false;\n setScrolling(false);\n state.scrollTimeout = null;\n\n if (onScrollEnd) {\n onScrollEnd();\n }\n }, 300);\n }\n });\n }, [props, direction, state, contentSize, onVisibleRectChange, onScrollStart, onScrollEnd]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n clearTimeout(state.scrollTimeout);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let updateSize = useCallback(() => {\n let dom = ref.current;\n if (!dom) {\n return;\n }\n\n let w = dom.clientWidth;\n let h = dom.clientHeight;\n if (sizeToFit && contentSize.width > 0 && contentSize.height > 0) {\n if (sizeToFit === 'width') {\n w = Math.min(w, contentSize.width);\n } else if (sizeToFit === 'height') {\n h = Math.min(h, contentSize.height);\n }\n }\n\n if (state.width !== w || state.height !== h) {\n state.width = w;\n state.height = h;\n onVisibleRectChange(new Rect(state.scrollLeft, state.scrollTop, w, h));\n }\n }, [onVisibleRectChange, ref, state, sizeToFit, contentSize]);\n\n useLayoutEffect(() => {\n updateSize();\n }, [updateSize]);\n useResizeObserver({ref, onResize: updateSize});\n\n let style: React.CSSProperties = {\n // Reset padding so that relative positioning works correctly. Padding will be done in JS layout.\n padding: 0,\n ...otherProps.style\n };\n\n if (scrollDirection === 'horizontal') {\n style.overflowX = 'auto';\n style.overflowY = 'hidden';\n } else if (scrollDirection === 'vertical') {\n style.overflowY = 'auto';\n style.overflowX = 'hidden';\n } else {\n style.overflow = 'auto';\n }\n\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n}\n\nconst ScrollViewForwardRef = React.forwardRef(ScrollView);\nexport {ScrollViewForwardRef as ScrollView};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ReusableView, Size} from '@react-stately/virtualizer';\nimport {useLayoutEffect} from '@react-aria/utils';\n\ninterface VirtualizerItemOptions {\n reusableView: ReusableView,\n ref: RefObject\n}\n\nexport function useVirtualizerItem(options: VirtualizerItemOptions) {\n let {reusableView: {layoutInfo, virtualizer}, ref} = options;\n\n let updateSize = useCallback(() => {\n let size = getSize(ref.current);\n virtualizer.updateItemSize(layoutInfo.key, size);\n }, [virtualizer, layoutInfo.key, ref]);\n\n useLayoutEffect(() => {\n if (layoutInfo.estimatedSize) {\n updateSize();\n }\n });\n\n return {updateSize};\n}\n\nfunction getSize(node: HTMLElement) {\n // Reset height before measuring so we get the intrinsic size\n let height = node.style.height;\n node.style.height = '';\n let size = new Size(node.scrollWidth, node.scrollHeight);\n node.style.height = height;\n return size;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {LayoutInfo, ReusableView} from '@react-stately/virtualizer';\nimport React, {CSSProperties, useRef} from 'react';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVirtualizerItem} from './useVirtualizerItem';\n\ninterface VirtualizerItemProps {\n reusableView: ReusableView,\n parent?: ReusableView,\n className?: string\n}\n\nexport function VirtualizerItem(props: VirtualizerItemProps) {\n let {className, reusableView, parent} = props;\n let {direction} = useLocale();\n let ref = useRef();\n useVirtualizerItem({\n reusableView,\n ref\n });\n\n return (\n
    \n {reusableView.rendered}\n
    \n );\n}\n\nlet cache = new WeakMap();\nexport function layoutInfoToStyle(layoutInfo: LayoutInfo, dir: Direction, parent?: LayoutInfo | null): CSSProperties {\n let xProperty = dir === 'rtl' ? 'right' : 'left';\n let cached = cache.get(layoutInfo);\n if (cached && cached[xProperty] != null) {\n if (!parent) {\n return cached;\n }\n\n // Invalidate if the parent position changed.\n let top = layoutInfo.rect.y - parent.rect.y;\n let x = layoutInfo.rect.x - parent.rect.x;\n if (cached.top === top && cached[xProperty] === x) {\n return cached;\n }\n }\n\n let style: CSSProperties = {\n position: layoutInfo.isSticky ? 'sticky' : 'absolute',\n overflow: layoutInfo.allowOverflow ? 'visible' : 'hidden',\n top: layoutInfo.rect.y - (parent ? parent.rect.y : 0),\n [xProperty]: layoutInfo.rect.x - (parent ? parent.rect.x : 0),\n transition: 'all',\n WebkitTransition: 'all',\n WebkitTransitionDuration: 'inherit',\n transitionDuration: 'inherit',\n width: layoutInfo.rect.width,\n height: layoutInfo.rect.height,\n opacity: layoutInfo.opacity,\n zIndex: layoutInfo.zIndex,\n transform: layoutInfo.transform,\n contain: 'size layout style'\n };\n\n cache.set(layoutInfo, style);\n return style;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {focusWithoutScrolling, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\nimport {Layout, Rect, ReusableView, useVirtualizerState, VirtualizerState} from '@react-stately/virtualizer';\nimport React, {FocusEvent, HTMLAttributes, Key, ReactElement, RefObject, useCallback, useEffect, useMemo, useRef} from 'react';\nimport {ScrollView} from './ScrollView';\nimport {useHasTabbableChild} from './useHasTabbableChild';\nimport {VirtualizerItem} from './VirtualizerItem';\n\ninterface VirtualizerProps extends HTMLAttributes {\n children: (type: string, content: T) => V,\n renderWrapper?: (\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => ReactElement[]\n ) => ReactElement,\n layout: Layout,\n collection: Collection,\n focusedKey?: Key,\n sizeToFit?: 'width' | 'height',\n scrollDirection?: 'horizontal' | 'vertical' | 'both',\n transitionDuration?: number,\n isLoading?: boolean,\n onLoadMore?: () => void,\n shouldUseVirtualFocus?: boolean,\n scrollToItem?: (key: Key) => void\n}\n\nfunction Virtualizer(props: VirtualizerProps, ref: RefObject) {\n let {\n children: renderView,\n renderWrapper,\n layout,\n collection,\n sizeToFit,\n scrollDirection,\n transitionDuration,\n isLoading,\n onLoadMore,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusedKey,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldUseVirtualFocus,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scrollToItem,\n ...otherProps\n } = props;\n\n let fallbackRef = useRef();\n ref = ref || fallbackRef;\n\n let state = useVirtualizerState({\n transitionDuration,\n layout,\n collection,\n renderView,\n renderWrapper: renderWrapper || defaultRenderWrapper,\n onVisibleRectChange(rect) {\n ref.current.scrollLeft = rect.x;\n ref.current.scrollTop = rect.y;\n }\n });\n\n let {virtualizerProps} = useVirtualizer(props, state, ref);\n\n // Handle scrolling, and call onLoadMore when nearing the bottom.\n let onVisibleRectChange = useCallback((rect: Rect) => {\n state.setVisibleRect(rect);\n\n if (!isLoading && onLoadMore) {\n let scrollOffset = state.virtualizer.contentSize.height - rect.height * 2;\n if (rect.y > scrollOffset) {\n onLoadMore();\n }\n }\n }, [isLoading, onLoadMore, state]);\n\n useLayoutEffect(() => {\n if (!isLoading && onLoadMore && !state.isAnimating) {\n if (state.contentSize.height > 0 && state.contentSize.height <= state.virtualizer.visibleRect.height) {\n onLoadMore();\n }\n }\n }, [state.contentSize, state.isAnimating, state.virtualizer, onLoadMore, isLoading]);\n\n return (\n \n {state.visibleViews}\n \n );\n}\n\ninterface VirtualizerOptions {\n focusedKey?: Key,\n scrollToItem?: (key: Key) => void,\n shouldUseVirtualFocus?: boolean\n}\n\nexport function useVirtualizer(props: VirtualizerOptions, state: VirtualizerState, ref: RefObject) {\n let {focusedKey, scrollToItem, shouldUseVirtualFocus} = props;\n let {virtualizer} = state;\n\n // Scroll to the focusedKey when it changes. Actually focusing the focusedKey\n // is up to the implementation using Virtualizer since we don't have refs\n // to all of the item DOM nodes.\n let lastFocusedKey = useRef(null);\n let isFocusWithin = useRef(false);\n useEffect(() => {\n if (virtualizer.visibleRect.height === 0) {\n return;\n }\n\n // Only scroll the focusedKey into view if the modality is not pointer to avoid jumps in position when clicking/pressing tall items.\n // Exception made if focus isn't within the virtualizer (e.g. opening a picker via click should scroll the selected item into view)\n let modality = getInteractionModality();\n if (focusedKey !== lastFocusedKey.current && (modality !== 'pointer' || !isFocusWithin.current)) {\n if (scrollToItem) {\n scrollToItem(focusedKey);\n } else {\n virtualizer.scrollToItem(focusedKey, {duration: 0});\n }\n }\n\n lastFocusedKey.current = focusedKey;\n }, [focusedKey, virtualizer.visibleRect.height, virtualizer, lastFocusedKey, scrollToItem]);\n\n // Persist the focusedKey and prevent it from being removed from the DOM when scrolled out of view.\n virtualizer.persistedKeys = useMemo(() => focusedKey ? new Set([focusedKey]) : new Set(), [focusedKey]);\n\n let onFocus = useCallback((e: FocusEvent) => {\n // If the focused item is scrolled out of view and is not in the DOM, the collection\n // will have tabIndex={0}. When tabbing in from outside, scroll the focused item into view.\n // Ignore focus events that bubble through portals (e.g. focus that happens on a menu popover child of the virtualizer)\n // Don't scroll focused key into view if modality is pointer to prevent sudden jump in position (e.g. CardView).\n let modality = getInteractionModality();\n if (!isFocusWithin.current && ref.current.contains(e.target) && modality !== 'pointer') {\n if (scrollToItem) {\n scrollToItem(focusedKey);\n } else {\n virtualizer.scrollToItem(focusedKey, {duration: 0});\n }\n }\n\n isFocusWithin.current = e.target !== ref.current;\n }, [ref, virtualizer, focusedKey, scrollToItem]);\n\n let onBlur = useCallback((e: FocusEvent) => {\n isFocusWithin.current = ref.current.contains(e.relatedTarget as Element);\n }, [ref]);\n\n // When the focused item is scrolled out of view and is removed from the DOM,\n // move focus to the collection view as a whole if focus was within before.\n let focusedView = virtualizer.getView(focusedKey);\n useEffect(() => {\n if (focusedKey && !focusedView && isFocusWithin.current && document.activeElement !== ref.current) {\n focusWithoutScrolling(ref.current);\n }\n });\n\n let hasTabbableChild = useHasTabbableChild({\n isEmpty: virtualizer.collection.size === 0,\n hasRenderedAnything: virtualizer.contentSize.height > 0 || virtualizer.contentSize.width > 0\n }, ref);\n\n // Set tabIndex to -1 if the focused view is in the DOM, otherwise 0 so that the collection\n // itself is tabbable. When the collection receives focus, we scroll the focused item back into\n // view, which will allow it to be properly focused. If using virtual focus, don't set a\n // tabIndex at all so that VoiceOver on iOS 14 doesn't try to move real DOM focus to the element anyway.\n let tabIndex: number;\n if (!shouldUseVirtualFocus) {\n // When there is no focusedView the default tabIndex is 0. We include logic for empty collections too.\n // For collections that are empty, but have a link in the empty children we want to skip focusing this\n // and let focus move to the link similar to link moving to children.\n tabIndex = focusedView || hasTabbableChild ? -1 : 0;\n }\n\n return {\n virtualizerProps: {\n tabIndex,\n onFocus,\n onBlur\n }\n };\n}\n\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Virtualizer = React.forwardRef(Virtualizer) as (props: VirtualizerProps & {ref?: RefObject}) => ReactElement;\nexport {_Virtualizer as Virtualizer};\n\nfunction defaultRenderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView\n) {\n return (\n \n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getFocusableTreeWalker} from '@react-aria/focus';\nimport {RefObject, useEffect, useState} from 'react';\n\ninterface AriaHasTabbableChildProps {\n isEmpty: boolean,\n hasRenderedAnything: boolean\n}\n\n// This was created for a special empty case of a component that can have child or\n// be empty, like Collection/Virtualizer/Table/ListView/etc. When these components\n// are empty they can have a message with a tabbable element, which is like them\n// being not empty, when it comes to focus and tab order.\n//\n// This looks at the element's children and determines if any are tabbable.\nexport function useHasTabbableChild({isEmpty, hasRenderedAnything}: AriaHasTabbableChildProps, ref: RefObject): boolean {\n let [hasTabbableChild, setHasTabbableChild] = useState(false);\n\n useEffect(() => {\n if (ref?.current && isEmpty && hasRenderedAnything) {\n // Detect if there are any tabbable elements and update the tabIndex accordingly.\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n setHasTabbableChild(!!walker.nextNode());\n }\n }, [ref, isEmpty, hasRenderedAnything]);\n\n return hasTabbableChild;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CheckmarkSmall;\n\nvar _CheckmarkSmall = require(\"@adobe/react-spectrum-ui/dist/CheckmarkSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CheckmarkSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CheckmarkSmall.CheckmarkSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckmarkSmall = CheckmarkSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CheckmarkSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.5 11a.999.999 0 0 1-.788-.385l-3-4a1 1 0 1 1 1.576-1.23L4.5 8.376l5.212-6.99a1 1 0 1 1 1.576 1.23l-6 8A.999.999 0 0 1 4.5 11z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M3.788 9A.999.999 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A.999.999 0 0 1 3.788 9z\"\n }));\n}\n\nCheckmarkSmall.displayName = 'CheckmarkSmall';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = DashSmall;\n\nvar _DashSmall = require(\"@adobe/react-spectrum-ui/dist/DashSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction DashSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_DashSmall.DashSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DashSmall = DashSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction DashSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z\"\n }));\n}\n\nDashSmall.displayName = 'DashSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleProps} from '@react-types/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {InputHTMLAttributes, RefObject} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface ToggleAria {\n /**\n * Props to be spread on the input element.\n */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(props: AriaToggleProps, state: ToggleState, ref: RefObject): ToggleAria {\n let {\n isDisabled = false,\n isRequired,\n isReadOnly,\n value,\n name,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n validationState = 'valid'\n } = props;\n\n let onChange = (e) => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let {pressProps} = usePress({\n isDisabled\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n return {\n inputProps: mergeProps(domProps, {\n 'aria-invalid': validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n type: 'checkbox',\n ...interactions\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxProps} from '@react-types/checkbox';\nimport {InputHTMLAttributes, RefObject, useEffect} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useToggle} from '@react-aria/toggle';\n\nexport interface CheckboxAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component.\n * Checkboxes allow users to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useToggleState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject): CheckboxAria {\n let {inputProps} = useToggle(props, state, inputRef);\n let {isSelected} = state;\n\n let {isIndeterminate} = props;\n useEffect(() => {\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n });\n\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\n\nexport const checkboxGroupNames = new WeakMap();\nexport const checkboxGroupDescriptionIds = new WeakMap();\nexport const checkboxGroupErrorMessageIds = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupProps} from '@react-types/checkbox';\nimport {checkboxGroupDescriptionIds, checkboxGroupErrorMessageIds, checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {useField} from '@react-aria/label';\n\nexport interface CheckboxGroupAria {\n /** Props for the checkbox group wrapper element. */\n groupProps: DOMAttributes,\n /** Props for the checkbox group's visible label (if any). */\n labelProps: DOMAttributes,\n /** Props for the checkbox group description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the checkbox group error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props: AriaCheckboxGroupProps, state: CheckboxGroupState): CheckboxGroupAria {\n let {isDisabled, name} = props;\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a
    \n );\n}\n\nlet _Label = React.forwardRef(Label);\nexport {_Label as Label};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useStyleProps} from '@react-spectrum/utils';\nimport {Flex} from '@react-spectrum/layout';\nimport {HelpText} from './HelpText';\nimport {Label} from './Label';\nimport {LabelPosition} from '@react-types/shared';\nimport labelStyles from '@adobe/spectrum-css-temp/components/fieldlabel/vars.css';\nimport {mergeProps, useId} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport {SpectrumFieldProps} from '@react-types/label';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction Field(props: SpectrumFieldProps, ref: RefObject) {\n let formProps = useFormProps(props);\n let isInForm = formProps !== props;\n props = formProps;\n let {\n label,\n labelPosition = 'top' as LabelPosition,\n labelAlign,\n isRequired,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName,\n validationState,\n description,\n errorMessage,\n isDisabled,\n showErrorIcon,\n contextualHelp,\n children,\n labelProps,\n // Not every component that uses supports help text.\n descriptionProps = {},\n errorMessageProps = {},\n elementType,\n wrapperClassName,\n wrapperProps = {},\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let hasHelpText = !!description || errorMessage && validationState === 'invalid';\n let contextualHelpId = useId();\n\n let labelWrapperClass = classNames(\n labelStyles,\n 'spectrum-Field',\n {\n 'spectrum-Field--positionTop': labelPosition === 'top',\n 'spectrum-Field--positionSide': labelPosition === 'side',\n 'spectrum-Field--alignEnd': labelAlign === 'end',\n 'spectrum-Field--hasContextualHelp': !!props.contextualHelp\n },\n styleProps.className,\n wrapperClassName\n );\n\n children = React.cloneElement(children, mergeProps(children.props, {\n className: classNames(\n labelStyles,\n 'spectrum-Field-field'\n )\n }));\n\n let renderHelpText = () => (\n \n );\n\n let renderChildren = () => {\n if (labelPosition === 'side') {\n return (\n \n {children}\n {hasHelpText && renderHelpText()}\n \n );\n }\n\n return (\n <>\n {children}\n {hasHelpText && renderHelpText()}\n \n );\n };\n\n let labelAndContextualHelp = (\n <>\n {label && (\n \n {label}\n \n )}\n {label && contextualHelp &&\n \n {contextualHelp}\n \n }\n \n );\n\n // Need to add an extra wrapper for the label and contextual help if labelPosition is side,\n // so that the table layout works inside forms.\n if (isInForm && labelPosition === 'side' && label && contextualHelp) {\n labelAndContextualHelp = (\n
    \n
    \n {labelAndContextualHelp}\n
    \n
    \n );\n }\n\n return (\n }\n className={labelWrapperClass}>\n {labelAndContextualHelp}\n {renderChildren()}\n \n );\n}\n\nlet _Field = React.forwardRef(Field);\nexport {_Field as Field};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\nimport {ValidationState} from '@react-types/shared';\n\nexport interface CheckboxGroupState {\n /** Current selected values. */\n readonly value: readonly string[],\n\n /** Whether the checkbox group is disabled. */\n readonly isDisabled: boolean,\n\n /** Whether the checkbox group is read only. */\n readonly isReadOnly: boolean,\n\n /** Returns whether the given value is selected. */\n isSelected(value: string): boolean,\n\n /** Sets the selected values. */\n setValue(value: string[]): void,\n\n /** Adds a value to the set of selected values. */\n addValue(value: string): void,\n\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void,\n\n /** Toggles a value in the set of selected values. */\n toggleValue(value: string): void,\n\n /** The current validation state of the checkbox group. */\n validationState: ValidationState\n}\n\n/**\n * Provides state management for a checkbox group component. Provides a name for the group,\n * and manages selection and focus state.\n */\nexport function useCheckboxGroupState(props: CheckboxGroupProps = {}): CheckboxGroupState {\n let [selectedValues, setValue] = useControlledState(props.value, props.defaultValue || [], props.onChange);\n\n const state: CheckboxGroupState = {\n value: selectedValues,\n setValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n\n setValue(value);\n },\n isDisabled: props.isDisabled || false,\n isReadOnly: props.isReadOnly || false,\n isSelected(value) {\n return selectedValues.includes(value);\n },\n addValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n }\n },\n removeValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n }\n },\n toggleValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n } else {\n setValue(selectedValues.concat(value));\n }\n },\n validationState: props.validationState\n };\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport React from 'react';\n\nexport const CheckboxGroupContext = React.createContext(null);\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport CheckmarkSmall from '@spectrum-icons/ui/CheckmarkSmall';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport DashSmall from '@spectrum-icons/ui/DashSmall';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport React, {forwardRef, useContext, useRef} from 'react';\nimport {SpectrumCheckboxProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/checkbox/vars.css';\nimport {useCheckbox, useCheckboxGroupItem} from '@react-aria/checkbox';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction Checkbox(props: SpectrumCheckboxProps, ref: FocusableRef) {\n let originalProps = props;\n props = useProviderProps(props);\n let {\n isIndeterminate = false,\n isEmphasized = false,\n isDisabled = false,\n autoFocus,\n children,\n validationState,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n let {inputProps} = groupState\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ? useCheckboxGroupItem({\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires ignore).\n // @ts-ignore\n value: props.value,\n // Only pass isRequired and validationState to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n validationState: originalProps.validationState\n }, groupState, inputRef)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n : useCheckbox(props, useToggleState(props), inputRef);\n\n let markIcon = isIndeterminate\n ? \n : ;\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(`${key} is unsupported on individual elements within a . Please apply these props to the group instead.`);\n }\n }\n if (props.value == null) {\n console.warn('A element within a requires a `value` property.');\n }\n }\n\n return (\n \n \n \n \n {markIcon}\n {children && (\n \n {children}\n \n )}\n \n );\n}\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\nexport {_Checkbox as Checkbox};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport {classNames, useDOMRef} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {Provider, useProviderProps} from '@react-spectrum/provider';\nimport React from 'react';\nimport {SpectrumCheckboxGroupProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/fieldgroup/vars.css';\nimport {useCheckboxGroup} from '@react-aria/checkbox';\nimport {useCheckboxGroupState} from '@react-stately/checkbox';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction CheckboxGroup(props: SpectrumCheckboxGroupProps, ref: DOMRef) {\n props = useProviderProps(props);\n props = useFormProps(props);\n let {\n isEmphasized,\n children,\n orientation = 'vertical',\n validationState\n } = props;\n let domRef = useDOMRef(ref);\n let state = useCheckboxGroupState(props);\n let {labelProps, groupProps, descriptionProps, errorMessageProps} = useCheckboxGroup(props, state);\n\n return (\n \n \n \n \n {children}\n \n \n \n
    \n );\n}\n\n/**\n * A CheckboxGroup allows users to select one or more items from a list of choices.\n */\nconst _CheckboxGroup = React.forwardRef(CheckboxGroup);\nexport {_CheckboxGroup as CheckboxGroup};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronLeftMedium;\n\nvar _ChevronLeftMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronLeftMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronLeftMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronLeftMedium.ChevronLeftMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronLeftMedium = ChevronLeftMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronLeftMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z\"\n }));\n}\n\nChevronLeftMedium.displayName = 'ChevronLeftMedium';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightMedium;\n\nvar _ChevronRightMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronRightMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.ChevronRightMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightMedium = ChevronRightMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z\"\n }));\n}\n\nChevronRightMedium.displayName = 'ChevronRightMedium';","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ListGripper;\n\nvar _ListGripper = require(\"@adobe/react-spectrum-ui/dist/ListGripper\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ListGripper(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ListGripper.ListGripper, null));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListGripper = ListGripper;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n@adobe/react-spectrum-ui (c) by Adobe\n\n@adobe/react-spectrum-ui is licensed under a\nCreative Commons Attribution-NoDerivatives 4.0 International License.\n\nYou should have received a copy of the license along with this\nwork. If not, see .\n*/\nfunction ListGripper({\n scale = 'M',\n ...props\n}) {\n return /*#__PURE__*/_react.default.createElement(\"svg\", props, scale === 'L' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"1.375\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"1.375\",\n r: \"1.25\"\n })), scale === 'M' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"1.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"1.5\",\n r: \"1\"\n })));\n}\n\nListGripper.displayName = 'ListGripper';","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n*/\n\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-85);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-listview-item-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width));\n --spectrum-listview-row-sticky-focus-indicator-width: 3px;\n --spectrum-listview-item-line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n --spectrum-listview-item-title-text-color: var(--spectrum-global-color-gray-800);\n --spectrum-listview-item-title-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-listview-item-description-text-color: var(--spectrum-global-color-gray-700);\n --spectrum-listview-item-description-text-size: var(--spectrum-global-dimension-font-size-75);\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-listview-border-width);\n border-radius: var(--spectrum-listview-border-radius);\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n user-select: none;\n\n .react-spectrum-ListView-row {\n outline: none;\n }\n\n &.react-spectrum-ListView--emphasized {\n &.react-spectrum-ListView--dropTarget {\n .react-spectrum-ListViewItem:not(.is-selected) {\n /* shift bottom border inwards so it doesn't overlap the root drop target */\n &:after {\n inset-inline-start: 1px;\n inset-inline-end: 1px;\n }\n }\n }\n .react-spectrum-ListViewItem {\n /* common pseudoelement for box shadows */\n &:after {\n content: '';\n display: block;\n position: absolute;\n inset-inline-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inset-block-start: 0;\n z-index: 3;\n pointer-events: none;\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-selected);\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-selected-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n\n /* Negative block start causes borders to actually be shared between items. Only works if we allow item overflow to be visible, like card focus rings. */\n &:after {\n inset-block-start: -1px;\n box-shadow: inset 1px 0 0 0 var(--spectrum-global-color-blue-500), inset -1px 0 0 0 var(--spectrum-global-color-blue-500), inset 0 -1px 0 0 var(--spectrum-global-color-blue-500), inset 0 1px 0 0 var(--spectrum-global-color-blue-500);\n }\n }\n\n /* First item in the ListView should not have a border that extends outside of itself to the top, it doesn't need to share a border space. */\n &.react-spectrum-ListViewItem--firstRow {\n &.is-selected {\n &:after {\n inset-block-start: 0px;\n }\n }\n }\n }\n\n &:not(.react-spectrum-ListView--quiet) {\n .react-spectrum-ListViewItem {\n /* Box shadow for bottom border for non-selected rows that aren't immediately above a selected row (grey border bottom). */\n /* Also omit bottom border for last row if the total content height of the ListView is equal or greater than the height of the container. This avoids overlapping bottom borders. */\n &:not(.is-selected):not(.is-next-selected):not(.react-spectrum-ListViewItem--isFlushBottom) {\n &:after {\n box-shadow: inset 0 -1px 0 0 var(--spectrum-table-cell-border-color);\n }\n }\n\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem {\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-end-radius: 0;\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-end-radius: 0;\n }\n }\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n }\n }\n }\n }\n &.react-spectrum-ListView--wrap .react-spectrum-ListViewItem {\n & .react-spectrum-ListViewItem-content,\n & .react-spectrum-ListViewItem-description {\n white-space: normal;\n height: auto;\n }\n }\n}\n\n.react-spectrum-ListView-row {\n cursor: default;\n /* Not sticky because listview is a single column. If we want to make sticky, will need a cell wrapper like TableView for display: inline-block */\n &:focus-ring {\n &:before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: var(--spectrum-listview-row-sticky-focus-indicator-width);\n z-index: 4;\n background: var(--spectrum-selectlist-option-focus-indicator-color);\n }\n }\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n border-radius: 0;\n\n .react-spectrum-ListView-row {\n &.round-tops {\n &:focus-ring {\n &:before {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.round-bottoms {\n &:focus-ring {\n &:before {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n }\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-listview-item-line-height);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-160);\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n min-height: var(--spectrum-global-dimension-size-500);\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-down);\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n }\n\n &.is-disabled {\n &, .react-spectrum-ListViewItem-content, .react-spectrum-ListViewItem-description {\n color: var(--spectrum-alias-text-color-disabled);\n }\n }\n\n &.has-checkbox {\n /* have to eliminate vertical padding to allow proper vertical alignment */\n padding-top: 0px;\n padding-bottom: 0px;\n }\n\n .react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"draghandle checkbox thumbnail content actions actionmenu chevron\"\n \"draghandle checkbox thumbnail description actions actionmenu chevron\";\n align-items: center;\n }\n\n .react-spectrum-ListViewItem-draghandle-container {\n grid-area: draghandle;\n width: var(--spectrum-global-dimension-size-250);\n display: flex;\n align-self: stretch;\n justify-self: stretch;\n justify-content: center;\n padding: var(--spectrum-global-dimension-size-25);\n padding-inline-start: var(--spectrum-global-dimension-size-40);\n\n\n .react-spectrum-ListViewItem-draghandle-button {\n width: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--spectrum-alias-border-radius-regular);\n\n &:focus-ring {\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus);\n outline: none;\n }\n }\n }\n\n .react-spectrum-ListViewItem-checkboxWrapper {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n transition-duration: 160ms;\n display: flex;\n }\n\n .react-spectrum-ListViewItem-checkbox {\n min-height: 0;\n height: 100%;\n\n > span {\n margin: 0;\n }\n }\n\n .react-spectrum-ListViewItem-thumbnail {\n grid-area: thumbnail;\n justify-items: center;\n padding-inline-end: var(--spectrum-global-dimension-size-100);\n display: flex;\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n align-items: center;\n justify-content: center;\n\n > img {\n width: unset;\n height: 100%;\n }\n }\n\n .react-spectrum-ListViewItem-content,\n .react-spectrum-ListViewItem-description {\n flex-grow: 1;\n\n /* truncate text with ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: var(--spectrum-listview-item-line-height);\n }\n\n .react-spectrum-ListViewItem-content {\n grid-area: content;\n color: var(--spectrum-listview-item-title-text-color);\n font-size: var(--spectrum-listview-item-title-text-size);\n }\n\n &:not(.react-spectrum-ListView--hasDescription) {\n .react-spectrum-ListViewItem-content {\n grid-area: content / description;\n }\n }\n\n .react-spectrum-ListViewItem-description {\n grid-area: description;\n color: var(--spectrum-listview-item-description-text-color);\n font-size: var(--spectrum-listview-item-description-text-size);\n }\n\n .react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n .react-spectrum-ListViewItem-actionmenu {\n grid-area: actionmenu;\n }\n\n .react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n padding-inline-start: var(--spectrum-global-dimension-size-75);\n display: none;\n transition: color var(--spectrum-global-animation-duration-100);\n\n &.is-disabled {\n color: var(--spectrum-alias-icon-color-disabled);\n }\n }\n\n &.react-spectrum-ListViewItem-dragPreview {\n width: var(--spectrum-global-dimension-size-2400);\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n\n &.react-spectrum-ListViewItem-dragPreview--compact {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--spacious {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n }\n\n .react-spectrum-ListViewItem-grid {\n grid-template-areas:\n \"thumbnail content . badge\"\n \"thumbnail description . badge\";\n grid-template-columns: auto auto 1fr auto;\n }\n\n .react-spectrum-ListViewItem-badge {\n grid-area: badge;\n color: white;\n background: var(--spectrum-global-color-blue-400);\n padding: 0 8px;\n border-radius: var(--spectrum-alias-border-radius-regular);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--multiple {\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n z-index: -1;\n top: 4px;\n inset-inline-start: 4px;\n width: 100%;\n height: 100%;\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n }\n }\n\n .react-spectrum-ListViewItem-actions,\n .react-spectrum-ListViewItem-actionmenu {\n display: none;\n }\n }\n}\n.react-spectrum-ListView:not(.react-spectrum-ListView--quiet) {\n /* give first and last items border-radius to match listview container */\n\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-end-radius: 0;\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-end-radius: 0;\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n}\n\n.react-spectrum-ListView {\n /* When we can use subgrid, get rid of this. */\n &.react-spectrum-ListView--hasAnyChildren {\n .react-spectrum-ListViewItem-parentIndicator {\n display: inline-block;\n visibility: hidden;\n }\n .react-spectrum-ListViewItem-parentIndicator--hasChildItems {\n visibility: visible;\n }\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n.react-spectrum-ListView--draggable .react-spectrum-ListViewItem {\n padding-inline-start: 0;\n\n .react-spectrum-ListViewItem-checkbox {\n input {\n inset-inline-start: 0;\n }\n }\n}\n\n.react-spectrum-ListViewItem--dropTarget {\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow:\n inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus);\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--dropTarget {\n border-color: var(--spectrum-global-color-blue-500);\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n\n /* Add border to quiet ListView only when it is a drop target */\n &.react-spectrum-ListView--quiet {\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus), 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &.react-spectrum-ListView-centeredWrapper--loadingMore {\n padding-top: var(--spectrum-global-dimension-size-50);\n }\n}\n\n.react-spectrum-ListViewInsertionIndicator {\n width: calc(100% - (2 * var(--spectrum-dropindicator-circle-size)));\n inset-inline-start: var(--spectrum-dropindicator-circle-size);\n position: absolute;\n outline: none;\n\n &.react-spectrum-ListViewInsertionIndicator--dropTarget {\n background: var(--spectrum-dropindicator-border-color);\n border-bottom: 2px solid var(--spectrum-dropindicator-border-color);\n\n &:before {\n left: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:after {\n right: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: calc(var(--spectrum-dropindicator-circle-size) * -1 / 2 + var(--spectrum-dropindicator-border-size) / 2);\n width: var(--spectrum-dropindicator-circle-size);\n height: var(--spectrum-dropindicator-circle-size);\n border-radius: 50%;\n border: var(--spectrum-dropindicator-border-size) solid;\n box-sizing: border-box;\n border-color: var(--spectrum-dropindicator-circle-border-color);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n z-index: 5;\n }\n }\n}\n\n.react-spectrum-ListViewItem-checkbox--enter {\n opacity: 0.01;\n max-width: 0px;\n}\n.react-spectrum-ListViewItem-checkbox--enterActive {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exit {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exitActive {\n opacity: 0.01;\n max-width: 0px;\n}\n\n.react-spectrum-ListView {\n &:focus-ring {\n border-color: var(--spectrum-global-color-blue-500);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n","import {classNames} from '@react-spectrum/utils';\nimport {ItemDropTarget} from '@react-types/shared';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface InsertionIndicatorProps {\n target: ItemDropTarget,\n isPresentationOnly?: boolean\n}\n\nexport default function InsertionIndicator(props: InsertionIndicatorProps) {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n const {target, isPresentationOnly} = props;\n\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator(props, dropState, ref);\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let isDropTarget = dropState.isDropTarget(target);\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n {!isPresentationOnly &&\n
    \n }\n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider, useHasChild} from '@react-spectrum/utils';\nimport {CSSTransition} from 'react-transition-group';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableItemResult} from '@react-aria/dnd';\nimport {DropTarget, Node} from '@react-types/shared';\nimport {FocusRing, useFocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {isFocusVisible as isGlobalFocusVisible, useHover} from '@react-aria/interactions';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useContext, useRef} from 'react';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useGridListItem, useGridListSelectionCheckbox} from '@react-aria/gridlist';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface ListViewItemProps {\n item: Node,\n isEmphasized: boolean,\n hasActions: boolean\n}\n\nexport function ListViewItem(props: ListViewItemProps) {\n let {\n item,\n isEmphasized\n } = props;\n let {\n state,\n dragState,\n dropState,\n isListDraggable,\n isListDroppable,\n layout,\n dragAndDropHooks,\n loadingState\n } = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {\n rowProps,\n gridCellProps,\n isPressed,\n descriptionProps,\n isSelected,\n isDisabled,\n allowsSelection,\n hasAction\n } = useGridListItem({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isListDraggable\n }, state, rowRef);\n let isDroppable = isListDroppable && !isDisabled;\n let {hoverProps, isHovered} = useHover({isDisabled: !allowsSelection && !hasAction});\n\n let {checkboxProps} = useGridListSelectionCheckbox({key: item.key}, state);\n let hasDescription = useHasChild(`.${listStyles['react-spectrum-ListViewItem-description']}`, rowRef);\n\n let draggableItem: DraggableItemResult;\n if (isListDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef();\n if (isListDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef();\n let {buttonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let chevron = direction === 'ltr'\n ? (\n \n )\n : (\n \n );\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n const mergedProps = mergeProps(\n rowProps,\n draggableItem?.dragProps,\n dropProps,\n hoverProps,\n focusWithinProps,\n focusProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n let isFirstRow = item.prevKey == null;\n let isLastRow = item.nextKey == null;\n // Figure out if the ListView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected and we can get rid of the bottom border if it isn't selected to avoid border overlap\n // with bottom border\n let isFlushWithContainerBottom = false;\n if (isLastRow && loadingState !== 'loadingMore') {\n if (layout.getContentSize()?.height >= layout.virtualizer?.getVisibleRect().height) {\n isFlushWithContainerBottom = true;\n }\n }\n // previous item isn't selected\n // and the previous item isn't focused or, if it is focused, then if focus globally isn't visible or just focus isn't in the listview\n let roundTops = (!state.selectionManager.isSelected(item.prevKey)\n && (state.selectionManager.focusedKey !== item.prevKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n let roundBottoms = (!state.selectionManager.isSelected(item.nextKey)\n && (state.selectionManager.focusedKey !== item.nextKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n\n let content = typeof item.rendered === 'string' ? {item.rendered} : item.rendered;\n if (isDisabled) {\n content = {content};\n }\n\n return (\n \n \n \n {isListDraggable &&\n
    \n {!isDisabled &&\n \n }\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem-draghandle-button'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n \n
    \n \n }\n \n }\n {isListDroppable && !dropIndicator?.isHidden &&\n
    \n }\n \n
    \n \n
    \n \n \n {content}\n \n {chevron}\n \n \n \n
    \n \n );\n}\n","import {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport default function RootDropIndicator() {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator({\n target: {type: 'root'}\n }, dropState, ref);\n let isDropTarget = dropState.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n
    \n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {classNames, SlotProvider} from '@react-spectrum/utils';\nimport {Grid} from '@react-spectrum/layout';\nimport {GridNode} from '@react-types/grid';\nimport listStyles from './styles.css';\nimport React from 'react';\nimport type {SpectrumListViewProps} from './ListView';\nimport {Text} from '@react-spectrum/text';\n\ninterface DragPreviewProps {\n item: GridNode,\n itemCount: number,\n itemHeight: number,\n density: SpectrumListViewProps['density']\n}\n\nexport function DragPreview(props: DragPreviewProps) {\n let {\n item,\n itemCount,\n itemHeight,\n density\n } = props;\n\n let isDraggingMultiple = itemCount > 1;\n\n return (\n \n \n \n {typeof item.rendered === 'string' ? {item.rendered} : item.rendered}\n {isDraggingMultiple &&\n
    {itemCount}
    \n }\n \n
    \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridListProps, useGridList} from '@react-aria/gridlist';\nimport {AsyncLoadable, DOMRef, LoadingState, SpectrumSelectionProps, StyleProps} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DroppableCollectionResult} from '@react-aria/dnd';\nimport {filterDOMProps, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing, FocusScope} from '@react-aria/focus';\nimport InsertionIndicator from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './styles.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {Key, ReactElement, useContext, useMemo, useRef, useState} from 'react';\nimport RootDropIndicator from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {useCollator, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\nexport interface SpectrumListViewProps extends AriaGridListProps, StyleProps, SpectrumSelectionProps, Omit {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n /** Whether the ListView should be displayed with a quiet style. */\n isQuiet?: boolean,\n /** The current loading state of the ListView. Determines whether or not the progress circle should be shown. */\n loadingState?: LoadingState,\n /**\n * Sets the text behavior for the row contents.\n * @default 'truncate'\n */\n overflowMode?: 'truncate' | 'wrap',\n /** Sets what the ListView should render when there is no content to display. */\n renderEmptyState?: () => JSX.Element,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionStyle` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the ListView.\n */\n dragAndDropHooks?: DragAndDropHooks['dragAndDropHooks']\n}\n\ninterface ListViewContextValue {\n state: ListState,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n onAction:(key: Key) => void,\n isListDraggable: boolean,\n isListDroppable: boolean,\n layout: ListLayout,\n loadingState: LoadingState\n}\n\nexport const ListViewContext = React.createContext>(null);\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nfunction useListLayout(state: ListState, density: SpectrumListViewProps['density'], overflowMode: SpectrumListViewProps['overflowMode']) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let isEmpty = state.collection.size === 0;\n let layout = useMemo(() =>\n new ListLayout({\n estimatedRowHeight: ROW_HEIGHTS[density][scale],\n padding: 0,\n collator,\n loaderHeight: isEmpty ? null : ROW_HEIGHTS[density][scale]\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n , [collator, scale, density, isEmpty, overflowMode]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\nfunction ListView(props: SpectrumListViewProps, ref: DOMRef) {\n let {\n density = 'regular',\n loadingState,\n onLoadMore,\n isQuiet,\n overflowMode = 'truncate',\n onAction,\n dragAndDropHooks,\n ...otherProps\n } = props;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n let domRef = useDOMRef(ref);\n let state = useListState({\n ...props,\n selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'\n });\n let {collection, selectionManager} = state;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let {styleProps} = useStyleProps(props);\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isListDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection,\n selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n let layout = useListLayout(\n state,\n props.density || 'regular',\n overflowMode\n );\n // !!0 is false, so we can cast size or undefined and they'll be falsy\n layout.allowDisabledKeyFocus = state.selectionManager.disabledBehavior === 'selection' || !!dragState?.draggingKeys.size;\n\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isListDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection,\n selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: layout,\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useGridList({\n ...props,\n isVirtualized: true,\n keyboardDelegate: layout,\n onAction\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = isLoading;\n\n let focusedKey = selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n // wait for layout to get accurate measurements\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(() => {\n if (domRef.current) {\n // 2 is the width of the border which is not part of the box size\n setVerticalScollbarVisible(domRef.current.clientWidth + 2 < domRef.current.offsetWidth);\n setHorizontalScollbarVisible(domRef.current.clientHeight + 2 < domRef.current.offsetHeight);\n }\n });\n\n let hasAnyChildren = useMemo(() => [...collection].some(item => item.hasChildNodes), [collection]);\n\n return (\n \n \n \n \n {(type, item) => {\n if (type === 'item') {\n return (\n <>\n {isListDroppable && collection.getKeyBefore(item.key) == null &&\n \n }\n {isListDroppable &&\n \n }\n \n {isListDroppable &&\n \n }\n \n );\n } else if (type === 'loader') {\n return (\n \n 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n \n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n \n {emptyState}\n \n );\n }\n\n }}\n \n \n \n {DragPreview && isListDraggable &&\n \n {() => {\n let item = state.collection.getItem(dragState.draggedKey);\n let itemCount = dragState.draggingKeys.size;\n let itemHeight = layout.getLayoutInfo(dragState.draggedKey).rect.height;\n return ;\n }}\n \n }\n \n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n 0\n }\n )}>\n
    \n {children}\n
    \n \n );\n}\n\n/**\n * A ListView displays a list of interactive items, and allows a user to navigate, select, or perform an action.\n */\nconst _ListView = React.forwardRef(ListView) as (props: SpectrumListViewProps & {ref?: DOMRef}) => ReactElement;\nexport {_ListView as ListView};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = Copy;\n\nvar _Copy = require(\"@adobe/react-spectrum-workflow/dist/Copy\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction Copy(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_Copy.A4uCopy, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uCopy = A4uCopy;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uCopy(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"18\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"14\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"10\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"6\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"32\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"28\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"24\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"20\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"16\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"2\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"6\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"10\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"14\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"18\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"12\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"16\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"20\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"24\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n fillRule: \"evenodd\",\n height: \"2\",\n rx: \"0.5\",\n ry: \"0.5\",\n width: \"2\",\n x: \"28\",\n y: \"22\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10,12H3a1,1,0,0,0-1,1V33a1,1,0,0,0,1,1H23a1,1,0,0,0,1-1V26H11a1,1,0,0,1-1-1Z\"\n }));\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = Preview;\n\nvar _Preview = require(\"@adobe/react-spectrum-workflow/dist/Preview\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction Preview(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_Preview.A4uPreview, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uPreview = A4uPreview;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uPreview(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M33.191,32.143,28.646,27.6A9.065,9.065,0,1,0,25.6,30.646l4.546,4.545a2.044,2.044,0,0,0,3.048,0A2.133,2.133,0,0,0,33.781,34,2.163,2.163,0,0,0,33.191,32.143ZM15.412,22.98a5.568,5.568,0,1,1,5.568,5.568A5.568,5.568,0,0,1,15.412,22.98Z\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M33,4H3A1,1,0,0,0,2,5V31a1,1,0,0,0,1,1H14.232a11.322,11.322,0,0,1-2.068-2H4V10H32V27.777l2,1.99V5A1,1,0,0,0,33,4Z\"\n }));\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronLeft;\n\nvar _ChevronLeft = require(\"@adobe/react-spectrum-workflow/dist/ChevronLeft\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronLeft(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_ChevronLeft.A4uChevronLeft, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uChevronLeft = A4uChevronLeft;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uChevronLeft(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12,18v0a1.988,1.988,0,0,0,.585,1.409l7.983,7.98a2,2,0,1,0,2.871-2.772l-.049-.049L16.819,18l6.572-6.57a2,2,0,0,0-2.773-2.87l-.049.049-7.983,7.98A1.988,1.988,0,0,0,12,18Z\",\n id: \"S_MillerColumnsChevronPrevious\"\n }));\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = Error404;\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction Error404(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Illustration, props, /*#__PURE__*/_react.default.createElement(\"svg\", {\n width: \"135.321\",\n height: \"87\"\n }, /*#__PURE__*/_react.default.createElement(\"g\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: \"10\"\n }, /*#__PURE__*/_react.default.createElement(\"path\", {\n d: \"M11.821 60.5v23a2.006 2.006 0 002 2h118a2.006 2.006 0 002-2v-80a2.006 2.006 0 00-2-2h-118a2.006 2.006 0 00-2 2v27\",\n strokeWidth: \"3\"\n }), /*#__PURE__*/_react.default.createElement(\"path\", {\n strokeWidth: \"2\",\n d: \"M133.721 14h-122M29.721 8h-10\"\n }), /*#__PURE__*/_react.default.createElement(\"path\", {\n strokeWidth: \"3\",\n d: \"M2.121 55.1l19.3-19.2M21.421 55.1l-19.3-19.2\"\n }))));\n}","// Adapted from https://github.com/adobecom/milo/blob/0fbb05df593e6d6c5ef389f1a5e1bcbc84229f18/libs/blocks/library-config/lists/blocks.js\nexport function getTable(block, name, path) {\n const url = new URL(`${window.origin}/${path}`);\n block.querySelectorAll('img').forEach((img) => {\n const srcSplit = img.src.split('/');\n const mediaPath = srcSplit.pop();\n img.src = `${url.origin}/${mediaPath}`;\n const { width, height } = img;\n const ratio = width > 200 ? 200 / width : 1;\n img.width = width * ratio;\n img.height = height * ratio;\n });\n const rows = [...block.children];\n const maxCols = rows.reduce((cols, row) => (\n row.children.length > cols ? row.children.length : cols), 0);\n const table = document.createElement('table');\n table.setAttribute('border', 1);\n const headerRow = document.createElement('tr');\n const th = document.createElement('th' );\n th.setAttribute('colspan', maxCols);\n th.insertAdjacentHTML('beforeend', name);\n headerRow.append(th);\n table.append(headerRow);\n rows.forEach((row) => {\n const tr = document.createElement('tr');\n [...row.children].forEach((col) => {\n const td = document.createElement('td');\n if (row.children.length < maxCols) {\n td.setAttribute('colspan', maxCols);\n }\n td.innerHTML = col.innerHTML;\n tr.append(td);\n });\n table.append(tr);\n });\n return table.outerHTML;\n}\n\nfunction getBlockName(block) {\n const classes = block.className.split(' ');\n const name = classes.shift();\n return classes.length > 0 ? `${name} (${classes.join(', ')})` : name;\n}\n\nasync function fetchPlainBlock(path) {\n const resp = await fetch(`${path}.plain.html`);\n if (!resp.ok) return;\n\n const html = await resp.text();\n const parser = new DOMParser();\n return parser.parseFromString(html, 'text/html');\n}\n\nexport async function enrichWithVariants(block) {\n const { path } = block;\n block.variants = [];\n\n const doc = await fetchPlainBlock(path);\n if (!doc) return;\n\n doc.body.querySelectorAll('div[class]').forEach((blockVariant) => {\n const name = getBlockName(blockVariant)\n const table = getTable(blockVariant, name, path);\n block.variants.push({ name, table });\n });\n}\n\nexport async function copyTable(blockVariant) {\n const { table } = blockVariant\n\n await navigator.clipboard.write([new ClipboardItem({\n 'text/plain': new Blob([table], { type: 'text/plain' }),\n 'text/html': new Blob([table], { type: 'text/html' }),\n })])\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--darkest {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(0, 0, 0);\n --spectrum-gray-75: rgb(14, 14, 14);\n --spectrum-gray-100: rgb(29, 29, 29);\n --spectrum-gray-200: rgb(48, 48, 48);\n --spectrum-gray-300: rgb(75, 75, 75);\n --spectrum-gray-400: rgb(106, 106, 106);\n --spectrum-gray-500: rgb(141, 141, 141);\n --spectrum-gray-600: rgb(176, 176, 176);\n --spectrum-gray-700: rgb(208, 208, 208);\n --spectrum-gray-800: rgb(235, 235, 235);\n --spectrum-gray-900: rgb(255, 255, 255);\n --spectrum-red-100: rgb(87, 0, 0);\n --spectrum-red-200: rgb(110, 0, 0);\n --spectrum-red-300: rgb(138, 0, 0);\n --spectrum-red-400: rgb(167, 0, 0);\n --spectrum-red-500: rgb(196, 7, 6);\n --spectrum-red-600: rgb(221, 33, 24);\n --spectrum-red-700: rgb(238, 67, 49);\n --spectrum-red-800: rgb(249, 99, 76);\n --spectrum-red-900: rgb(255, 129, 107);\n --spectrum-red-1000: rgb(255, 158, 140);\n --spectrum-red-1100: rgb(255, 183, 169);\n --spectrum-red-1200: rgb(255, 205, 195);\n --spectrum-red-1300: rgb(255, 223, 217);\n --spectrum-red-1400: rgb(255, 237, 234);\n --spectrum-orange-100: rgb(72, 24, 1);\n --spectrum-orange-200: rgb(92, 32, 0);\n --spectrum-orange-300: rgb(115, 43, 0);\n --spectrum-orange-400: rgb(138, 55, 0);\n --spectrum-orange-500: rgb(162, 68, 0);\n --spectrum-orange-600: rgb(186, 82, 0);\n --spectrum-orange-700: rgb(210, 98, 0);\n --spectrum-orange-800: rgb(232, 116, 0);\n --spectrum-orange-900: rgb(249, 137, 23);\n --spectrum-orange-1000: rgb(255, 162, 59);\n --spectrum-orange-1100: rgb(255, 188, 102);\n --spectrum-orange-1200: rgb(253, 210, 145);\n --spectrum-orange-1300: rgb(255, 226, 181);\n --spectrum-orange-1400: rgb(255, 239, 213);\n --spectrum-yellow-100: rgb(53, 36, 0);\n --spectrum-yellow-200: rgb(68, 47, 0);\n --spectrum-yellow-300: rgb(86, 62, 0);\n --spectrum-yellow-400: rgb(103, 77, 0);\n --spectrum-yellow-500: rgb(122, 92, 0);\n --spectrum-yellow-600: rgb(141, 108, 0);\n --spectrum-yellow-700: rgb(161, 126, 0);\n --spectrum-yellow-800: rgb(180, 144, 0);\n --spectrum-yellow-900: rgb(199, 162, 0);\n --spectrum-yellow-1000: rgb(216, 181, 0);\n --spectrum-yellow-1100: rgb(233, 199, 0);\n --spectrum-yellow-1200: rgb(247, 216, 4);\n --spectrum-yellow-1300: rgb(249, 233, 97);\n --spectrum-yellow-1400: rgb(252, 243, 170);\n --spectrum-chartreuse-100: rgb(32, 43, 0);\n --spectrum-chartreuse-200: rgb(42, 56, 0);\n --spectrum-chartreuse-300: rgb(54, 72, 0);\n --spectrum-chartreuse-400: rgb(66, 88, 0);\n --spectrum-chartreuse-500: rgb(79, 105, 0);\n --spectrum-chartreuse-600: rgb(93, 123, 0);\n --spectrum-chartreuse-700: rgb(107, 142, 0);\n --spectrum-chartreuse-800: rgb(122, 161, 0);\n --spectrum-chartreuse-900: rgb(138, 180, 3);\n --spectrum-chartreuse-1000: rgb(154, 198, 11);\n --spectrum-chartreuse-1100: rgb(170, 216, 22);\n --spectrum-chartreuse-1200: rgb(187, 232, 41);\n --spectrum-chartreuse-1300: rgb(205, 246, 72);\n --spectrum-chartreuse-1400: rgb(225, 253, 132);\n --spectrum-celery-100: rgb(0, 47, 7);\n --spectrum-celery-200: rgb(0, 61, 9);\n --spectrum-celery-300: rgb(0, 77, 12);\n --spectrum-celery-400: rgb(0, 95, 15);\n --spectrum-celery-500: rgb(0, 113, 15);\n --spectrum-celery-600: rgb(0, 132, 15);\n --spectrum-celery-700: rgb(0, 151, 20);\n --spectrum-celery-800: rgb(13, 171, 37);\n --spectrum-celery-900: rgb(45, 191, 58);\n --spectrum-celery-1000: rgb(80, 208, 82);\n --spectrum-celery-1100: rgb(115, 224, 107);\n --spectrum-celery-1200: rgb(147, 237, 131);\n --spectrum-celery-1300: rgb(180, 247, 162);\n --spectrum-celery-1400: rgb(213, 252, 202);\n --spectrum-green-100: rgb(10, 44, 28);\n --spectrum-green-200: rgb(7, 59, 36);\n --spectrum-green-300: rgb(0, 76, 46);\n --spectrum-green-400: rgb(0, 93, 57);\n --spectrum-green-500: rgb(0, 111, 69);\n --spectrum-green-600: rgb(0, 130, 82);\n --spectrum-green-700: rgb(0, 149, 98);\n --spectrum-green-800: rgb(28, 168, 114);\n --spectrum-green-900: rgb(52, 187, 132);\n --spectrum-green-1000: rgb(75, 205, 149);\n --spectrum-green-1100: rgb(103, 222, 168);\n --spectrum-green-1200: rgb(137, 236, 188);\n --spectrum-green-1300: rgb(177, 244, 209);\n --spectrum-green-1400: rgb(214, 249, 228);\n --spectrum-seafoam-100: rgb(18, 43, 42);\n --spectrum-seafoam-200: rgb(19, 57, 55);\n --spectrum-seafoam-300: rgb(16, 73, 70);\n --spectrum-seafoam-400: rgb(3, 91, 88);\n --spectrum-seafoam-500: rgb(0, 108, 104);\n --spectrum-seafoam-600: rgb(0, 127, 121);\n --spectrum-seafoam-700: rgb(0, 146, 140);\n --spectrum-seafoam-800: rgb(0, 165, 159);\n --spectrum-seafoam-900: rgb(26, 185, 178);\n --spectrum-seafoam-1000: rgb(66, 202, 195);\n --spectrum-seafoam-1100: rgb(102, 218, 211);\n --spectrum-seafoam-1200: rgb(139, 232, 225);\n --spectrum-seafoam-1300: rgb(179, 242, 237);\n --spectrum-seafoam-1400: rgb(215, 248, 244);\n --spectrum-cyan-100: rgb(0, 41, 68);\n --spectrum-cyan-200: rgb(0, 54, 88);\n --spectrum-cyan-300: rgb(0, 69, 108);\n --spectrum-cyan-400: rgb(0, 86, 128);\n --spectrum-cyan-500: rgb(0, 103, 147);\n --spectrum-cyan-600: rgb(0, 121, 167);\n --spectrum-cyan-700: rgb(0, 140, 186);\n --spectrum-cyan-800: rgb(4, 160, 205);\n --spectrum-cyan-900: rgb(23, 180, 221);\n --spectrum-cyan-1000: rgb(57, 199, 234);\n --spectrum-cyan-1100: rgb(96, 216, 243);\n --spectrum-cyan-1200: rgb(134, 230, 250);\n --spectrum-cyan-1300: rgb(170, 242, 255);\n --spectrum-cyan-1400: rgb(206, 249, 255);\n --spectrum-blue-100: rgb(0, 38, 81);\n --spectrum-blue-200: rgb(0, 50, 106);\n --spectrum-blue-300: rgb(0, 64, 135);\n --spectrum-blue-400: rgb(0, 78, 166);\n --spectrum-blue-500: rgb(0, 92, 200);\n --spectrum-blue-600: rgb(6, 108, 231);\n --spectrum-blue-700: rgb(29, 128, 245);\n --spectrum-blue-800: rgb(64, 150, 243);\n --spectrum-blue-900: rgb(94, 170, 247);\n --spectrum-blue-1000: rgb(124, 189, 250);\n --spectrum-blue-1100: rgb(152, 206, 253);\n --spectrum-blue-1200: rgb(179, 222, 254);\n --spectrum-blue-1300: rgb(206, 234, 255);\n --spectrum-blue-1400: rgb(227, 243, 255);\n --spectrum-indigo-100: rgb(26, 29, 97);\n --spectrum-indigo-200: rgb(35, 39, 125);\n --spectrum-indigo-300: rgb(46, 50, 158);\n --spectrum-indigo-400: rgb(58, 63, 189);\n --spectrum-indigo-500: rgb(73, 78, 216);\n --spectrum-indigo-600: rgb(90, 96, 235);\n --spectrum-indigo-700: rgb(110, 115, 246);\n --spectrum-indigo-800: rgb(132, 136, 253);\n --spectrum-indigo-900: rgb(153, 157, 255);\n --spectrum-indigo-1000: rgb(174, 177, 255);\n --spectrum-indigo-1100: rgb(194, 196, 255);\n --spectrum-indigo-1200: rgb(212, 213, 255);\n --spectrum-indigo-1300: rgb(227, 228, 255);\n --spectrum-indigo-1400: rgb(240, 240, 255);\n --spectrum-purple-100: rgb(50, 16, 104);\n --spectrum-purple-200: rgb(67, 13, 140);\n --spectrum-purple-300: rgb(86, 16, 173);\n --spectrum-purple-400: rgb(106, 29, 200);\n --spectrum-purple-500: rgb(126, 49, 222);\n --spectrum-purple-600: rgb(145, 70, 236);\n --spectrum-purple-700: rgb(162, 94, 246);\n --spectrum-purple-800: rgb(178, 119, 250);\n --spectrum-purple-900: rgb(192, 143, 252);\n --spectrum-purple-1000: rgb(206, 166, 253);\n --spectrum-purple-1100: rgb(219, 188, 254);\n --spectrum-purple-1200: rgb(230, 207, 255);\n --spectrum-purple-1300: rgb(240, 224, 255);\n --spectrum-purple-1400: rgb(248, 237, 255);\n --spectrum-fuchsia-100: rgb(70, 14, 68);\n --spectrum-fuchsia-200: rgb(93, 9, 92);\n --spectrum-fuchsia-300: rgb(120, 0, 120);\n --spectrum-fuchsia-400: rgb(146, 0, 147);\n --spectrum-fuchsia-500: rgb(169, 19, 170);\n --spectrum-fuchsia-600: rgb(191, 43, 191);\n --spectrum-fuchsia-700: rgb(211, 65, 213);\n --spectrum-fuchsia-800: rgb(228, 91, 229);\n --spectrum-fuchsia-900: rgb(239, 120, 238);\n --spectrum-fuchsia-1000: rgb(246, 149, 243);\n --spectrum-fuchsia-1100: rgb(251, 175, 246);\n --spectrum-fuchsia-1200: rgb(254, 199, 248);\n --spectrum-fuchsia-1300: rgb(255, 220, 250);\n --spectrum-fuchsia-1400: rgb(255, 235, 252);\n --spectrum-magenta-100: rgb(83, 3, 41);\n --spectrum-magenta-200: rgb(106, 0, 52);\n --spectrum-magenta-300: rgb(133, 0, 65);\n --spectrum-magenta-400: rgb(161, 0, 78);\n --spectrum-magenta-500: rgb(186, 22, 93);\n --spectrum-magenta-600: rgb(209, 43, 114);\n --spectrum-magenta-700: rgb(227, 69, 137);\n --spectrum-magenta-800: rgb(241, 97, 156);\n --spectrum-magenta-900: rgb(252, 124, 173);\n --spectrum-magenta-1000: rgb(255, 152, 191);\n --spectrum-magenta-1100: rgb(255, 179, 207);\n --spectrum-magenta-1200: rgb(255, 202, 221);\n --spectrum-magenta-1300: rgb(255, 221, 233);\n --spectrum-magenta-1400: rgb(255, 236, 243);\n /* legacy color aliases matching closest v6 color to v5 name */\n --spectrum-legacy-color-celery-400: var(--spectrum-celery-800);\n --spectrum-legacy-color-celery-500: var(--spectrum-celery-900);\n --spectrum-legacy-color-celery-600: var(--spectrum-celery-1000);\n --spectrum-legacy-color-celery-700: var(--spectrum-celery-1100);\n --spectrum-legacy-color-chartreuse-400: var(--spectrum-chartreuse-900);\n --spectrum-legacy-color-chartreuse-500: var(--spectrum-chartreuse-1000);\n --spectrum-legacy-color-chartreuse-600: var(--spectrum-chartreuse-1100);\n --spectrum-legacy-color-chartreuse-700: var(--spectrum-chartreuse-1200);\n --spectrum-legacy-color-yellow-400: var(--spectrum-yellow-1000);\n --spectrum-legacy-color-yellow-500: var(--spectrum-yellow-1100);\n --spectrum-legacy-color-yellow-600: var(--spectrum-yellow-1200);\n --spectrum-legacy-color-yellow-700: var(--spectrum-yellow-1300);\n --spectrum-legacy-color-magenta-400: var(--spectrum-magenta-600);\n --spectrum-legacy-color-magenta-500: var(--spectrum-magenta-700);\n --spectrum-legacy-color-magenta-600: var(--spectrum-magenta-800);\n --spectrum-legacy-color-magenta-700: var(--spectrum-magenta-900);\n --spectrum-legacy-color-fuchsia-400: var(--spectrum-fuchsia-600);\n --spectrum-legacy-color-fuchsia-500: var(--spectrum-fuchsia-700);\n --spectrum-legacy-color-fuchsia-600: var(--spectrum-fuchsia-800);\n --spectrum-legacy-color-fuchsia-700: var(--spectrum-fuchsia-900);\n --spectrum-legacy-color-purple-400: var(--spectrum-purple-600);\n --spectrum-legacy-color-purple-500: var(--spectrum-purple-700);\n --spectrum-legacy-color-purple-600: var(--spectrum-purple-800);\n --spectrum-legacy-color-purple-700: var(--spectrum-purple-900);\n --spectrum-legacy-color-indigo-400: var(--spectrum-indigo-600);\n --spectrum-legacy-color-indigo-500: var(--spectrum-indigo-700);\n --spectrum-legacy-color-indigo-600: var(--spectrum-indigo-800);\n --spectrum-legacy-color-indigo-700: var(--spectrum-indigo-900);\n --spectrum-legacy-color-red-400: var(--spectrum-red-600);\n --spectrum-legacy-color-red-500: var(--spectrum-red-700);\n --spectrum-legacy-color-red-600: var(--spectrum-red-800);\n --spectrum-legacy-color-red-700: var(--spectrum-red-900);\n --spectrum-legacy-color-orange-400: var(--spectrum-orange-800);\n --spectrum-legacy-color-orange-500: var(--spectrum-orange-900);\n --spectrum-legacy-color-orange-600: var(--spectrum-orange-1000);\n --spectrum-legacy-color-orange-700: var(--spectrum-orange-1100);\n --spectrum-legacy-color-green-400: var(--spectrum-green-700);\n --spectrum-legacy-color-green-500: var(--spectrum-green-800);\n --spectrum-legacy-color-green-600: var(--spectrum-green-900);\n --spectrum-legacy-color-green-700: var(--spectrum-green-1000);\n --spectrum-legacy-color-blue-400: var(--spectrum-blue-700);\n --spectrum-legacy-color-blue-500: var(--spectrum-blue-800);\n --spectrum-legacy-color-blue-600: var(--spectrum-blue-900);\n --spectrum-legacy-color-blue-700: var(--spectrum-blue-1000);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.6);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.8);\n --spectrum-alias-background-color-hover-overlay: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-hover: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-active: rgba(239,239,239,0.15);\n --spectrum-alias-highlight-selected: rgba(64,150,243,0.2);\n --spectrum-alias-highlight-selected-hover: rgba(64,150,243,0.3);\n --spectrum-alias-highlight-invalid: rgba(221, 33, 24, 0.15); /* matches red-600 */\n --spectrum-alias-text-highlight-color: rgba(64,150,243,0.3);\n --spectrum-alias-background-color-quickactions: rgba(29,29,29,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(235,235,235,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-50);\n --spectrum-colorarea-border-color: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(38,128,235,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(38,128,235,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(235,235,235,0.02);\n --spectrum-well-border-color: rgba(239,239,239,0.05);\n /* BEGIN RSP PATCH */\n /* missing in spectrum-css */\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-100);\n /* END RSP PATCH */\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: var(--spectrum-global-color-gray-600); /* 4.8:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-600);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-500);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-400);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-500);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-600);\n --spectrum-negative-background-color-hover: var(--spectrum-red-500);\n --spectrum-negative-background-color-down: var(--spectrum-red-400);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-500);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-600);\n --spectrum-positive-background-color-hover: var(--spectrum-green-500);\n --spectrum-positive-background-color-down: var(--spectrum-green-400);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-500);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-600);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-500);\n --spectrum-informative-background-color-down: var(--spectrum-blue-400);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-500);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-700);\n --spectrum-orange-background-color-default: var(--spectrum-orange-800);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-1000);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-900);\n --spectrum-celery-background-color-default: var(--spectrum-celery-800);\n --spectrum-green-background-color-default: var(--spectrum-green-700);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-700);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-700);\n --spectrum-blue-background-color-default: var(--spectrum-blue-700);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-700);\n --spectrum-purple-background-color-default: var(--spectrum-purple-700);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-700);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-700);\n\n --spectrum-negative-visual-color: var(--spectrum-red-700);\n --spectrum-positive-visual-color: var(--spectrum-green-800);\n --spectrum-notice-visual-color: var(--spectrum-orange-900);\n --spectrum-informative-visual-color: var(--spectrum-blue-900);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-600);\n --spectrum-red-visual-color: var(--spectrum-red-700);\n --spectrum-orange-visual-color: var(--spectrum-orange-900);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-1100);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-900);\n --spectrum-celery-visual-color: var(--spectrum-celery-800);\n --spectrum-green-visual-color: var(--spectrum-green-800);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-800);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-900);\n --spectrum-blue-visual-color: var(--spectrum-blue-900);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-900);\n --spectrum-purple-visual-color: var(--spectrum-purple-900);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-900);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-900);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum { /* spectrum-animationGlobals.css */\n --spectrum-global-animation-duration-0: 0ms;\n --spectrum-global-animation-duration-100: 130ms;\n --spectrum-global-animation-duration-200: 160ms;\n --spectrum-global-animation-duration-300: 190ms;\n --spectrum-global-animation-duration-400: 220ms;\n --spectrum-global-animation-duration-500: 250ms;\n --spectrum-global-animation-duration-600: 300ms;\n --spectrum-global-animation-duration-700: 350ms;\n --spectrum-global-animation-duration-800: 400ms;\n --spectrum-global-animation-duration-900: 450ms;\n --spectrum-global-animation-duration-1000: 500ms;\n --spectrum-global-animation-duration-2000: 1000ms;\n --spectrum-global-animation-duration-4000: 2000ms;\n --spectrum-global-animation-ease-in-out: cubic-bezier(.45, 0, .40, 1);\n --spectrum-global-animation-ease-in: cubic-bezier(.50, 0, 1, 1);\n --spectrum-global-animation-ease-out: cubic-bezier(0, 0, 0.40, 1);\n --spectrum-global-animation-linear: cubic-bezier(0, 0, 1, 1);\n\n\n /* spectrum-colorGlobals.css */\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-global-color-static-black: rgb(0, 0, 0);\n --spectrum-global-color-static-white: rgb(255, 255, 255);\n --spectrum-global-color-static-blue: rgb(0, 87, 191);\n --spectrum-global-color-static-gray-50: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-75: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-100: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-200: rgb(235, 235, 235);\n --spectrum-global-color-static-gray-300: rgb(217, 217, 217);\n --spectrum-global-color-static-gray-400: rgb(179, 179, 179);\n --spectrum-global-color-static-gray-500: rgb(146, 146, 146);\n --spectrum-global-color-static-gray-600: rgb(110, 110, 110);\n --spectrum-global-color-static-gray-700: rgb(71, 71, 71);\n --spectrum-global-color-static-gray-800: rgb(34, 34, 34);\n --spectrum-global-color-static-gray-900: rgb(0, 0, 0);\n --spectrum-global-color-static-blue-200: rgb(130, 193, 251);\n --spectrum-global-color-static-blue-300: rgb(98, 173, 247);\n --spectrum-global-color-static-blue-400: rgb(66, 151, 244);\n --spectrum-global-color-static-blue-500: rgb(27, 127, 245);\n --spectrum-global-color-static-blue-600: rgb(4, 105, 227);\n --spectrum-global-color-static-blue-700: rgb(0, 87, 190);\n --spectrum-global-color-static-blue-800: rgb(0, 72, 153);\n --spectrum-global-color-static-red-400: rgb(237, 64, 48);\n --spectrum-global-color-static-red-500: rgb(217, 28, 21);\n --spectrum-global-color-static-red-600: rgb(187, 2, 2);\n --spectrum-global-color-static-red-700: rgb(154, 0, 0);\n --spectrum-global-color-static-orange-400: rgb(250, 139, 26);\n --spectrum-global-color-static-orange-500: rgb(233, 117, 0);\n --spectrum-global-color-static-orange-600: rgb(209, 97, 0);\n --spectrum-global-color-static-orange-700: rgb(182, 80, 0);\n --spectrum-global-color-static-green-400: rgb(29, 169, 115);\n --spectrum-global-color-static-green-500: rgb(0, 148, 97);\n --spectrum-global-color-static-green-600: rgb(0, 126, 80);\n --spectrum-global-color-static-green-700: rgb(0, 105, 65);\n --spectrum-global-color-static-celery-200: rgb(126, 229, 114);\n --spectrum-global-color-static-celery-300: rgb(87, 212, 86);\n --spectrum-global-color-static-celery-400: rgb(48, 193, 61);\n --spectrum-global-color-static-celery-500: rgb(15, 172, 38);\n --spectrum-global-color-static-celery-600: rgb(0, 150, 20);\n --spectrum-global-color-static-celery-700: rgb(0, 128, 15);\n --spectrum-global-color-static-chartreuse-300: rgb(176, 222, 27);\n --spectrum-global-color-static-chartreuse-400: rgb(157, 203, 13);\n --spectrum-global-color-static-chartreuse-500: rgb(139, 182, 4);\n --spectrum-global-color-static-chartreuse-600: rgb(122, 162, 0);\n --spectrum-global-color-static-chartreuse-700: rgb(106, 141, 0);\n --spectrum-global-color-static-yellow-200: rgb(250, 237, 123);\n --spectrum-global-color-static-yellow-300: rgb(250, 224, 23);\n --spectrum-global-color-static-yellow-400: rgb(238, 205, 0);\n --spectrum-global-color-static-yellow-500: rgb(221, 185, 0);\n --spectrum-global-color-static-yellow-600: rgb(201, 164, 0);\n --spectrum-global-color-static-yellow-700: rgb(181, 144, 0);\n --spectrum-global-color-static-magenta-200: rgb(253, 127, 175);\n --spectrum-global-color-static-magenta-300: rgb(242, 98, 157);\n --spectrum-global-color-static-magenta-400: rgb(226, 68, 135);\n --spectrum-global-color-static-magenta-500: rgb(205, 40, 111);\n --spectrum-global-color-static-magenta-600: rgb(179, 15, 89);\n --spectrum-global-color-static-magenta-700: rgb(149, 0, 72);\n --spectrum-global-color-static-fuchsia-400: rgb(228, 93, 230);\n --spectrum-global-color-static-fuchsia-500: rgb(211, 63, 212);\n --spectrum-global-color-static-fuchsia-600: rgb(188, 39, 187);\n --spectrum-global-color-static-fuchsia-700: rgb(163, 10, 163);\n --spectrum-global-color-static-purple-400: rgb(178, 121, 250);\n --spectrum-global-color-static-purple-500: rgb(161, 93, 246);\n --spectrum-global-color-static-purple-600: rgb(142, 67, 234);\n --spectrum-global-color-static-purple-700: rgb(120, 43, 216);\n --spectrum-global-color-static-purple-800: rgb(98, 23, 190);\n --spectrum-global-color-static-indigo-200: rgb(178, 181, 255);\n --spectrum-global-color-static-indigo-300: rgb(155, 159, 255);\n --spectrum-global-color-static-indigo-400: rgb(132, 137, 253);\n --spectrum-global-color-static-indigo-500: rgb(109, 115, 246);\n --spectrum-global-color-static-indigo-600: rgb(87, 93, 232);\n --spectrum-global-color-static-indigo-700: rgb(68, 74, 208);\n --spectrum-global-color-static-seafoam-200: rgb(75, 206, 199);\n --spectrum-global-color-static-seafoam-300: rgb(32, 187, 180);\n --spectrum-global-color-static-seafoam-400: rgb(0, 166, 160);\n --spectrum-global-color-static-seafoam-500: rgb(0, 145, 139);\n --spectrum-global-color-static-seafoam-600: rgb(0, 124, 118);\n --spectrum-global-color-static-seafoam-700: rgb(0, 103, 99);\n --spectrum-global-color-opacity-100: 1;\n --spectrum-global-color-opacity-90: 0.9;\n --spectrum-global-color-opacity-80: 0.8;\n --spectrum-global-color-opacity-60: 0.6;\n --spectrum-global-color-opacity-50: 0.5;\n --spectrum-global-color-opacity-42: 0.42;\n --spectrum-global-color-opacity-40: 0.4;\n --spectrum-global-color-opacity-30: 0.3;\n --spectrum-global-color-opacity-25: 0.25;\n --spectrum-global-color-opacity-20: 0.2;\n --spectrum-global-color-opacity-15: 0.15;\n --spectrum-global-color-opacity-10: 0.1;\n --spectrum-global-color-opacity-8: 0.08;\n --spectrum-global-color-opacity-7: 0.07;\n --spectrum-global-color-opacity-6: 0.06;\n --spectrum-global-color-opacity-5: 0.05;\n --spectrum-global-color-opacity-4: 0.04;\n\n /* mappings from v5 color indices to v6 color indices */\n --spectrum-global-color-celery-400: var(--spectrum-celery-600);\n --spectrum-global-color-celery-500: var(--spectrum-celery-700);\n --spectrum-global-color-celery-600: var(--spectrum-celery-800);\n --spectrum-global-color-celery-700: var(--spectrum-celery-900);\n --spectrum-global-color-chartreuse-400: var(--spectrum-chartreuse-500);\n --spectrum-global-color-chartreuse-500: var(--spectrum-chartreuse-600);\n --spectrum-global-color-chartreuse-600: var(--spectrum-chartreuse-700);\n --spectrum-global-color-chartreuse-700: var(--spectrum-chartreuse-800);\n --spectrum-global-color-yellow-400: var(--spectrum-yellow-400);\n --spectrum-global-color-yellow-500: var(--spectrum-yellow-500);\n --spectrum-global-color-yellow-600: var(--spectrum-yellow-600);\n --spectrum-global-color-yellow-700: var(--spectrum-yellow-700);\n --spectrum-global-color-magenta-400: var(--spectrum-magenta-800);\n --spectrum-global-color-magenta-500: var(--spectrum-magenta-900);\n --spectrum-global-color-magenta-600: var(--spectrum-magenta-1000);\n --spectrum-global-color-magenta-700: var(--spectrum-magenta-1100);\n --spectrum-global-color-fuchsia-400: var(--spectrum-fuchsia-800);\n --spectrum-global-color-fuchsia-500: var(--spectrum-fuchsia-900);\n --spectrum-global-color-fuchsia-600: var(--spectrum-fuchsia-1000);\n --spectrum-global-color-fuchsia-700: var(--spectrum-fuchsia-1100);\n --spectrum-global-color-purple-400: var(--spectrum-purple-800);\n --spectrum-global-color-purple-500: var(--spectrum-purple-900);\n --spectrum-global-color-purple-600: var(--spectrum-purple-1000);\n --spectrum-global-color-purple-700: var(--spectrum-purple-1100);\n --spectrum-global-color-indigo-400: var(--spectrum-indigo-800);\n --spectrum-global-color-indigo-500: var(--spectrum-indigo-900);\n --spectrum-global-color-indigo-600: var(--spectrum-indigo-1000);\n --spectrum-global-color-indigo-700: var(--spectrum-indigo-1100);\n --spectrum-global-color-seafoam-400: var(--spectrum-seafoam-700);\n --spectrum-global-color-seafoam-500: var(--spectrum-seafoam-800);\n --spectrum-global-color-seafoam-600: var(--spectrum-seafoam-900);\n --spectrum-global-color-seafoam-700: var(--spectrum-seafoam-1000);\n --spectrum-global-color-red-400: var(--spectrum-red-800);\n --spectrum-global-color-red-500: var(--spectrum-red-900);\n --spectrum-global-color-red-600: var(--spectrum-red-1000);\n --spectrum-global-color-red-700: var(--spectrum-red-1100);\n --spectrum-global-color-orange-400: var(--spectrum-orange-600);\n --spectrum-global-color-orange-500: var(--spectrum-orange-700);\n --spectrum-global-color-orange-600: var(--spectrum-orange-800);\n --spectrum-global-color-orange-700: var(--spectrum-orange-900);\n --spectrum-global-color-green-400: var(--spectrum-green-800);\n --spectrum-global-color-green-500: var(--spectrum-green-900);\n --spectrum-global-color-green-600: var(--spectrum-green-1000);\n --spectrum-global-color-green-700: var(--spectrum-green-1100);\n --spectrum-global-color-blue-400: var(--spectrum-blue-800);\n --spectrum-global-color-blue-500: var(--spectrum-blue-900);\n --spectrum-global-color-blue-600: var(--spectrum-blue-1000);\n --spectrum-global-color-blue-700: var(--spectrum-blue-1100);\n --spectrum-global-color-gray-50: var(--spectrum-gray-50);\n --spectrum-global-color-gray-75: var(--spectrum-gray-75);\n --spectrum-global-color-gray-100: var(--spectrum-gray-100);\n --spectrum-global-color-gray-200: var(--spectrum-gray-200);\n --spectrum-global-color-gray-300: var(--spectrum-gray-300);\n --spectrum-global-color-gray-400: var(--spectrum-gray-400);\n --spectrum-global-color-gray-500: var(--spectrum-gray-500);\n --spectrum-global-color-gray-600: var(--spectrum-gray-600);\n --spectrum-global-color-gray-700: var(--spectrum-gray-700);\n --spectrum-global-color-gray-800: var(--spectrum-gray-800);\n --spectrum-global-color-gray-900: var(--spectrum-gray-900);\n\n /* v6 aliases */\n --spectrum-accent-color-100: var(--spectrum-blue-100);\n --spectrum-accent-color-200: var(--spectrum-blue-200);\n --spectrum-accent-color-300: var(--spectrum-blue-300);\n --spectrum-accent-color-400: var(--spectrum-blue-400);\n --spectrum-accent-color-500: var(--spectrum-blue-500);\n --spectrum-accent-color-600: var(--spectrum-blue-600);\n --spectrum-accent-color-700: var(--spectrum-blue-700);\n --spectrum-accent-color-800: var(--spectrum-blue-800);\n --spectrum-accent-color-900: var(--spectrum-blue-900);\n --spectrum-accent-color-1000: var(--spectrum-blue-1000);\n --spectrum-accent-color-1100: var(--spectrum-blue-1100);\n --spectrum-accent-color-1200: var(--spectrum-blue-1200);\n --spectrum-accent-color-1300: var(--spectrum-blue-1300);\n --spectrum-accent-color-1400: var(--spectrum-blue-1400);\n\n /* spectrum-colorSemantics.css */\n --spectrum-semantic-negative-color-background: var(--spectrum-negative-background-color-default);\n --spectrum-semantic-negative-color-default: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-hover: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-dark: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-border: var(--spectrum-red-800);\n --spectrum-semantic-negative-color-icon: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-status: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-text-large: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-text-small: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-down: var(--spectrum-red-1100);\n --spectrum-semantic-negative-color-state-focus: var(--spectrum-red-1000);\n --spectrum-semantic-notice-color-background: var(--spectrum-global-color-static-orange-600);\n --spectrum-semantic-notice-color-default: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-dark: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-border: var(--spectrum-orange-600);\n --spectrum-semantic-notice-color-icon: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-status: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-text-large: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-text-small: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-state-down: var(--spectrum-orange-900);\n --spectrum-semantic-notice-color-state-focus: var(--spectrum-orange-600);\n --spectrum-semantic-positive-color-background: var(--spectrum-positive-background-color-default);\n --spectrum-semantic-positive-color-default: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-dark: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-border: var(--spectrum-green-800);\n --spectrum-semantic-positive-color-icon: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-status: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-text-large: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-text-small: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-state-down: var(--spectrum-green-1100);\n --spectrum-semantic-positive-color-state-focus: var(--spectrum-green-800);\n --spectrum-semantic-informative-color-background: var(--spectrum-informative-background-color-default);\n --spectrum-semantic-informative-color-default: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-dark: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-border: var(--spectrum-blue-800);\n --spectrum-semantic-informative-color-icon: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-status: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-text-large: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-text-small: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-state-down: var(--spectrum-blue-1100);\n --spectrum-semantic-informative-color-state-focus: var(--spectrum-blue-800);\n --spectrum-semantic-cta-color-background-default: var(--spectrum-accent-background-color-default);\n --spectrum-semantic-cta-color-background-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-semantic-cta-color-background-down: var(--spectrum-accent-background-color-down);\n --spectrum-semantic-cta-color-background-key-focus: var(--spectrum-accent-background-color-key-focus);\n --spectrum-semantic-background-color-key-focus: var(--spectrum-global-color-static-blue-600);\n --spectrum-semantic-neutral-color-background: var(--spectrum-neutral-subdued-background-color-default);\n --spectrum-semantic-presence-color-1: var(--spectrum-global-color-static-red-500);\n --spectrum-semantic-presence-color-2: var(--spectrum-global-color-static-orange-400);\n --spectrum-semantic-presence-color-3: var(--spectrum-global-color-static-yellow-400);\n --spectrum-semantic-presence-color-4: rgb(75, 204, 162);\n --spectrum-semantic-presence-color-5: rgb(0, 199, 255);\n --spectrum-semantic-presence-color-6: rgb(0, 140, 184);\n --spectrum-semantic-presence-color-7: rgb(126, 75, 243);\n --spectrum-semantic-presence-color-8: var(--spectrum-global-color-static-fuchsia-600);\n\n\n /* spectrum-dimensionGlobals.css */\n --spectrum-global-dimension-static-size-0: 0px;\n --spectrum-global-dimension-static-size-10: 1px;\n --spectrum-global-dimension-static-size-25: 2px;\n --spectrum-global-dimension-static-size-50: 4px;\n --spectrum-global-dimension-static-size-40: 3px;\n --spectrum-global-dimension-static-size-65: 5px;\n --spectrum-global-dimension-static-size-100: 8px;\n --spectrum-global-dimension-static-size-115: 9px;\n --spectrum-global-dimension-static-size-125: 10px;\n --spectrum-global-dimension-static-size-130: 11px;\n --spectrum-global-dimension-static-size-150: 12px;\n --spectrum-global-dimension-static-size-160: 13px;\n --spectrum-global-dimension-static-size-175: 14px;\n --spectrum-global-dimension-static-size-200: 16px;\n --spectrum-global-dimension-static-size-225: 18px;\n --spectrum-global-dimension-static-size-250: 20px;\n --spectrum-global-dimension-static-size-300: 24px;\n --spectrum-global-dimension-static-size-400: 32px;\n --spectrum-global-dimension-static-size-450: 36px;\n --spectrum-global-dimension-static-size-500: 40px;\n --spectrum-global-dimension-static-size-550: 44px;\n --spectrum-global-dimension-static-size-600: 48px;\n --spectrum-global-dimension-static-size-700: 56px;\n --spectrum-global-dimension-static-size-800: 64px;\n --spectrum-global-dimension-static-size-900: 72px;\n --spectrum-global-dimension-static-size-1000: 80px;\n --spectrum-global-dimension-static-size-1200: 96px;\n --spectrum-global-dimension-static-size-1700: 136px;\n --spectrum-global-dimension-static-size-2400: 192px;\n --spectrum-global-dimension-static-size-2600: 208px;\n --spectrum-global-dimension-static-size-3400: 272px;\n --spectrum-global-dimension-static-size-3600: 288px;\n --spectrum-global-dimension-static-size-4600: 368px;\n --spectrum-global-dimension-static-size-5000: 400px;\n --spectrum-global-dimension-static-size-6000: 480px;\n --spectrum-global-dimension-static-font-size-50: 11px;\n --spectrum-global-dimension-static-font-size-75: 12px;\n --spectrum-global-dimension-static-font-size-100: 14px;\n --spectrum-global-dimension-static-font-size-150: 15px;\n --spectrum-global-dimension-static-font-size-200: 16px;\n --spectrum-global-dimension-static-font-size-300: 18px;\n --spectrum-global-dimension-static-font-size-400: 20px;\n --spectrum-global-dimension-static-font-size-500: 22px;\n --spectrum-global-dimension-static-font-size-600: 25px;\n --spectrum-global-dimension-static-font-size-700: 28px;\n --spectrum-global-dimension-static-font-size-800: 32px;\n --spectrum-global-dimension-static-font-size-900: 36px;\n --spectrum-global-dimension-static-font-size-1000: 40px;\n --spectrum-global-dimension-static-percent-50: 50%;\n --spectrum-global-dimension-static-percent-100: 100%;\n --spectrum-global-dimension-static-breakpoint-xsmall: 304px;\n --spectrum-global-dimension-static-breakpoint-small: 768px;\n --spectrum-global-dimension-static-breakpoint-medium: 1280px;\n --spectrum-global-dimension-static-breakpoint-large: 1768px;\n --spectrum-global-dimension-static-breakpoint-xlarge: 2160px;\n --spectrum-global-dimension-static-grid-columns: 12;\n --spectrum-global-dimension-static-grid-fluid-width: 100%;\n --spectrum-global-dimension-static-grid-fixed-max-width: 1280px;\n\n\n /* spectrum-fontGlobals.css */\n --spectrum-global-font-family-base: adobe-clean, 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Trebuchet MS', 'Lucida Grande', sans-serif;\n --spectrum-global-font-family-serif: adobe-clean-serif, 'Source Serif Pro', Georgia, serif;\n --spectrum-global-font-family-code: 'Source Code Pro', Monaco, monospace;\n --spectrum-global-font-weight-thin: 100;\n --spectrum-global-font-weight-ultra-light: 200;\n --spectrum-global-font-weight-light: 300;\n --spectrum-global-font-weight-regular: 400;\n --spectrum-global-font-weight-medium: 500;\n --spectrum-global-font-weight-semi-bold: 600;\n --spectrum-global-font-weight-bold: 700;\n --spectrum-global-font-weight-extra-bold: 800;\n --spectrum-global-font-weight-black: 900;\n --spectrum-global-font-style-regular: normal;\n --spectrum-global-font-style-italic: italic;\n --spectrum-global-font-letter-spacing-none: 0;\n --spectrum-global-font-letter-spacing-small: 0.0125em;\n --spectrum-global-font-letter-spacing-han: 0.05em;\n --spectrum-global-font-letter-spacing-medium: 0.06em;\n --spectrum-global-font-line-height-large: 1.7;\n --spectrum-global-font-line-height-medium: 1.5;\n --spectrum-global-font-line-height-small: 1.3;\n --spectrum-global-font-multiplier-25: 0.25em;\n --spectrum-global-font-multiplier-75: 0.75em;\n\n\n /* spectrum-staticAliases.css */\n --spectrum-alias-border-size-thin: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-size-thick: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-size-thicker: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-size-thickest: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-input-border-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-offset-thin: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-offset-thick: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-offset-thicker: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-border-offset-thickest: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-baseline: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-grid-gutter-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-gutter-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-gutter-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-gutter-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-gutter-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-margin-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-margin-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-margin-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-margin-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-margin-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-layout-region-margin-bottom-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-layout-region-margin-bottom-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-layout-region-margin-bottom-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-layout-region-margin-bottom-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-layout-region-margin-bottom-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-radial-reaction-size-default: var(--spectrum-global-dimension-static-size-550);\n --spectrum-alias-font-family-ar: var(--spectrum-global-font-font-family-ar);\n --spectrum-alias-font-family-he: var(--spectrum-global-font-font-family-he);\n --spectrum-alias-font-family-zh: var(--spectrum-global-font-font-family-zh);\n --spectrum-alias-font-family-zhhans: var(--spectrum-global-font-font-family-zhhans);\n --spectrum-alias-font-family-ko: var(--spectrum-global-font-font-family-ko);\n --spectrum-alias-font-family-ja: var(--spectrum-global-font-font-family-ja);\n --spectrum-alias-font-family-condensed: var(--spectrum-global-font-font-family-condensed);\n --spectrum-alias-line-height-body: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-line-height-title: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-body-han-text-line-height: var(--spectrum-global-font-line-height-large);\n --spectrum-alias-body-text-font-family: var(--spectrum-global-font-family-base);\n --spectrum-alias-body-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-body-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-button-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-han-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-detail-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-detail-text-font-weight-light: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-serif-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-detail-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-font-family: var(--spectrum-global-font-family-code);\n --spectrum-alias-han-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-quiet-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-light: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-light-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-light-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-body-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-body-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-subheading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-subheading-text-font-weight-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-detail-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-code-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-code-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-margin-bottom: var(--spectrum-global-font-multiplier-25);\n --spectrum-alias-body-margin-bottom: var(--spectrum-global-font-multiplier-75);\n --spectrum-alias-focus-ring-gap: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-gap: var(--spectrum-global-dimension-static-size-0);\n --spectrum-alias-focus-ring-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-loupe-entry-animation-duration: var(--spectrum-global-animation-duration-300);\n --spectrum-alias-loupe-exit-animation-duration: var(--spectrum-global-animation-duration-300);\n}\n\n.spectrum--medium,\n.spectrum--large {\n /* spectrum-dimensionAliases.css */\n --spectrum-alias-dropshadow-blur: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-dropshadow-offset-y: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-font-size-default: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-line-height-small: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-line-height-medium: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-line-height-large: var(--spectrum-global-dimension-size-300);\n --spectrum-alias-line-height-xlarge: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-line-height-xxlarge: var(--spectrum-global-dimension-size-600);\n --spectrum-alias-layout-label-gap-size: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-pill-button-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-pill-button-text-baseline: var(--spectrum-global-dimension-static-size-150);\n --spectrum-alias-border-radius-xsmall: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-border-radius-small: var(--spectrum-global-dimension-size-25);\n --spectrum-alias-border-radius-regular: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-border-radius-medium: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-border-radius-large: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-single-line-height: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-single-line-width: var(--spectrum-global-dimension-size-2400);\n --spectrum-alias-workflow-icon-size: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-heading-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-han-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display2-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-xxl-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-display2-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xxl-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-xxl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xxl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading1-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-xl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xl-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-han-xl-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-l-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-l-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-han-l-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-han-l-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-m-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-m-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-han-m-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-han-m-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-s-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-s-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-xs-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xs-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xxs-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-heading-xxs-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-avatar-size-50: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-avatar-size-75: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-avatar-size-200: var(--spectrum-global-dimension-size-275);\n --spectrum-alias-avatar-size-300: var(--spectrum-global-dimension-size-325);\n --spectrum-alias-avatar-size-500: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-avatar-size-700: var(--spectrum-global-dimension-size-500);\n}\n\n.spectrum--darkest,\n.spectrum--dark,\n.spectrum--light,\n.spectrum--lightest {\n /* spectrum-colorAliases.css */\n --spectrum-alias-background-color-default: var(--spectrum-gray-100);\n --spectrum-alias-background-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-background-color-transparent: transparent;\n --spectrum-alias-background-color-label-gray: rgb(112, 112, 112);\n --spectrum-alias-background-color-quickactions-overlay: rgba(0,0,0,0.2);\n --spectrum-alias-placeholder-text-color: var(--spectrum-gray-800);\n --spectrum-alias-placeholder-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-selected: var(--spectrum-gray-800);\n --spectrum-alias-label-text-color: var(--spectrum-gray-700);\n --spectrum-alias-text-color: var(--spectrum-gray-800);\n --spectrum-alias-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-text-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-mouse-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-text-color-invalid: var(--spectrum-red-900);\n --spectrum-alias-text-color-selected: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-title-text-color: var(--spectrum-gray-900);\n --spectrum-alias-heading-text-color: var(--spectrum-gray-900);\n --spectrum-alias-border-color: var(--spectrum-gray-500);\n --spectrum-alias-border-color-hover: var(--spectrum-gray-600);\n --spectrum-alias-border-color-down: var(--spectrum-gray-600);\n --spectrum-alias-border-color-focus: var(--spectrum-blue-800);\n --spectrum-alias-input-border-color-key-focus: var(--spectrum-alias-border-color-focus);\n --spectrum-alias-border-color-mouse-focus: var(--spectrum-blue-900);\n --spectrum-alias-border-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-border-color-extralight: var(--spectrum-gray-100);\n --spectrum-alias-border-color-light: var(--spectrum-gray-200);\n --spectrum-alias-border-color-mid: var(--spectrum-gray-300);\n --spectrum-alias-border-color-dark: var(--spectrum-gray-400);\n --spectrum-alias-border-color-transparent: transparent;\n --spectrum-alias-border-color-translucent-dark: rgba(0,0,0,0.05);\n --spectrum-alias-border-color-translucent-darker: rgba(0,0,0,0.1);\n --spectrum-alias-focus-color: var(--spectrum-blue-800);\n --spectrum-alias-focus-ring-color: var(--spectrum-alias-focus-color);\n --spectrum-alias-track-color-default: var(--spectrum-gray-300);\n --spectrum-alias-track-color-disabled: var(--spectrum-gray-300);\n --spectrum-alias-track-color-over-background: rgba(255,255,255,0.2);\n --spectrum-alias-icon-color: var(--spectrum-gray-700);\n --spectrum-alias-icon-color-over-background: var(--spectrum-global-color-static-white);\n --spectrum-alias-icon-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-down: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-focus: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-icon-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-selected: var(--spectrum-blue-900);\n --spectrum-alias-icon-color-selected-hover: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-selected-down: var(--spectrum-blue-1100);\n --spectrum-alias-icon-color-selected-focus: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-error: var(--spectrum-red-800);\n --spectrum-alias-toolbar-background-color: var(--spectrum-gray-100);\n --spectrum-alias-colorhandle-outer-border-color: rgba(0,0,0,0.42);\n --spectrum-alias-categorical-color-1: var(--spectrum-global-color-static-seafoam-200);\n --spectrum-alias-categorical-color-2: var(--spectrum-global-color-static-indigo-700);\n --spectrum-alias-categorical-color-3: var(--spectrum-global-color-static-orange-500);\n --spectrum-alias-categorical-color-4: var(--spectrum-global-color-static-magenta-500);\n --spectrum-alias-categorical-color-5: var(--spectrum-global-color-static-indigo-200);\n --spectrum-alias-categorical-color-6: var(--spectrum-global-color-static-celery-200);\n --spectrum-alias-categorical-color-7: var(--spectrum-global-color-static-blue-500);\n --spectrum-alias-categorical-color-8: var(--spectrum-global-color-static-purple-800);\n --spectrum-alias-categorical-color-9: var(--spectrum-global-color-static-yellow-500);\n --spectrum-alias-categorical-color-10: var(--spectrum-global-color-static-orange-700);\n --spectrum-alias-categorical-color-11: var(--spectrum-global-color-static-green-600);\n --spectrum-alias-categorical-color-12: var(--spectrum-global-color-static-chartreuse-300);\n --spectrum-alias-categorical-color-13: var(--spectrum-global-color-static-blue-200);\n --spectrum-alias-categorical-color-14: var(--spectrum-global-color-static-fuchsia-500);\n --spectrum-alias-categorical-color-15: var(--spectrum-global-color-static-magenta-200);\n --spectrum-alias-categorical-color-16: var(--spectrum-global-color-static-yellow-200);\n\n --spectrum-alias-toggle-color-default: var(--spectrum-gray-600);\n --spectrum-alias-toggle-color-hover: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-key-focus: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected-hover: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-key-focus: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-down: var(--spectrum-gray-900);\n\n --spectrum-actionbutton-background-color-disabled: transparent;\n --spectrum-actionbutton-border-color-disabled: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-quiet-background-color-hover: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-key-focus: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-down: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-static-black-border-color: rgba(0, 0, 0, 0.4);\n --spectrum-actionbutton-static-black-border-color-hover: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-key-focus: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-down: rgba(0, 0, 0, 0.7);\n --spectrum-actionbutton-static-black-border-color-disabled: rgba(0, 0, 0, 0.25);\n --spectrum-actionbutton-static-black-border-color-selected-disabled: rgba(0, 0, 0, 0.1);\n --spectrum-actionbutton-static-black-background-color: transparent;\n --spectrum-actionbutton-static-black-background-color-disabled: transparent;\n\n --spectrum-actionbutton-static-white-border-color: rgba(255, 255, 255, 0.4);\n --spectrum-actionbutton-static-white-border-color-hover: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-key-focus: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-down: rgba(255, 255, 255, 0.7);\n --spectrum-actionbutton-static-white-border-color-disabled: rgba(255, 255, 255, 0.25);\n --spectrum-actionbutton-static-white-border-color-selected-disabled: rgba(255, 255, 255, 0.1);\n --spectrum-actionbutton-static-white-background-color: transparent;\n --spectrum-actionbutton-static-white-background-color-disabled: transparent;\n\n --spectrum-combobox-fieldbutton-inset: 0;\n --spectrum-combobox-fieldbutton-border-left-width: var(--spectrum-alias-input-border-size);\n --spectrum-combobox-fieldbutton-focus-ring-border-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius);\n --spectrum-combobox-fieldbutton-start-border-radius: 0;\n --spectrum-combobox-fieldbutton-end-border-radius: var(--spectrum-alias-border-radius-regular);\n\n --spectrum-actiongroup-compact-button-gap: calc(-1 * var(--spectrum-actionbutton-border-size));\n\n --spectrum-tooltip-background-color: var(--spectrum-neutral-subdued-background-color-default);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--large {\n --spectrum-global-dimension-scale-factor: 1.25;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 4px;\n --spectrum-global-dimension-size-50: 5px;\n --spectrum-global-dimension-size-65: 6px;\n --spectrum-global-dimension-size-75: 8px;\n --spectrum-global-dimension-size-85: 9px;\n --spectrum-global-dimension-size-100: 10px;\n --spectrum-global-dimension-size-115: 11px;\n --spectrum-global-dimension-size-125: 13px;\n --spectrum-global-dimension-size-130: 14px;\n --spectrum-global-dimension-size-150: 15px;\n --spectrum-global-dimension-size-160: 16px;\n --spectrum-global-dimension-size-175: 18px;\n --spectrum-global-dimension-size-200: 20px;\n --spectrum-global-dimension-size-225: 22px;\n --spectrum-global-dimension-size-250: 25px;\n --spectrum-global-dimension-size-275: 28px;\n --spectrum-global-dimension-size-300: 30px;\n --spectrum-global-dimension-size-325: 32px;\n --spectrum-global-dimension-size-350: 35px;\n --spectrum-global-dimension-size-400: 40px;\n --spectrum-global-dimension-size-450: 45px;\n --spectrum-global-dimension-size-500: 50px;\n --spectrum-global-dimension-size-550: 56px;\n --spectrum-global-dimension-size-600: 60px;\n --spectrum-global-dimension-size-675: 68px;\n --spectrum-global-dimension-size-700: 70px;\n --spectrum-global-dimension-size-800: 80px;\n --spectrum-global-dimension-size-900: 90px;\n --spectrum-global-dimension-size-1000: 100px;\n --spectrum-global-dimension-size-1200: 120px;\n --spectrum-global-dimension-size-1250: 125px;\n --spectrum-global-dimension-size-1600: 160px;\n --spectrum-global-dimension-size-1700: 170px;\n --spectrum-global-dimension-size-2000: 200px;\n --spectrum-global-dimension-size-2400: 240px;\n --spectrum-global-dimension-size-3000: 300px;\n --spectrum-global-dimension-size-3400: 340px;\n --spectrum-global-dimension-size-3600: 360px;\n --spectrum-global-dimension-size-4600: 460px;\n --spectrum-global-dimension-size-5000: 500px;\n --spectrum-global-dimension-size-6000: 600px;\n --spectrum-global-dimension-font-size-25: 12px;\n --spectrum-global-dimension-font-size-50: 13px;\n --spectrum-global-dimension-font-size-75: 15px;\n --spectrum-global-dimension-font-size-100: 17px;\n --spectrum-global-dimension-font-size-150: 18px;\n --spectrum-global-dimension-font-size-200: 19px;\n --spectrum-global-dimension-font-size-300: 22px;\n --spectrum-global-dimension-font-size-400: 24px;\n --spectrum-global-dimension-font-size-500: 27px;\n --spectrum-global-dimension-font-size-600: 31px;\n --spectrum-global-dimension-font-size-700: 34px;\n --spectrum-global-dimension-font-size-800: 39px;\n --spectrum-global-dimension-font-size-900: 44px;\n --spectrum-global-dimension-font-size-1000: 49px;\n --spectrum-global-dimension-font-size-1100: 55px;\n --spectrum-global-dimension-font-size-1200: 62px;\n --spectrum-global-dimension-font-size-1300: 70px;\n --spectrum-alias-avatar-size-100: 26px;\n --spectrum-alias-avatar-size-400: 36px;\n --spectrum-alias-avatar-size-600: 46px;\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-barloader-large-border-radius: 4px;\n --spectrum-barloader-large-indeterminate-border-radius: 4px;\n --spectrum-barloader-large-over-background-border-radius: 4px;\n --spectrum-barloader-small-border-radius: 3px;\n --spectrum-barloader-small-indeterminate-border-radius: 3px;\n --spectrum-barloader-small-over-background-border-radius: 3px;\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-cta-min-width: 90px;\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-over-background-min-width: 90px;\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-primary-min-width: 90px;\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-over-background-min-width: 90px;\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-primary-min-width: 90px;\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-secondary-min-width: 90px;\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-warning-min-width: 90px;\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-secondary-min-width: 90px;\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-warning-min-width: 90px;\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-small-border-size: 3px;\n --spectrum-circleloader-small-over-background-border-size: 3px;\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-85);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-static-size-2600);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-85);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-icon-arrow-down-small-height: 12px;\n --spectrum-icon-arrow-left-medium-height: 12px;\n --spectrum-icon-checkmark-medium-width: 16px;\n --spectrum-icon-checkmark-medium-height: 16px;\n --spectrum-icon-checkmark-small-width: 12px;\n --spectrum-icon-checkmark-small-height: 12px;\n --spectrum-icon-chevron-down-medium-width: 12px;\n --spectrum-icon-chevron-left-large-width: 16px;\n --spectrum-icon-chevron-left-medium-height: 12px;\n --spectrum-icon-chevron-right-large-width: 16px;\n --spectrum-icon-chevron-right-medium-height: 12px;\n --spectrum-icon-cross-large-width: 16px;\n --spectrum-icon-cross-large-height: 16px;\n --spectrum-icon-dash-small-width: 12px;\n --spectrum-icon-dash-small-height: 12px;\n --spectrum-icon-skip-left-width: 10px;\n --spectrum-icon-skip-left-height: 12px;\n --spectrum-icon-skip-right-width: 10px;\n --spectrum-icon-skip-right-height: 12px;\n --spectrum-icon-triplegripper-width: 12px;\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-600);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-600);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin).\n */\n --spectrum-selectlist-option-padding-height: var(--spectrum-global-dimension-static-size-160);\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-loader-bar-large-border-radius: 4px;\n --spectrum-loader-bar-large-over-background-border-radius: 4px;\n --spectrum-loader-bar-small-border-radius: 3px;\n --spectrum-loader-bar-small-over-background-border-radius: 3px;\n --spectrum-loader-circle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-small-border-size: 3px;\n --spectrum-loader-circle-small-over-background-border-size: 3px;\n --spectrum-meter-large-border-radius: 4px;\n --spectrum-meter-small-border-radius: 3px;\n --spectrum-pagination-page-button-line-height: 32px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 8px;\n --spectrum-overlay-negative-transform-distance: -8px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progressbar-large-border-radius: 4px;\n --spectrum-progressbar-large-indeterminate-border-radius: 4px;\n --spectrum-progressbar-large-over-background-border-radius: 4px;\n --spectrum-progressbar-small-border-radius: 3px;\n --spectrum-progressbar-small-indeterminate-border-radius: 3px;\n --spectrum-progressbar-small-over-background-border-radius: 3px;\n --spectrum-progresscircle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-small-border-size: 3px;\n --spectrum-progresscircle-small-indeterminate-border-size: 3px;\n --spectrum-progresscircle-small-over-background-border-size: 3px;\n --spectrum-progresscircle-medium-indeterminate-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-icon-width: 30px;\n --spectrum-rating-indicator-width: 20px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-emphasized-icon-width: 30px;\n --spectrum-rating-emphasized-indicator-width: 20px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-quiet-icon-width: 30px;\n --spectrum-rating-quiet-indicator-width: 20px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-sidenav-item-touch-hit-bottom: 3px;\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: 3px;\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-handle-border-radius: 9px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 18px;\n --spectrum-switch-handle-transform-x-rtl: -18px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-emphasized-handle-border-radius: 9px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-quiet-handle-border-radius: 9px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tabs-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-margin-left: -11px;\n --spectrum-tabs-compact-margin-right: -11px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-focus-ring-border-radius: 6px;\n --spectrum-tabs-margin-left: -11px;\n --spectrum-tabs-margin-right: -11px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-emphasized-margin-left: -11px;\n --spectrum-tabs-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-margin-left: -11px;\n --spectrum-tabs-quiet-margin-right: -11px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-margin-left: -11px;\n --spectrum-tabs-quiet-compact-margin-right: -11px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-vertical-focus-ring-border-radius: 6px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tooltip-padding-bottom: 6px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 6px;\n --spectrum-tooltip-info-content-max-width: 126px;\n --spectrum-tooltip-negative-padding-bottom: 6px;\n --spectrum-tooltip-negative-content-max-width: 126px;\n --spectrum-tooltip-positive-padding-bottom: 6px;\n --spectrum-tooltip-positive-content-max-width: 126px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--light {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(255, 255, 255);\n --spectrum-gray-75: rgb(253, 253, 253);\n --spectrum-gray-100: rgb(248, 248, 248);\n --spectrum-gray-200: rgb(230, 230, 230);\n --spectrum-gray-300: rgb(213, 213, 213);\n --spectrum-gray-400: rgb(177, 177, 177);\n --spectrum-gray-500: rgb(144, 144, 144);\n --spectrum-gray-600: rgb(109, 109, 109);\n --spectrum-gray-700: rgb(70, 70, 70);\n --spectrum-gray-800: rgb(34, 34, 34);\n --spectrum-gray-900: rgb(0, 0, 0);\n --spectrum-red-100: rgb(255, 235, 231);\n --spectrum-red-200: rgb(255, 221, 214);\n --spectrum-red-300: rgb(255, 205, 195);\n --spectrum-red-400: rgb(255, 183, 169);\n --spectrum-red-500: rgb(255, 155, 136);\n --spectrum-red-600: rgb(255, 124, 101);\n --spectrum-red-700: rgb(247, 92, 70);\n --spectrum-red-800: rgb(234, 56, 41);\n --spectrum-red-900: rgb(211, 21, 16);\n --spectrum-red-1000: rgb(180, 0, 0);\n --spectrum-red-1100: rgb(147, 0, 0);\n --spectrum-red-1200: rgb(116, 0, 0);\n --spectrum-red-1300: rgb(89, 0, 0);\n --spectrum-red-1400: rgb(67, 0, 0);\n --spectrum-orange-100: rgb(255, 236, 204);\n --spectrum-orange-200: rgb(255, 223, 173);\n --spectrum-orange-300: rgb(253, 210, 145);\n --spectrum-orange-400: rgb(255, 187, 99);\n --spectrum-orange-500: rgb(255, 160, 55);\n --spectrum-orange-600: rgb(246, 133, 17);\n --spectrum-orange-700: rgb(228, 111, 0);\n --spectrum-orange-800: rgb(203, 93, 0);\n --spectrum-orange-900: rgb(177, 76, 0);\n --spectrum-orange-1000: rgb(149, 61, 0);\n --spectrum-orange-1100: rgb(122, 47, 0);\n --spectrum-orange-1200: rgb(97, 35, 0);\n --spectrum-orange-1300: rgb(73, 25, 1);\n --spectrum-orange-1400: rgb(53, 18, 1);\n --spectrum-yellow-100: rgb(251, 241, 152);\n --spectrum-yellow-200: rgb(248, 231, 80);\n --spectrum-yellow-300: rgb(248, 217, 4);\n --spectrum-yellow-400: rgb(232, 198, 0);\n --spectrum-yellow-500: rgb(215, 179, 0);\n --spectrum-yellow-600: rgb(196, 159, 0);\n --spectrum-yellow-700: rgb(176, 140, 0);\n --spectrum-yellow-800: rgb(155, 120, 0);\n --spectrum-yellow-900: rgb(133, 102, 0);\n --spectrum-yellow-1000: rgb(112, 83, 0);\n --spectrum-yellow-1100: rgb(91, 67, 0);\n --spectrum-yellow-1200: rgb(72, 51, 0);\n --spectrum-yellow-1300: rgb(54, 37, 0);\n --spectrum-yellow-1400: rgb(40, 26, 0);\n --spectrum-chartreuse-100: rgb(219, 252, 110);\n --spectrum-chartreuse-200: rgb(203, 244, 67);\n --spectrum-chartreuse-300: rgb(188, 233, 42);\n --spectrum-chartreuse-400: rgb(170, 216, 22);\n --spectrum-chartreuse-500: rgb(152, 197, 10);\n --spectrum-chartreuse-600: rgb(135, 177, 3);\n --spectrum-chartreuse-700: rgb(118, 156, 0);\n --spectrum-chartreuse-800: rgb(103, 136, 0);\n --spectrum-chartreuse-900: rgb(87, 116, 0);\n --spectrum-chartreuse-1000: rgb(72, 96, 0);\n --spectrum-chartreuse-1100: rgb(58, 77, 0);\n --spectrum-chartreuse-1200: rgb(44, 59, 0);\n --spectrum-chartreuse-1300: rgb(33, 44, 0);\n --spectrum-chartreuse-1400: rgb(24, 31, 0);\n --spectrum-celery-100: rgb(205, 252, 191);\n --spectrum-celery-200: rgb(174, 246, 157);\n --spectrum-celery-300: rgb(150, 238, 133);\n --spectrum-celery-400: rgb(114, 224, 106);\n --spectrum-celery-500: rgb(78, 207, 80);\n --spectrum-celery-600: rgb(39, 187, 54);\n --spectrum-celery-700: rgb(7, 167, 33);\n --spectrum-celery-800: rgb(0, 145, 18);\n --spectrum-celery-900: rgb(0, 124, 15);\n --spectrum-celery-1000: rgb(0, 103, 15);\n --spectrum-celery-1100: rgb(0, 83, 13);\n --spectrum-celery-1200: rgb(0, 64, 10);\n --spectrum-celery-1300: rgb(0, 48, 7);\n --spectrum-celery-1400: rgb(0, 34, 5);\n --spectrum-green-100: rgb(206, 248, 224);\n --spectrum-green-200: rgb(173, 244, 206);\n --spectrum-green-300: rgb(137, 236, 188);\n --spectrum-green-400: rgb(103, 222, 168);\n --spectrum-green-500: rgb(73, 204, 147);\n --spectrum-green-600: rgb(47, 184, 128);\n --spectrum-green-700: rgb(21, 164, 110);\n --spectrum-green-800: rgb(0, 143, 93);\n --spectrum-green-900: rgb(0, 122, 77);\n --spectrum-green-1000: rgb(0, 101, 62);\n --spectrum-green-1100: rgb(0, 81, 50);\n --spectrum-green-1200: rgb(5, 63, 39);\n --spectrum-green-1300: rgb(10, 46, 29);\n --spectrum-green-1400: rgb(10, 32, 21);\n --spectrum-seafoam-100: rgb(206, 247, 243);\n --spectrum-seafoam-200: rgb(170, 241, 234);\n --spectrum-seafoam-300: rgb(140, 233, 226);\n --spectrum-seafoam-400: rgb(101, 218, 210);\n --spectrum-seafoam-500: rgb(63, 201, 193);\n --spectrum-seafoam-600: rgb(15, 181, 174);\n --spectrum-seafoam-700: rgb(0, 161, 154);\n --spectrum-seafoam-800: rgb(0, 140, 135);\n --spectrum-seafoam-900: rgb(0, 119, 114);\n --spectrum-seafoam-1000: rgb(0, 99, 95);\n --spectrum-seafoam-1100: rgb(12, 79, 76);\n --spectrum-seafoam-1200: rgb(18, 60, 58);\n --spectrum-seafoam-1300: rgb(18, 44, 43);\n --spectrum-seafoam-1400: rgb(15, 31, 30);\n --spectrum-cyan-100: rgb(197, 248, 255);\n --spectrum-cyan-200: rgb(164, 240, 255);\n --spectrum-cyan-300: rgb(136, 231, 250);\n --spectrum-cyan-400: rgb(96, 216, 243);\n --spectrum-cyan-500: rgb(51, 197, 232);\n --spectrum-cyan-600: rgb(18, 176, 218);\n --spectrum-cyan-700: rgb(1, 156, 200);\n --spectrum-cyan-800: rgb(0, 134, 180);\n --spectrum-cyan-900: rgb(0, 113, 159);\n --spectrum-cyan-1000: rgb(0, 93, 137);\n --spectrum-cyan-1100: rgb(0, 74, 115);\n --spectrum-cyan-1200: rgb(0, 57, 93);\n --spectrum-cyan-1300: rgb(0, 42, 70);\n --spectrum-cyan-1400: rgb(0, 30, 51);\n --spectrum-blue-100: rgb(224, 242, 255);\n --spectrum-blue-200: rgb(202, 232, 255);\n --spectrum-blue-300: rgb(181, 222, 255);\n --spectrum-blue-400: rgb(150, 206, 253);\n --spectrum-blue-500: rgb(120, 187, 250);\n --spectrum-blue-600: rgb(89, 167, 246);\n --spectrum-blue-700: rgb(56, 146, 243);\n --spectrum-blue-800: rgb(20, 122, 243);\n --spectrum-blue-900: rgb(2, 101, 220);\n --spectrum-blue-1000: rgb(0, 84, 182);\n --spectrum-blue-1100: rgb(0, 68, 145);\n --spectrum-blue-1200: rgb(0, 53, 113);\n --spectrum-blue-1300: rgb(0, 39, 84);\n --spectrum-blue-1400: rgb(0, 28, 60);\n --spectrum-indigo-100: rgb(237, 238, 255);\n --spectrum-indigo-200: rgb(224, 226, 255);\n --spectrum-indigo-300: rgb(211, 213, 255);\n --spectrum-indigo-400: rgb(193, 196, 255);\n --spectrum-indigo-500: rgb(172, 175, 255);\n --spectrum-indigo-600: rgb(149, 153, 255);\n --spectrum-indigo-700: rgb(126, 132, 252);\n --spectrum-indigo-800: rgb(104, 109, 244);\n --spectrum-indigo-900: rgb(82, 88, 228);\n --spectrum-indigo-1000: rgb(64, 70, 202);\n --spectrum-indigo-1100: rgb(50, 54, 168);\n --spectrum-indigo-1200: rgb(38, 41, 134);\n --spectrum-indigo-1300: rgb(27, 30, 100);\n --spectrum-indigo-1400: rgb(20, 22, 72);\n --spectrum-purple-100: rgb(246, 235, 255);\n --spectrum-purple-200: rgb(238, 221, 255);\n --spectrum-purple-300: rgb(230, 208, 255);\n --spectrum-purple-400: rgb(219, 187, 254);\n --spectrum-purple-500: rgb(204, 164, 253);\n --spectrum-purple-600: rgb(189, 139, 252);\n --spectrum-purple-700: rgb(174, 114, 249);\n --spectrum-purple-800: rgb(157, 87, 244);\n --spectrum-purple-900: rgb(137, 61, 231);\n --spectrum-purple-1000: rgb(115, 38, 211);\n --spectrum-purple-1100: rgb(93, 19, 183);\n --spectrum-purple-1200: rgb(71, 12, 148);\n --spectrum-purple-1300: rgb(51, 16, 106);\n --spectrum-purple-1400: rgb(35, 15, 73);\n --spectrum-fuchsia-100: rgb(255, 233, 252);\n --spectrum-fuchsia-200: rgb(255, 218, 250);\n --spectrum-fuchsia-300: rgb(254, 199, 248);\n --spectrum-fuchsia-400: rgb(251, 174, 246);\n --spectrum-fuchsia-500: rgb(245, 146, 243);\n --spectrum-fuchsia-600: rgb(237, 116, 237);\n --spectrum-fuchsia-700: rgb(224, 85, 226);\n --spectrum-fuchsia-800: rgb(205, 58, 206);\n --spectrum-fuchsia-900: rgb(182, 34, 183);\n --spectrum-fuchsia-1000: rgb(157, 3, 158);\n --spectrum-fuchsia-1100: rgb(128, 0, 129);\n --spectrum-fuchsia-1200: rgb(100, 6, 100);\n --spectrum-fuchsia-1300: rgb(71, 14, 70);\n --spectrum-fuchsia-1400: rgb(50, 13, 49);\n --spectrum-magenta-100: rgb(255, 234, 241);\n --spectrum-magenta-200: rgb(255, 220, 232);\n --spectrum-magenta-300: rgb(255, 202, 221);\n --spectrum-magenta-400: rgb(255, 178, 206);\n --spectrum-magenta-500: rgb(255, 149, 189);\n --spectrum-magenta-600: rgb(250, 119, 170);\n --spectrum-magenta-700: rgb(239, 90, 152);\n --spectrum-magenta-800: rgb(222, 61, 130);\n --spectrum-magenta-900: rgb(200, 34, 105);\n --spectrum-magenta-1000: rgb(173, 9, 85);\n --spectrum-magenta-1100: rgb(142, 0, 69);\n --spectrum-magenta-1200: rgb(112, 0, 55);\n --spectrum-magenta-1300: rgb(84, 3, 42);\n --spectrum-magenta-1400: rgb(60, 6, 29);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.4);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.15);\n --spectrum-alias-background-color-hover-overlay: rgba(0,0,0,0.04);\n --spectrum-alias-highlight-hover: rgba(0,0,0,0.06);\n --spectrum-alias-highlight-active: rgba(44,44,44,0.1);\n --spectrum-alias-highlight-selected: rgba(2,101,220,0.1);\n --spectrum-alias-highlight-selected-hover: rgba(2,101,220,0.2);\n --spectrum-alias-highlight-invalid: rgba(211, 21, 16, 0.15); /* matches red-900 */\n --spectrum-alias-text-highlight-color: rgba(2,101,220,0.2);\n --spectrum-alias-background-color-quickactions: rgba(248,248,248,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(34,34,34,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-300);\n --spectrum-colorarea-border-color: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(20,115,230,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(20,115,230,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(34,34,34,0.02);\n --spectrum-well-border-color: rgba(0,0,0,0.05);\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-50);\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: rgb(118, 118, 118); /* 4.54:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-900);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-1100);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-1000);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-800);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-900);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-600);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-700);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-800);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-700);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-900);\n --spectrum-negative-background-color-hover: var(--spectrum-red-1000);\n --spectrum-negative-background-color-down: var(--spectrum-red-1100);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-1000);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-900);\n --spectrum-positive-background-color-hover: var(--spectrum-green-1000);\n --spectrum-positive-background-color-down: var(--spectrum-green-1100);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-1000);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-900);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-1000);\n --spectrum-informative-background-color-down: var(--spectrum-blue-1100);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-1000);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-600);\n --spectrum-orange-background-color-default: var(--spectrum-orange-600);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-400);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-500);\n --spectrum-celery-background-color-default: var(--spectrum-celery-600);\n --spectrum-green-background-color-default: var(--spectrum-green-900);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-900);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-900);\n --spectrum-blue-background-color-default: var(--spectrum-blue-900);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-900);\n --spectrum-purple-background-color-default: var(--spectrum-purple-900);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-900);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-900);\n\n --spectrum-negative-visual-color: var(--spectrum-red-800);\n --spectrum-positive-visual-color: var(--spectrum-green-700);\n --spectrum-notice-visual-color: var(--spectrum-orange-700);\n --spectrum-informative-visual-color: var(--spectrum-blue-800);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-500);\n --spectrum-red-visual-color: var(--spectrum-red-800);\n --spectrum-orange-visual-color: var(--spectrum-orange-700);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-600);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-600);\n --spectrum-celery-visual-color: var(--spectrum-celery-700);\n --spectrum-green-visual-color: var(--spectrum-green-700);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-700);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-600);\n --spectrum-blue-visual-color: var(--spectrum-blue-800);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-800);\n --spectrum-purple-visual-color: var(--spectrum-purple-800);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-800);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-800);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--medium {\n --spectrum-global-dimension-scale-factor: 1;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 3px;\n --spectrum-global-dimension-size-50: 4px;\n --spectrum-global-dimension-size-65: 5px;\n --spectrum-global-dimension-size-75: 6px;\n --spectrum-global-dimension-size-85: 7px;\n --spectrum-global-dimension-size-100: 8px;\n --spectrum-global-dimension-size-115: 9px;\n --spectrum-global-dimension-size-125: 10px;\n --spectrum-global-dimension-size-130: 11px;\n --spectrum-global-dimension-size-150: 12px;\n --spectrum-global-dimension-size-160: 13px;\n --spectrum-global-dimension-size-175: 14px;\n --spectrum-global-dimension-size-200: 16px;\n --spectrum-global-dimension-size-225: 18px;\n --spectrum-global-dimension-size-250: 20px;\n --spectrum-global-dimension-size-275: 22px;\n --spectrum-global-dimension-size-300: 24px;\n --spectrum-global-dimension-size-325: 26px;\n --spectrum-global-dimension-size-350: 28px;\n --spectrum-global-dimension-size-400: 32px;\n --spectrum-global-dimension-size-450: 36px;\n --spectrum-global-dimension-size-500: 40px;\n --spectrum-global-dimension-size-550: 44px;\n --spectrum-global-dimension-size-600: 48px;\n --spectrum-global-dimension-size-675: 54px;\n --spectrum-global-dimension-size-700: 56px;\n --spectrum-global-dimension-size-800: 64px;\n --spectrum-global-dimension-size-900: 72px;\n --spectrum-global-dimension-size-1000: 80px;\n --spectrum-global-dimension-size-1200: 96px;\n --spectrum-global-dimension-size-1250: 100px;\n --spectrum-global-dimension-size-1600: 128px;\n --spectrum-global-dimension-size-1700: 136px;\n --spectrum-global-dimension-size-2000: 160px;\n --spectrum-global-dimension-size-2400: 192px;\n --spectrum-global-dimension-size-3000: 240px;\n --spectrum-global-dimension-size-3400: 272px;\n --spectrum-global-dimension-size-3600: 288px;\n --spectrum-global-dimension-size-4600: 368px;\n --spectrum-global-dimension-size-5000: 400px;\n --spectrum-global-dimension-size-6000: 480px;\n --spectrum-global-dimension-font-size-25: 10px;\n --spectrum-global-dimension-font-size-50: 11px;\n --spectrum-global-dimension-font-size-75: 12px;\n --spectrum-global-dimension-font-size-100: 14px;\n --spectrum-global-dimension-font-size-150: 15px;\n --spectrum-global-dimension-font-size-200: 16px;\n --spectrum-global-dimension-font-size-300: 18px;\n --spectrum-global-dimension-font-size-400: 20px;\n --spectrum-global-dimension-font-size-500: 22px;\n --spectrum-global-dimension-font-size-600: 25px;\n --spectrum-global-dimension-font-size-700: 28px;\n --spectrum-global-dimension-font-size-800: 32px;\n --spectrum-global-dimension-font-size-900: 36px;\n --spectrum-global-dimension-font-size-1000: 40px;\n --spectrum-global-dimension-font-size-1100: 45px;\n --spectrum-global-dimension-font-size-1200: 50px;\n --spectrum-global-dimension-font-size-1300: 60px;\n --spectrum-alias-avatar-size-100: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-avatar-size-400: var(--spectrum-global-dimension-size-350);\n --spectrum-alias-avatar-size-600: var(--spectrum-global-dimension-size-450);\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-barloader-large-border-radius: 3px;\n --spectrum-barloader-large-indeterminate-border-radius: 3px;\n --spectrum-barloader-large-over-background-border-radius: 3px;\n --spectrum-barloader-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-cta-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-circleloader-medium-border-size: 3px;\n --spectrum-circleloader-medium-over-background-border-size: 3px;\n --spectrum-circleloader-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-circleloader-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-150);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-size-2400);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-150);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-icon-arrow-down-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-arrow-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-medium-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-medium-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-down-medium-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-left-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-right-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-right-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-cross-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-cross-large-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-dash-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-dash-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-left-width: 9px;\n --spectrum-icon-skip-left-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-right-width: 9px;\n --spectrum-icon-skip-right-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-triplegripper-width: var(--spectrum-global-dimension-size-125);\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-400);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-400);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin). Replaced var(--spectrum-global-dimension-static-size-85) with\n static 7px value since a fallback isn't generated anymore due to the rename.\n */\n --spectrum-selectlist-option-padding-height: 7px;\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-loader-bar-large-border-radius: 3px;\n --spectrum-loader-bar-large-over-background-border-radius: 3px;\n --spectrum-loader-bar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-bar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-medium-border-size: 3px;\n --spectrum-loader-circle-medium-over-background-border-size: 3px;\n --spectrum-loader-circle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-meter-large-border-radius: 3px;\n --spectrum-meter-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-pagination-page-button-line-height: 26px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 6px;\n --spectrum-overlay-negative-transform-distance: -6px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-progressbar-large-border-radius: 3px;\n --spectrum-progressbar-large-indeterminate-border-radius: 3px;\n --spectrum-progressbar-large-over-background-border-radius: 3px;\n --spectrum-progressbar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-border-size: 3px;\n --spectrum-progresscircle-medium-over-background-border-size: 3px;\n --spectrum-progresscircle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-indeterminate-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-indeterminate-border-size: 3px;\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-margin-bottom: 0px;\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-margin-bottom: 0px;\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-margin-bottom: 0px;\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-icon-width: 24px;\n --spectrum-rating-indicator-width: 16px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-emphasized-icon-width: 24px;\n --spectrum-rating-emphasized-indicator-width: 16px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-quiet-icon-width: 24px;\n --spectrum-rating-quiet-indicator-width: 16px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-sidenav-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-track-width: 26px;\n --spectrum-switch-handle-border-radius: 7px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 12px;\n --spectrum-switch-handle-transform-x-rtl: -12px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-track-width: 26px;\n --spectrum-switch-emphasized-handle-border-radius: 7px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-track-width: 26px;\n --spectrum-switch-quiet-handle-border-radius: 7px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tabs-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-margin-left: -8px;\n --spectrum-tabs-compact-margin-right: -8px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-focus-ring-border-radius: 5px;\n --spectrum-tabs-margin-left: -8px;\n --spectrum-tabs-margin-right: -8px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-emphasized-margin-left: -8px;\n --spectrum-tabs-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-margin-left: -8px;\n --spectrum-tabs-quiet-margin-right: -8px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-margin-left: -8px;\n --spectrum-tabs-quiet-compact-margin-right: -8px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-vertical-focus-ring-border-radius: 5px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tooltip-padding-bottom: 5px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 5px;\n --spectrum-tooltip-info-content-max-width: 101px;\n --spectrum-tooltip-negative-padding-bottom: 5px;\n --spectrum-tooltip-negative-content-max-width: 101px;\n --spectrum-tooltip-positive-padding-bottom: 5px;\n --spectrum-tooltip-positive-content-max-width: 101px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/// \n\nimport darkest from '@adobe/spectrum-css-temp/vars/spectrum-darkest.css';\nimport global from '@adobe/spectrum-css-temp/vars/spectrum-global.css';\nimport large from '@adobe/spectrum-css-temp/vars/spectrum-large.css';\nimport light from '@adobe/spectrum-css-temp/vars/spectrum-light.css';\nimport medium from '@adobe/spectrum-css-temp/vars/spectrum-medium.css';\nimport {Theme} from '@react-types/provider';\n\nexport let theme: Theme = {\n global,\n light,\n dark: darkest,\n medium,\n large\n};\n"],"names":["module","exports","parcelRequire","$1c29a66706a62afd$export$dca3b0875bd9a954","$1c29a66706a62afd$export$16fa2f45be04daa8","$1c29a66706a62afd$export$ffb0004e005737fa","$1c29a66706a62afd$export$e2c29f18771995cb","$1c29a66706a62afd$export$221d75b3f55bb0bd","$1c29a66706a62afd$export$5f8d39834fd61797","$1c29a66706a62afd$export$74bf444e3cd11ea5","$1c29a66706a62afd$export$ae55be85d98224ed","$1c29a66706a62afd$export$e530037191fcd5d7","$1c29a66706a62afd$export$fd42f52fd3ae1109","$1c29a66706a62afd$export$c8a8987d4410bf2d","$1c29a66706a62afd$export$d38cd72104c1f0e9","$1c29a66706a62afd$export$7d1e3a5e95ceca43","$1c29a66706a62afd$export$257a8862b851cb5b","$1c29a66706a62afd$export$a8257692ac88316c","$1c29a66706a62afd$export$488013bae63b21da","$1c29a66706a62afd$export$7c73462e0d25e514","$1c29a66706a62afd$export$35808ee640e87ca7","$1c29a66706a62afd$export$fae74005e78b1a27","$1c29a66706a62afd$export$dc8fbce3eb94dc1e","$1c29a66706a62afd$export$6d9c69b0de29b591","$1c29a66706a62afd$export$d5a552a76deda3c2","$1c29a66706a62afd$export$e5c5a5f917a5871c","$1c29a66706a62afd$export$1538c33de8887b59","$1c29a66706a62afd$export$13e3392192263954","$1c29a66706a62afd$export$b8f5890fc79d6aca","$1c29a66706a62afd$export$60241385465d0a34","$1c29a66706a62afd$export$83d89fbfd8236492","$1c29a66706a62afd$var$n","Symbol","for","$1c29a66706a62afd$var$p","$1c29a66706a62afd$var$q","$1c29a66706a62afd$var$r","$1c29a66706a62afd$var$t","$1c29a66706a62afd$var$u","$1c29a66706a62afd$var$v","$1c29a66706a62afd$var$w","$1c29a66706a62afd$var$x","$1c29a66706a62afd$var$y","$1c29a66706a62afd$var$z","$1c29a66706a62afd$var$A","$1c29a66706a62afd$var$B","iterator","$1c29a66706a62afd$var$C","a","b","c","arguments","length","encodeURIComponent","$1c29a66706a62afd$var$D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","$1c29a66706a62afd$var$E","$1c29a66706a62afd$var$F","this","props","context","refs","updater","$1c29a66706a62afd$var$G","$1c29a66706a62afd$var$H","prototype","isReactComponent","setState","Error","forceUpdate","$1c29a66706a62afd$var$I","constructor","$8coUR","isPureReactComponent","$1c29a66706a62afd$var$J","current","$1c29a66706a62afd$var$K","Object","hasOwnProperty","$1c29a66706a62afd$var$L","key","ref","__self","__source","$1c29a66706a62afd$var$M","e","d","g","k","call","f","children","h","Array","m","defaultProps","$$typeof","type","_owner","$1c29a66706a62afd$var$O","$1c29a66706a62afd$var$P","$1c29a66706a62afd$var$Q","$1c29a66706a62afd$var$R","pop","result","keyPrefix","func","count","$1c29a66706a62afd$var$S","push","$1c29a66706a62afd$var$T","$1c29a66706a62afd$var$U","isArray","next","done","value","keys","join","$1c29a66706a62afd$var$V","replace","$1c29a66706a62afd$var$escape","toString","$1c29a66706a62afd$var$W","$1c29a66706a62afd$var$aa","$1c29a66706a62afd$var$X","$1c29a66706a62afd$var$N","$1c29a66706a62afd$var$Y","$1c29a66706a62afd$var$Z","map","forEach","toArray","only","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","assign","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","bind","render","_ctor","_status","_result","compare","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","$5f82c58e3d599bd6$var$getOwnPropertySymbols","getOwnPropertySymbols","$5f82c58e3d599bd6$var$hasOwnProperty","$5f82c58e3d599bd6$var$propIsEnumerable","propertyIsEnumerable","$5f82c58e3d599bd6$var$toObject","val","TypeError","test1","String","getOwnPropertyNames","test2","i","fromCharCode","n","test3","split","letter","err","$5f82c58e3d599bd6$var$shouldUseNative","target","source","from","symbols","to","s","$0b2e6adb871a3b94$export$ae55be85d98224ed","$0b2e6adb871a3b94$export$d39a5bbd09211389","$0b2e6adb871a3b94$export$466bfc07425424d5","$0b2e6adb871a3b94$export$cd75ccfd720a3cd4","$0b2e6adb871a3b94$export$fa8d919ba61d84db","$0b2e6adb871a3b94$export$b3890eb0ae9dca99","$0b2e6adb871a3b94$export$502457920280e6be","$0b2e6adb871a3b94$export$c78a37762a8d58e1","$0b2e6adb871a3b94$export$2577ef5d2565d52f","$0b2e6adb871a3b94$export$dc54d992c10e8a18","$0b2e6adb871a3b94$export$83d89fbfd8236492","$0b2e6adb871a3b94$var$u","$acw62","$0b2e6adb871a3b94$var$ba","l","slice","apply","onError","$0b2e6adb871a3b94$var$da","$0b2e6adb871a3b94$var$ea","$0b2e6adb871a3b94$var$fa","$0b2e6adb871a3b94$var$ha","$0b2e6adb871a3b94$var$ia","$0b2e6adb871a3b94$var$ja","$0b2e6adb871a3b94$var$la","$0b2e6adb871a3b94$var$ma","$0b2e6adb871a3b94$var$na","$0b2e6adb871a3b94$var$oa","currentTarget","$0b2e6adb871a3b94$var$ka","$0b2e6adb871a3b94$var$pa","$0b2e6adb871a3b94$var$qa","$0b2e6adb871a3b94$var$ra","indexOf","$0b2e6adb871a3b94$var$sa","extractEvents","eventTypes","$0b2e6adb871a3b94$var$ta","phasedRegistrationNames","$0b2e6adb871a3b94$var$ua","registrationName","$0b2e6adb871a3b94$var$va","$0b2e6adb871a3b94$var$wa","dependencies","$0b2e6adb871a3b94$var$xa","$0b2e6adb871a3b94$var$ya","window","document","createElement","$0b2e6adb871a3b94$var$za","$0b2e6adb871a3b94$var$Aa","$0b2e6adb871a3b94$var$Ba","$0b2e6adb871a3b94$var$Ca","stateNode","$0b2e6adb871a3b94$var$Da","$0b2e6adb871a3b94$var$Ea","$0b2e6adb871a3b94$var$Fa","$0b2e6adb871a3b94$var$Ga","$0b2e6adb871a3b94$var$Ha","$0b2e6adb871a3b94$var$Ia","$0b2e6adb871a3b94$var$Ja","$0b2e6adb871a3b94$var$Ka","$0b2e6adb871a3b94$var$La","$0b2e6adb871a3b94$var$Ma","$0b2e6adb871a3b94$var$Na","$0b2e6adb871a3b94$var$Oa","$0b2e6adb871a3b94$var$Pa","$0b2e6adb871a3b94$var$Qa","$0b2e6adb871a3b94$var$v","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","$0b2e6adb871a3b94$var$C","toLowerCase","$0b2e6adb871a3b94$var$Ua","$0b2e6adb871a3b94$var$Va","toUpperCase","xlinkHref","$0b2e6adb871a3b94$var$Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","$0b2e6adb871a3b94$var$Xa","$0b2e6adb871a3b94$var$Sa","isNaN","$0b2e6adb871a3b94$var$Ta","test","$0b2e6adb871a3b94$var$Ra","removeAttribute","setAttribute","setAttributeNS","$0b2e6adb871a3b94$var$Ya","$0b2e6adb871a3b94$var$E","$0b2e6adb871a3b94$var$Za","$0b2e6adb871a3b94$var$$a","$0b2e6adb871a3b94$var$ab","$0b2e6adb871a3b94$var$bb","$0b2e6adb871a3b94$var$cb","$0b2e6adb871a3b94$var$db","$0b2e6adb871a3b94$var$eb","$0b2e6adb871a3b94$var$fb","$0b2e6adb871a3b94$var$gb","$0b2e6adb871a3b94$var$hb","$0b2e6adb871a3b94$var$ib","$0b2e6adb871a3b94$var$jb","$0b2e6adb871a3b94$var$kb","$0b2e6adb871a3b94$var$lb","$0b2e6adb871a3b94$var$mb","$0b2e6adb871a3b94$var$nb","$0b2e6adb871a3b94$var$pb","displayName","name","$0b2e6adb871a3b94$var$qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","$0b2e6adb871a3b94$var$rb","$0b2e6adb871a3b94$var$sb","nodeName","$0b2e6adb871a3b94$var$xb","_valueTracker","getOwnPropertyDescriptor","get","set","defineProperty","configurable","enumerable","getValue","setValue","stopTracking","$0b2e6adb871a3b94$var$tb","$0b2e6adb871a3b94$var$yb","checked","$0b2e6adb871a3b94$var$zb","defaultChecked","defaultValue","_wrapperState","initialChecked","$0b2e6adb871a3b94$var$Ab","initialValue","controlled","$0b2e6adb871a3b94$var$Bb","$0b2e6adb871a3b94$var$Cb","$0b2e6adb871a3b94$var$Db","$0b2e6adb871a3b94$var$Eb","ownerDocument","activeElement","$0b2e6adb871a3b94$var$Gb","Children","$0b2e6adb871a3b94$var$Fb","$0b2e6adb871a3b94$var$Hb","options","selected","defaultSelected","disabled","$0b2e6adb871a3b94$var$Ib","dangerouslySetInnerHTML","$0b2e6adb871a3b94$var$Jb","$0b2e6adb871a3b94$var$Kb","$0b2e6adb871a3b94$var$Lb","textContent","$0b2e6adb871a3b94$var$Mb","$0b2e6adb871a3b94$var$Nb","$0b2e6adb871a3b94$var$Ob","$0b2e6adb871a3b94$var$Pb","$0b2e6adb871a3b94$var$Qb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","$0b2e6adb871a3b94$var$Rb","lastChild","nodeType","nodeValue","$0b2e6adb871a3b94$var$Sb","$0b2e6adb871a3b94$var$Tb","animationend","animationiteration","animationstart","transitionend","$0b2e6adb871a3b94$var$Ub","$0b2e6adb871a3b94$var$Vb","$0b2e6adb871a3b94$var$Wb","style","animation","transition","$0b2e6adb871a3b94$var$Xb","$0b2e6adb871a3b94$var$Yb","$0b2e6adb871a3b94$var$Zb","$0b2e6adb871a3b94$var$$b","$0b2e6adb871a3b94$var$ac","$0b2e6adb871a3b94$var$bc","WeakMap","Map","$0b2e6adb871a3b94$var$cc","$0b2e6adb871a3b94$var$dc","alternate","effectTag","$0b2e6adb871a3b94$var$ec","memoizedState","dehydrated","$0b2e6adb871a3b94$var$fc","$0b2e6adb871a3b94$var$hc","child","sibling","$0b2e6adb871a3b94$var$gc","$0b2e6adb871a3b94$var$ic","concat","$0b2e6adb871a3b94$var$jc","$0b2e6adb871a3b94$var$kc","$0b2e6adb871a3b94$var$lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","$0b2e6adb871a3b94$var$mc","$0b2e6adb871a3b94$var$nc","srcElement","correspondingUseElement","parentNode","$0b2e6adb871a3b94$var$oc","$0b2e6adb871a3b94$var$pc","$0b2e6adb871a3b94$var$qc","topLevelType","nativeEvent","targetInst","ancestors","$0b2e6adb871a3b94$var$rc","eventSystemFlags","$0b2e6adb871a3b94$var$sc","containerInfo","$0b2e6adb871a3b94$var$tc","$0b2e6adb871a3b94$var$uc","has","$0b2e6adb871a3b94$var$vc","$0b2e6adb871a3b94$var$F","$0b2e6adb871a3b94$var$wc","$0b2e6adb871a3b94$var$xc","$0b2e6adb871a3b94$var$yc","$0b2e6adb871a3b94$var$zc","$0b2e6adb871a3b94$var$Ac","$0b2e6adb871a3b94$var$Bc","$0b2e6adb871a3b94$var$Cc","$0b2e6adb871a3b94$var$Dc","$0b2e6adb871a3b94$var$Ec","$0b2e6adb871a3b94$var$Fc","$0b2e6adb871a3b94$var$Gc","$0b2e6adb871a3b94$var$Hc","$0b2e6adb871a3b94$var$Ic","$0b2e6adb871a3b94$var$Kc","blockedOn","container","$0b2e6adb871a3b94$var$Lc","delete","pointerId","$0b2e6adb871a3b94$var$Mc","$0b2e6adb871a3b94$var$Nc","$0b2e6adb871a3b94$var$Pc","$fO90s","unstable_runWithPriority","priority","hydrate","$0b2e6adb871a3b94$var$Qc","$0b2e6adb871a3b94$var$Rc","$0b2e6adb871a3b94$var$Sc","$0b2e6adb871a3b94$var$Tc","shift","$0b2e6adb871a3b94$var$Uc","unstable_scheduleCallback","unstable_NormalPriority","$0b2e6adb871a3b94$var$Vc","$0b2e6adb871a3b94$var$Wc","$0b2e6adb871a3b94$var$Yc","$0b2e6adb871a3b94$var$Zc","$0b2e6adb871a3b94$var$$c","$0b2e6adb871a3b94$var$ad","bubbled","captured","eventPriority","$0b2e6adb871a3b94$var$bd","$0b2e6adb871a3b94$var$cd","$0b2e6adb871a3b94$var$dd","unstable_UserBlockingPriority","$0b2e6adb871a3b94$var$ed","$0b2e6adb871a3b94$var$fd","$0b2e6adb871a3b94$var$gd","$0b2e6adb871a3b94$var$hd","$0b2e6adb871a3b94$var$id","addEventListener","$0b2e6adb871a3b94$var$Oc","$0b2e6adb871a3b94$var$jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","$0b2e6adb871a3b94$var$kd","$0b2e6adb871a3b94$var$ld","trim","$0b2e6adb871a3b94$var$md","setProperty","charAt","substring","$0b2e6adb871a3b94$var$nd","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","$0b2e6adb871a3b94$var$od","$0b2e6adb871a3b94$var$pd","is","$0b2e6adb871a3b94$var$qd","$0b2e6adb871a3b94$var$rd","$0b2e6adb871a3b94$var$sd","$0b2e6adb871a3b94$var$td","body","$0b2e6adb871a3b94$var$ud","$0b2e6adb871a3b94$var$vd","node","offset","nextSibling","$0b2e6adb871a3b94$var$wd","contains","compareDocumentPosition","$0b2e6adb871a3b94$var$xd","HTMLIFrameElement","contentWindow","location","href","$0b2e6adb871a3b94$var$yd","contentEditable","$0b2e6adb871a3b94$var$Bd","$0b2e6adb871a3b94$var$Cd","$0b2e6adb871a3b94$var$Dd","$0b2e6adb871a3b94$var$Ed","$0b2e6adb871a3b94$var$Fd","autoFocus","$0b2e6adb871a3b94$var$Gd","__html","$0b2e6adb871a3b94$var$Hd","setTimeout","$0b2e6adb871a3b94$var$Id","clearTimeout","$0b2e6adb871a3b94$var$Jd","$0b2e6adb871a3b94$var$Kd","previousSibling","data","$0b2e6adb871a3b94$var$Ld","Math","random","$0b2e6adb871a3b94$var$Md","$0b2e6adb871a3b94$var$Nd","$0b2e6adb871a3b94$var$Od","$0b2e6adb871a3b94$var$Pd","$0b2e6adb871a3b94$var$Qd","$0b2e6adb871a3b94$var$Rd","$0b2e6adb871a3b94$var$Sd","$0b2e6adb871a3b94$var$Td","dispatchConfig","$0b2e6adb871a3b94$var$Ud","_targetInst","$0b2e6adb871a3b94$var$Vd","$0b2e6adb871a3b94$var$Wd","$0b2e6adb871a3b94$var$Xd","$0b2e6adb871a3b94$var$Yd","$0b2e6adb871a3b94$var$Zd","$0b2e6adb871a3b94$var$$d","$0b2e6adb871a3b94$var$ae","$0b2e6adb871a3b94$var$be","$0b2e6adb871a3b94$var$ce","$0b2e6adb871a3b94$var$G","Interface","isDefaultPrevented","defaultPrevented","returnValue","$0b2e6adb871a3b94$var$ee","eventPool","$0b2e6adb871a3b94$var$fe","destructor","$0b2e6adb871a3b94$var$de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","extend","$0b2e6adb871a3b94$var$ge","$0b2e6adb871a3b94$var$he","$0b2e6adb871a3b94$var$ie","$0b2e6adb871a3b94$var$je","$0b2e6adb871a3b94$var$ke","documentMode","$0b2e6adb871a3b94$var$le","$0b2e6adb871a3b94$var$me","$0b2e6adb871a3b94$var$ne","$0b2e6adb871a3b94$var$oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","$0b2e6adb871a3b94$var$pe","$0b2e6adb871a3b94$var$qe","keyCode","$0b2e6adb871a3b94$var$re","detail","$0b2e6adb871a3b94$var$se","$0b2e6adb871a3b94$var$ve","locale","which","$0b2e6adb871a3b94$var$te","ctrlKey","altKey","metaKey","char","$0b2e6adb871a3b94$var$ue","$0b2e6adb871a3b94$var$we","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","$0b2e6adb871a3b94$var$xe","$0b2e6adb871a3b94$var$ye","change","$0b2e6adb871a3b94$var$ze","$0b2e6adb871a3b94$var$Ae","$0b2e6adb871a3b94$var$Be","$0b2e6adb871a3b94$var$Ce","$0b2e6adb871a3b94$var$De","$0b2e6adb871a3b94$var$Ee","$0b2e6adb871a3b94$var$Fe","$0b2e6adb871a3b94$var$Ge","detachEvent","$0b2e6adb871a3b94$var$He","$0b2e6adb871a3b94$var$Ie","attachEvent","$0b2e6adb871a3b94$var$Je","$0b2e6adb871a3b94$var$Ke","$0b2e6adb871a3b94$var$Le","$0b2e6adb871a3b94$var$Me","_isInputEventSupported","$0b2e6adb871a3b94$var$Ne","view","$0b2e6adb871a3b94$var$Oe","Alt","Control","Meta","Shift","$0b2e6adb871a3b94$var$Pe","getModifierState","$0b2e6adb871a3b94$var$Qe","$0b2e6adb871a3b94$var$Re","$0b2e6adb871a3b94$var$Se","$0b2e6adb871a3b94$var$Te","$0b2e6adb871a3b94$var$Ue","$0b2e6adb871a3b94$var$Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","$0b2e6adb871a3b94$var$We","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","$0b2e6adb871a3b94$var$Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","$0b2e6adb871a3b94$var$Ye","defaultView","parentWindow","p","$0b2e6adb871a3b94$var$$e","$0b2e6adb871a3b94$var$af","$0b2e6adb871a3b94$var$bf","$0b2e6adb871a3b94$var$cf","$0b2e6adb871a3b94$var$df","select","$0b2e6adb871a3b94$var$ef","$0b2e6adb871a3b94$var$ff","$0b2e6adb871a3b94$var$gf","$0b2e6adb871a3b94$var$hf","$0b2e6adb871a3b94$var$jf","start","selectionStart","end","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","$0b2e6adb871a3b94$var$kf","onSelect","$0b2e6adb871a3b94$var$lf","animationName","elapsedTime","pseudoElement","$0b2e6adb871a3b94$var$mf","clipboardData","$0b2e6adb871a3b94$var$nf","$0b2e6adb871a3b94$var$of","charCode","$0b2e6adb871a3b94$var$pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","$0b2e6adb871a3b94$var$qf","$0b2e6adb871a3b94$var$rf","repeat","$0b2e6adb871a3b94$var$sf","dataTransfer","$0b2e6adb871a3b94$var$tf","touches","targetTouches","changedTouches","$0b2e6adb871a3b94$var$uf","$0b2e6adb871a3b94$var$vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$0b2e6adb871a3b94$var$wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","$0b2e6adb871a3b94$var$yf","$0b2e6adb871a3b94$var$zf","$0b2e6adb871a3b94$var$H","$0b2e6adb871a3b94$var$I","$0b2e6adb871a3b94$var$Af","$0b2e6adb871a3b94$var$J","$0b2e6adb871a3b94$var$K","$0b2e6adb871a3b94$var$Bf","$0b2e6adb871a3b94$var$Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","$0b2e6adb871a3b94$var$L","childContextTypes","$0b2e6adb871a3b94$var$Df","$0b2e6adb871a3b94$var$Ef","$0b2e6adb871a3b94$var$Ff","getChildContext","$0b2e6adb871a3b94$var$Gf","__reactInternalMemoizedMergedChildContext","$0b2e6adb871a3b94$var$Hf","$0b2e6adb871a3b94$var$If","$0b2e6adb871a3b94$var$Jf","$0b2e6adb871a3b94$var$Kf","unstable_cancelCallback","$0b2e6adb871a3b94$var$Lf","unstable_requestPaint","$0b2e6adb871a3b94$var$Mf","unstable_now","$0b2e6adb871a3b94$var$Nf","unstable_getCurrentPriorityLevel","$0b2e6adb871a3b94$var$Of","unstable_ImmediatePriority","$0b2e6adb871a3b94$var$Pf","$0b2e6adb871a3b94$var$Qf","$0b2e6adb871a3b94$var$Rf","unstable_LowPriority","$0b2e6adb871a3b94$var$Sf","unstable_IdlePriority","$0b2e6adb871a3b94$var$Tf","$0b2e6adb871a3b94$var$Uf","unstable_shouldYield","$0b2e6adb871a3b94$var$Vf","$0b2e6adb871a3b94$var$Wf","$0b2e6adb871a3b94$var$Xf","$0b2e6adb871a3b94$var$Yf","$0b2e6adb871a3b94$var$Zf","$0b2e6adb871a3b94$var$$f","$0b2e6adb871a3b94$var$ag","$0b2e6adb871a3b94$var$bg","$0b2e6adb871a3b94$var$cg","$0b2e6adb871a3b94$var$dg","$0b2e6adb871a3b94$var$eg","$0b2e6adb871a3b94$var$fg","$0b2e6adb871a3b94$var$gg","$0b2e6adb871a3b94$var$hg","$0b2e6adb871a3b94$var$ig","$0b2e6adb871a3b94$var$jg","$0b2e6adb871a3b94$var$kg","$0b2e6adb871a3b94$var$lg","$0b2e6adb871a3b94$var$mg","$0b2e6adb871a3b94$var$ng","$0b2e6adb871a3b94$var$og","$0b2e6adb871a3b94$var$pg","childExpirationTime","$0b2e6adb871a3b94$var$qg","firstContext","expirationTime","$0b2e6adb871a3b94$var$rg","$0b2e6adb871a3b94$var$sg","observedBits","responders","$0b2e6adb871a3b94$var$tg","$0b2e6adb871a3b94$var$ug","updateQueue","baseState","baseQueue","shared","pending","effects","$0b2e6adb871a3b94$var$vg","$0b2e6adb871a3b94$var$wg","suspenseConfig","payload","callback","$0b2e6adb871a3b94$var$xg","$0b2e6adb871a3b94$var$yg","$0b2e6adb871a3b94$var$zg","x","z","ca","$0b2e6adb871a3b94$var$Ag","D","t","$0b2e6adb871a3b94$var$Bg","$0b2e6adb871a3b94$var$Cg","$0b2e6adb871a3b94$var$Dg","$0b2e6adb871a3b94$var$Eg","Component","$0b2e6adb871a3b94$var$Fg","$0b2e6adb871a3b94$var$Jg","_reactInternalFiber","$0b2e6adb871a3b94$var$Gg","$0b2e6adb871a3b94$var$Hg","$0b2e6adb871a3b94$var$Ig","$0b2e6adb871a3b94$var$Kg","shouldComponentUpdate","$0b2e6adb871a3b94$var$Lg","contextType","state","$0b2e6adb871a3b94$var$Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","$0b2e6adb871a3b94$var$Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","$0b2e6adb871a3b94$var$Og","$0b2e6adb871a3b94$var$Pg","_stringRef","$0b2e6adb871a3b94$var$Qg","$0b2e6adb871a3b94$var$Rg","lastEffect","nextEffect","firstEffect","index","$0b2e6adb871a3b94$var$Sg","$0b2e6adb871a3b94$var$Tg","mode","elementType","$0b2e6adb871a3b94$var$Ug","implementation","$0b2e6adb871a3b94$var$Vg","$0b2e6adb871a3b94$var$Wg","y","A","q","$0b2e6adb871a3b94$var$Xg","$0b2e6adb871a3b94$var$Yg","$0b2e6adb871a3b94$var$Zg","$0b2e6adb871a3b94$var$$g","$0b2e6adb871a3b94$var$ah","$0b2e6adb871a3b94$var$bh","$0b2e6adb871a3b94$var$ch","$0b2e6adb871a3b94$var$dh","documentElement","tagName","$0b2e6adb871a3b94$var$eh","$0b2e6adb871a3b94$var$fh","$0b2e6adb871a3b94$var$gh","$0b2e6adb871a3b94$var$M","$0b2e6adb871a3b94$var$hh","memoizedProps","revealOrder","$0b2e6adb871a3b94$var$ih","responder","$0b2e6adb871a3b94$var$jh","$0b2e6adb871a3b94$var$kh","$0b2e6adb871a3b94$var$lh","$0b2e6adb871a3b94$var$N","$0b2e6adb871a3b94$var$O","$0b2e6adb871a3b94$var$P","$0b2e6adb871a3b94$var$mh","$0b2e6adb871a3b94$var$Q","$0b2e6adb871a3b94$var$nh","$0b2e6adb871a3b94$var$oh","$0b2e6adb871a3b94$var$ph","$0b2e6adb871a3b94$var$qh","$0b2e6adb871a3b94$var$rh","$0b2e6adb871a3b94$var$sh","$0b2e6adb871a3b94$var$th","queue","$0b2e6adb871a3b94$var$uh","$0b2e6adb871a3b94$var$vh","$0b2e6adb871a3b94$var$wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","$0b2e6adb871a3b94$var$xh","$0b2e6adb871a3b94$var$yh","$0b2e6adb871a3b94$var$zh","$0b2e6adb871a3b94$var$Ah","create","destroy","deps","$0b2e6adb871a3b94$var$Bh","$0b2e6adb871a3b94$var$Ch","$0b2e6adb871a3b94$var$Dh","$0b2e6adb871a3b94$var$Eh","$0b2e6adb871a3b94$var$Fh","$0b2e6adb871a3b94$var$Gh","$0b2e6adb871a3b94$var$Hh","$0b2e6adb871a3b94$var$Ih","$0b2e6adb871a3b94$var$Jh","$0b2e6adb871a3b94$var$Kh","$0b2e6adb871a3b94$var$Lh","$0b2e6adb871a3b94$var$Mh","$0b2e6adb871a3b94$var$Nh","readContext","useDebugValue","useResponder","useDeferredValue","useTransition","$0b2e6adb871a3b94$var$Oh","$0b2e6adb871a3b94$var$Ph","$0b2e6adb871a3b94$var$Qh","$0b2e6adb871a3b94$var$Rh","$0b2e6adb871a3b94$var$Sh","$0b2e6adb871a3b94$var$Th","pendingProps","$0b2e6adb871a3b94$var$Uh","$0b2e6adb871a3b94$var$Vh","$0b2e6adb871a3b94$var$Wh","$0b2e6adb871a3b94$var$Xh","$0b2e6adb871a3b94$var$Yh","$0b2e6adb871a3b94$var$R","$0b2e6adb871a3b94$var$Zh","$0b2e6adb871a3b94$var$$h","$0b2e6adb871a3b94$var$ai","$0b2e6adb871a3b94$var$bi","$0b2e6adb871a3b94$var$ci","$0b2e6adb871a3b94$var$di","$0b2e6adb871a3b94$var$ei","$0b2e6adb871a3b94$var$fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","$0b2e6adb871a3b94$var$gi","getDerivedStateFromError","$0b2e6adb871a3b94$var$hi","pendingContext","$0b2e6adb871a3b94$var$ni","$0b2e6adb871a3b94$var$pi","$0b2e6adb871a3b94$var$qi","$0b2e6adb871a3b94$var$ii","retryTime","$0b2e6adb871a3b94$var$ji","fallback","unstable_avoidThisFallback","$0b2e6adb871a3b94$var$ki","$0b2e6adb871a3b94$var$li","isBackwards","rendering","renderingStartTime","last","tail","tailExpiration","tailMode","$0b2e6adb871a3b94$var$mi","$0b2e6adb871a3b94$var$ri","$0b2e6adb871a3b94$var$si","wasMultiple","multiple","onClick","onclick","size","createElementNS","createTextNode","$0b2e6adb871a3b94$var$S","$0b2e6adb871a3b94$var$ti","$0b2e6adb871a3b94$var$ui","$0b2e6adb871a3b94$var$vi","$0b2e6adb871a3b94$var$wi","$0b2e6adb871a3b94$var$T","$0b2e6adb871a3b94$var$xi","$0b2e6adb871a3b94$var$U","$0b2e6adb871a3b94$var$yi","$0b2e6adb871a3b94$var$zi","$0b2e6adb871a3b94$var$Ai","stack","$0b2e6adb871a3b94$var$Bi","WeakSet","Set","$0b2e6adb871a3b94$var$Ci","console","error","$0b2e6adb871a3b94$var$Fi","$0b2e6adb871a3b94$var$Ei","$0b2e6adb871a3b94$var$Gi","__reactInternalSnapshotBeforeUpdate","$0b2e6adb871a3b94$var$Hi","$0b2e6adb871a3b94$var$Ii","$0b2e6adb871a3b94$var$Ji","focus","$0b2e6adb871a3b94$var$Ki","$0b2e6adb871a3b94$var$Li","componentWillUnmount","$0b2e6adb871a3b94$var$Di","$0b2e6adb871a3b94$var$Mi","$0b2e6adb871a3b94$var$Ni","$0b2e6adb871a3b94$var$Oi","$0b2e6adb871a3b94$var$Pi","$0b2e6adb871a3b94$var$Qi","$0b2e6adb871a3b94$var$Ri","instance","insertBefore","_reactRootContainer","$0b2e6adb871a3b94$var$Si","$0b2e6adb871a3b94$var$Ti","display","$0b2e6adb871a3b94$var$Ui","$0b2e6adb871a3b94$var$Vi","add","then","$0b2e6adb871a3b94$var$Wi","$0b2e6adb871a3b94$var$Xi","element","$0b2e6adb871a3b94$var$Yi","$0b2e6adb871a3b94$var$Zi","$0b2e6adb871a3b94$var$$i","componentDidCatch","$0b2e6adb871a3b94$var$aj","componentStack","$0b2e6adb871a3b94$var$Rj","$0b2e6adb871a3b94$var$bj","ceil","$0b2e6adb871a3b94$var$cj","$0b2e6adb871a3b94$var$dj","$0b2e6adb871a3b94$var$fj","$0b2e6adb871a3b94$var$gj","$0b2e6adb871a3b94$var$W","$0b2e6adb871a3b94$var$X","$0b2e6adb871a3b94$var$kj","$0b2e6adb871a3b94$var$lj","$0b2e6adb871a3b94$var$mj","$0b2e6adb871a3b94$var$nj","$0b2e6adb871a3b94$var$oj","$0b2e6adb871a3b94$var$Y","$0b2e6adb871a3b94$var$qj","$0b2e6adb871a3b94$var$rj","$0b2e6adb871a3b94$var$sj","$0b2e6adb871a3b94$var$tj","$0b2e6adb871a3b94$var$uj","$0b2e6adb871a3b94$var$vj","$0b2e6adb871a3b94$var$wj","timeoutMs","$0b2e6adb871a3b94$var$xj","$0b2e6adb871a3b94$var$yj","$0b2e6adb871a3b94$var$Z","$0b2e6adb871a3b94$var$zj","lastExpiredTime","$0b2e6adb871a3b94$var$Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","$0b2e6adb871a3b94$var$Bj","timeout","$0b2e6adb871a3b94$var$Cj","$0b2e6adb871a3b94$var$Dj","$0b2e6adb871a3b94$var$Ej","$0b2e6adb871a3b94$var$Fj","$0b2e6adb871a3b94$var$Gj","$0b2e6adb871a3b94$var$Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","$0b2e6adb871a3b94$var$Ij","timeoutHandle","$0b2e6adb871a3b94$var$Jj","busyMinDurationMs","busyDelayMs","$0b2e6adb871a3b94$var$Kj","$0b2e6adb871a3b94$var$Mj","$0b2e6adb871a3b94$var$Nj","pingCache","$0b2e6adb871a3b94$var$Oj","w","ub","$0b2e6adb871a3b94$var$Pj","Xc","$0b2e6adb871a3b94$var$Qj","$0b2e6adb871a3b94$var$Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","$0b2e6adb871a3b94$var$Tj","wb1","B","wb2","min","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","vb","wb3","$0b2e6adb871a3b94$var$Uj","$0b2e6adb871a3b94$var$Vj","$0b2e6adb871a3b94$var$Wj","hidden","default","$0b2e6adb871a3b94$var$ob","$0b2e6adb871a3b94$var$Xj","unstable_observedBits","$0b2e6adb871a3b94$var$Zj","pendingChildren","$0b2e6adb871a3b94$var$ak","$0b2e6adb871a3b94$var$bk","$0b2e6adb871a3b94$var$ck","$0b2e6adb871a3b94$var$dk","$0b2e6adb871a3b94$var$ek","$0b2e6adb871a3b94$var$fk","$0b2e6adb871a3b94$var$Jc","_internalRoot","$0b2e6adb871a3b94$var$gk","$0b2e6adb871a3b94$var$ik","hasAttribute","$0b2e6adb871a3b94$var$hk","$0b2e6adb871a3b94$var$jk","$0b2e6adb871a3b94$var$kk","unmount","querySelectorAll","JSON","stringify","form","$0b2e6adb871a3b94$var$Lj","$0b2e6adb871a3b94$var$lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","$0b2e6adb871a3b94$var$Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","version","rendererPackageName","$bcb017604639e9d7$export$c4744153514ff05d","$bcb017604639e9d7$export$d66a1c1c77bd778b","$bcb017604639e9d7$export$3e506c1ccc9cc1a7","$bcb017604639e9d7$export$e26fe2ed2fa76875","$bcb017604639e9d7$export$502329bbf4b505b1","$bcb017604639e9d7$export$6e3807111c4874c4","$bcb017604639e9d7$export$c27134553091fb3a","$bcb017604639e9d7$export$33ee1acdc04fd2a2","$bcb017604639e9d7$export$b00a404bbd5edef2","$bcb017604639e9d7$export$8352ce38b91d0c62","$bcb017604639e9d7$export$d3dfb8e4810cb555","$bcb017604639e9d7$export$839f9183b0465a69","$bcb017604639e9d7$export$72fdf0e06517287b","$bcb017604639e9d7$export$4b844e58a3e414b4","$bcb017604639e9d7$export$816d2913ae6b83b1","$bcb017604639e9d7$export$61bcfe829111a1d0","$bcb017604639e9d7$export$7ee8c9beb337bc3f","$bcb017604639e9d7$export$b5836b71941fa3ed","$bcb017604639e9d7$export$cf845f2c119da08a","$bcb017604639e9d7$var$f","$bcb017604639e9d7$var$g","$bcb017604639e9d7$var$h","$bcb017604639e9d7$var$k","$bcb017604639e9d7$var$l","MessageChannel","$bcb017604639e9d7$var$p","$bcb017604639e9d7$var$q","$bcb017604639e9d7$var$t","$bcb017604639e9d7$var$u","$bcb017604639e9d7$var$w","performance","$bcb017604639e9d7$var$x","$bcb017604639e9d7$var$y","$bcb017604639e9d7$var$z","$bcb017604639e9d7$var$A","cancelAnimationFrame","requestAnimationFrame","$bcb017604639e9d7$var$B","$bcb017604639e9d7$var$C","$bcb017604639e9d7$var$D","$bcb017604639e9d7$var$E","$bcb017604639e9d7$var$F","$bcb017604639e9d7$var$G","floor","$bcb017604639e9d7$var$H","$bcb017604639e9d7$var$I","port2","port1","onmessage","postMessage","$bcb017604639e9d7$var$J","$bcb017604639e9d7$var$K","$bcb017604639e9d7$var$L","$bcb017604639e9d7$var$M","v","r","sortIndex","id","$bcb017604639e9d7$var$N","$bcb017604639e9d7$var$O","$bcb017604639e9d7$var$P","$bcb017604639e9d7$var$Q","$bcb017604639e9d7$var$R","$bcb017604639e9d7$var$S","$bcb017604639e9d7$var$T","$bcb017604639e9d7$var$U","$bcb017604639e9d7$var$V","startTime","$bcb017604639e9d7$var$W","$bcb017604639e9d7$var$X","priorityLevel","$bcb017604639e9d7$var$Y","delay","$27ab08c24269de64$var$_extends","__esModule","$11492dca620dcaa5$var$checkDCE","checkDCE","$11492dca620dcaa5$exports","$d3e88370e8b79c76$export$40bfa8c7b0832715","onChange","stateValue","setStateValue","undefined","wasControlled","isControlled","stateRef","warn","args","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","$d3e88370e8b79c76$export$7d15b64cf5a3a4c4","Infinity","max","$3a270cbf4792ab41$var$$704cf1d3b684cc5c$var$defaultContext","prefix","round","$3a270cbf4792ab41$var$$704cf1d3b684cc5c$var$SSRContext","$parcel$interopDefault","createContext","$3a270cbf4792ab41$var$$704cf1d3b684cc5c$var$canUseDOM","Boolean","$3a270cbf4792ab41$export$619500959fc48b26","defaultId","ctx","$3a270cbf4792ab41$export$535bd6ca7f90a273","isInSSRContext","isSSR","setIsSSR","$15e6d94060e5d8b6$var$r","$15e6d94060e5d8b6$export$2e2bcd8739ae039","$3141b2cdad76a0f0$export$e5c5a5f917a5871c","$3141b2cdad76a0f0$var$$bdb11010cef70236$var$idsUpdaterMap","$3141b2cdad76a0f0$export$f680877a34711e37","nextId","res","updateValue","newId","$3141b2cdad76a0f0$export$cd8c9cb68f842629","idA","idB","setIdA","setIdB","$3141b2cdad76a0f0$export$b4cc09c592e8fdb8","depArray","resolvedId","setResolvedId","valueRef","effect","nextRef","newValue","fn","$3141b2cdad76a0f0$export$14d238f342723f25","updateId","getElementById","$3141b2cdad76a0f0$export$e08e3b67e392101e","callbacks","$3141b2cdad76a0f0$export$9d1611c77c2fe928","charCodeAt","$3141b2cdad76a0f0$var$$65484d02dcb7eb3e$var$DOMPropNames","$3141b2cdad76a0f0$var$$65484d02dcb7eb3e$var$labelablePropNames","$3141b2cdad76a0f0$var$$65484d02dcb7eb3e$var$propRe","$3141b2cdad76a0f0$export$457c3d6518dd4c6f","opts","labelable","propNames","filteredProps","prop","$3141b2cdad76a0f0$export$de79e2c695e052f3","$3141b2cdad76a0f0$var$$7215afc6de606d6b$var$supportsPreventScrollCached","preventScroll","$3141b2cdad76a0f0$var$$7215afc6de606d6b$var$supportsPreventScroll","scrollableElements","parent","rootScrollingElement","scrollingElement","HTMLElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","$3141b2cdad76a0f0$var$$7215afc6de606d6b$var$getScrollableElements","$3141b2cdad76a0f0$var$$7215afc6de606d6b$var$restoreScrollPosition","$3141b2cdad76a0f0$var$$bbed8b41f857bcc0$var$transitionsByElement","$3141b2cdad76a0f0$var$$bbed8b41f857bcc0$var$transitionCallbacks","$3141b2cdad76a0f0$var$$bbed8b41f857bcc0$var$setupGlobalEvents","onTransitionEnd","properties","removeEventListener","cb","clear","transitions","$3141b2cdad76a0f0$export$24490316f764c430","readyState","$3141b2cdad76a0f0$export$4eaf04e54aa8eed6","globalListeners","addGlobalListener","eventTarget","listener","once","removeGlobalListener","_globalListeners_current_get","removeAllGlobalListeners","$3141b2cdad76a0f0$export$d6875122194c7b44","defaultLabel","label","labelledBy","ids","$3141b2cdad76a0f0$export$496315a1608d9602","isInitialMount","$3141b2cdad76a0f0$export$683480f191c0e3ea","onResize","ResizeObserver","resizeObserverInstance","entries","observe","unobserve","$3141b2cdad76a0f0$export$4debdb1a3f0fa79e","$3141b2cdad76a0f0$export$cfa2225e87938781","$3141b2cdad76a0f0$var$$62d8ded9296f3872$var$isScrollable","parentElement","getComputedStyle","overflow","overflowX","overflowY","$3141b2cdad76a0f0$var$$5df64b3807dc15ee$var$visualViewport","visualViewport","$3141b2cdad76a0f0$export$d699905dd57c73ca","setSize","$3141b2cdad76a0f0$var$$5df64b3807dc15ee$var$getViewportSize","newSize","innerWidth","innerHeight","$3141b2cdad76a0f0$var$$ef06256079686ba0$var$descriptionId","$3141b2cdad76a0f0$var$$ef06256079686ba0$var$descriptionNodes","$3141b2cdad76a0f0$export$f8aeda7b10753fa1","description","setId","desc","refCount","remove","$3141b2cdad76a0f0$var$$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","navigator","brands","some","brand","userAgent","$3141b2cdad76a0f0$var$$c87311424ea30a05$var$testPlatform","platform","$3141b2cdad76a0f0$export$9ac100e40613ea10","$3141b2cdad76a0f0$export$fedb369cb70207f1","maxTouchPoints","$3141b2cdad76a0f0$export$90fc3a17d93f704c","event","handler","handlerRef","$3141b2cdad76a0f0$export$53a0910f038337bd","scrollView","offsetX","$3141b2cdad76a0f0$var$$2f04cbc44ee30ce0$var$relativeOffset","offsetY","maxX","maxY","ancestor","axis","sum","offsetParent","$3141b2cdad76a0f0$export$60278871457622de","mozInputSource","$62a3e9bf6f671e97$export$c17fa47878dc55b6","getStringForLocale","strings","defaultLocale","language","Intl","Locale","$62a3e9bf6f671e97$var$$5b160d28a433310d$var$getLanguage","startsWith","$62a3e9bf6f671e97$var$$5b160d28a433310d$var$getStringsForLocale","string","messages","$62a3e9bf6f671e97$var$$6db58dc88e78b024$var$pluralRulesCache","$62a3e9bf6f671e97$var$$6db58dc88e78b024$var$numberFormatCache","$62a3e9bf6f671e97$export$2f817fcdc4b89ae0","format","variables","message","plural","opt","pluralRules","PluralRules","other","numberFormat","NumberFormat","$c36d42deb4fd367b$export$2e2bcd8739ae039","obj","writable","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$var$formatterCache","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$var$supportsSignDisplay","signDisplay","resolvedOptions","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$var$supportsUnit","unit","e1","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$var$UNITS","degree","narrow","$d937707f3e0c3d96$export$cc77c4ff7e8673c5","numberFormatter","num","abs","needsPositiveSign","negative","noSign","minus","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$export$711b50b3c525e0f2","_UNITS_unit","unitDisplay","values","formatToParts","formatRange","RangeError","formatRangeToParts","startParts","endParts","numberingSystem","cacheKey","sort","$d937707f3e0c3d96$var$$488c6ddbf4ef74c2$var$getCachedNumberFormatter","RegExp","$feea6f598406f1ba$var$$148a7a147e38ea7f$var$RTL_SCRIPTS","$feea6f598406f1ba$var$$148a7a147e38ea7f$var$RTL_LANGS","$feea6f598406f1ba$var$$148a7a147e38ea7f$export$702d680b21cbd764","script","maximize","lang","$feea6f598406f1ba$var$$1e5a04cdaf7d1af8$export$f09106e7c6677ec5","userLanguage","DateTimeFormat","supportedLocalesOf","_err","direction","$feea6f598406f1ba$var$$1e5a04cdaf7d1af8$var$currentLocale","$feea6f598406f1ba$var$$1e5a04cdaf7d1af8$var$listeners","$feea6f598406f1ba$var$$1e5a04cdaf7d1af8$var$updateLocale","$feea6f598406f1ba$var$$1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a","setDefaultLocale","$feea6f598406f1ba$var$$18f2051aff69b9bf$var$I18nContext","$feea6f598406f1ba$export$a54013f0d02a8f82","$feea6f598406f1ba$export$43bb16f9c6d9e3f7","$feea6f598406f1ba$var$$fca6afa0e843324b$var$cache","$feea6f598406f1ba$export$f12b703ca79dfbb1","dictionary","$feea6f598406f1ba$var$$fca6afa0e843324b$var$getCachedDictionary","$feea6f598406f1ba$export$b7a616150fdb9f44","$feea6f598406f1ba$var$$325a3faab7a68acd$var$cache","$feea6f598406f1ba$export$a16aca283550c30d","formatter","Collator","$a1a61e582108d48f$export$46d604dce8bf8724","$a1a61e582108d48f$export$ce4ab0c55987d1ff","cssModule","classes","mapped","$a1a61e582108d48f$export$32d5543ab307c01","query","supportsMatchMedia","matchMedia","matches","setMatches","mq","evt","addListener","removeListener","$a1a61e582108d48f$export$a5795cc979dfae80","UNSAFE_getDOMNode","$a1a61e582108d48f$export$c2c55ef9111cafd8","domRef","$a1a61e582108d48f$export$96a734597687c040","focusableRef","$a1a61e582108d48f$export$79d69eee6ae4b329","$a1a61e582108d48f$var$$1051245f87c5981d$var$Context","$a1a61e582108d48f$export$8214320346cf5104","matchedBreakpoints","$a1a61e582108d48f$export$140ae7baa51cca23","breakpoints","valueA","valueB","breakpointQueries","getBreakpointHandler","matched","breakpoint","setBreakpoint","breakpointHandler","previousBreakpointHandler","idx","$a1a61e582108d48f$export$199d6754bdf4e1e3","$a1a61e582108d48f$export$fe9c6e915565b4e8","margin","$a1a61e582108d48f$export$abc24f5b99744ea6","marginStart","$a1a61e582108d48f$var$$380ed8f3903c3931$var$rtl","marginEnd","marginTop","marginBottom","marginX","marginY","minWidth","minHeight","maxWidth","maxHeight","isHidden","alignSelf","$a1a61e582108d48f$export$46b6c81d11d2c30a","justifySelf","position","$a1a61e582108d48f$var$$380ed8f3903c3931$var$anyValue","bottom","right","flexBasis","$a1a61e582108d48f$export$e0705d1a55f297c","backgroundColor","$a1a61e582108d48f$var$$380ed8f3903c3931$var$colorValue","borderWidth","$a1a61e582108d48f$var$$380ed8f3903c3931$var$borderSizeValue","borderStartWidth","borderEndWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","borderXWidth","borderYWidth","borderColor","$a1a61e582108d48f$var$$380ed8f3903c3931$var$borderColorValue","borderStartColor","borderEndColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderXColor","borderYColor","borderRadius","$a1a61e582108d48f$var$$380ed8f3903c3931$var$borderRadiusValue","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","padding","paddingStart","paddingEnd","paddingLeft","paddingRight","paddingTop","paddingBottom","paddingX","paddingY","$a1a61e582108d48f$var$$380ed8f3903c3931$var$borderStyleProps","ltr","rtl","$a1a61e582108d48f$var$$380ed8f3903c3931$var$UNIT_RE","$a1a61e582108d48f$var$$380ed8f3903c3931$var$FUNC_RE","$a1a61e582108d48f$var$$380ed8f3903c3931$var$SPECTRUM_VARIABLE_RE","$a1a61e582108d48f$export$f348bec194f2e6b5","$a1a61e582108d48f$export$52dbfdbe1b2c3541","$a1a61e582108d48f$export$b8e6fb9d2dff3f41","handlers","UNSAFE_className","UNSAFE_style","otherProps","breakpointProvider","styles","styleProp","convert","colorVersion","prop1","boxSizing","$a1a61e582108d48f$export$f3c39bb9534218d0","className","styleProps","$a1a61e582108d48f$var$$59d09bcc83651bf9$var$SlotContext","$a1a61e582108d48f$export$1e5c9e6e4e15efe3","defaultSlot","slot","slotProps","$a1a61e582108d48f$export$8107b24b91795686","parentSlots","slots","reduce","o","$a1a61e582108d48f$export$ceb145244332b7a2","content","cloneElement","$a1a61e582108d48f$export$e52e2242b6d0f1d4","hasChild","setHasChild","querySelector","$71efd68cf93b01d8$var$$14c0b72509d70225$var$state","$71efd68cf93b01d8$var$$14c0b72509d70225$var$savedUserSelect","$71efd68cf93b01d8$var$$14c0b72509d70225$var$modifiedElementMap","$71efd68cf93b01d8$var$$14c0b72509d70225$export$16a4697467175487","webkitUserSelect","SVGElement","userSelect","$71efd68cf93b01d8$var$$14c0b72509d70225$export$b0d6fa1ab32e3295","targetOldUserSelect","getAttribute","$71efd68cf93b01d8$var$$ae1eeba8b9eafd08$export$5165eccb35aaadb5","$71efd68cf93b01d8$export$45712eceda6fad21","onPress","onPressChange","onPressStart","onPressEnd","onPressUp","isPressed","isPressedProp","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","_","domProps","register","contextProps","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$usePressResponderContext","propsRef","setPressed","ignoreEmulatedMouseEvents","ignoreClickAfterPress","didFirePressStart","activePointerId","isOverTarget","pressProps","triggerPressStart","originalEvent","triggerPressEnd","wasPressed","triggerPressUp","cancel","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$createEvent","onKeyDown","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$isValidKeyboardEvent","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$shouldPreventDefaultKeyboard","onKeyUp","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$isHTMLAnchorLink","click","PointerEvent","onPointerDown","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$shouldPreventDefault","onPointerMove","onPointerUp","onPointerCancel","onMouseDown","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$isOverTarget","onDragStart","onMouseUp","onMouseEnter","onMouseLeave","onTouchStart","touch","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$getTouchFromEvent","identifier","onScroll","onTouchMove","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$getTouchById","onTouchEnd","onTouchCancel","code","role","HTMLInputElement","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$isValidInputKey","HTMLTextAreaElement","isContentEditable","point","rect","getBoundingClientRect","pointRect","radiusX","radiusY","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$getPointClientRect","draggable","HTMLButtonElement","$71efd68cf93b01d8$var$$f6c31cce2adf654f$var$nonTextInputTypes","forwardRef","newRef","$71efd68cf93b01d8$export$3351871ee4b288b8","isRegistered","prevContext","$71efd68cf93b01d8$var$$8a9cb279dc87e130$export$905e7fc544a71f36","$71efd68cf93b01d8$var$$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","isFocused","observer","disconnect","HTMLSelectElement","onBlurHandler","_stateRef_current","_stateRef_current_onBlur","MutationObserver","dispatchEvent","FocusEvent","attributes","attributeFilter","$71efd68cf93b01d8$export$f8168d8dd8fd66e6","onFocus","onFocusProp","onBlurProp","onFocusChange","onSyntheticFocus","focusProps","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$currentModality","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$changeHandlers","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$hasSetupGlobalListeners","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$hasEventBeforeFocus","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$hasBlurredWindowRecently","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","Tab","Escape","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$triggerChangeHandlers","modality","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$handleKeyboardEvent","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$isValidKey","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$handlePointerEvent","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$handleClickEvent","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$handleFocusEvent","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$handleWindowBlur","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$setupGlobalFocusEvents","$71efd68cf93b01d8$export$b9b3dfddab17db27","$71efd68cf93b01d8$export$630ff653c5ada6a9","$71efd68cf93b01d8$export$98e20ec92f614cfe","setModality","$71efd68cf93b01d8$export$ec71b4b83ac08ec3","isTextInput","KeyboardEvent","$71efd68cf93b01d8$var$$507fabe10e71c6fb$var$isKeyboardFocusEvent","$71efd68cf93b01d8$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","isFocusWithin","focusWithinProps","$71efd68cf93b01d8$var$$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents","$71efd68cf93b01d8$var$$6179b936705e76d3$var$hoverCount","$71efd68cf93b01d8$var$$6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents","$71efd68cf93b01d8$var$$6179b936705e76d3$var$handleGlobalPointerEvent","$71efd68cf93b01d8$var$$6179b936705e76d3$var$setupGlobalTouchEvents","$71efd68cf93b01d8$export$ae780daf29e6d456","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","hoverProps","triggerHoverEnd","triggerHoverStart","onPointerEnter","onPointerLeave","$71efd68cf93b01d8$export$872b660ac5a1ff98","onInteractOutside","onInteractOutsideStart","isPointerDown","$71efd68cf93b01d8$var$$e0b6e0b68ec7f50f$var$isValidEvent","$71efd68cf93b01d8$var$$93925083ecbb358c$export$48d1ea6320830260","shouldStopPropagation","continuePropagation","$71efd68cf93b01d8$export$8f71654801c2f7cd","keyboardProps","$71efd68cf93b01d8$var$$8a26561d2877236e$var$DEFAULT_THRESHOLD","$71efd68cf93b01d8$export$c24ed0104d07eab9","onLongPressStart","onLongPressEnd","onLongPress","threshold","accessibilityDescription","timeRef","onContextMenu","longPressProps","$e4dc2706861e9da9$export$80f3e147d781571c","lastFocusedElement","$e4dc2706861e9da9$var$$645f2e67b85a24c9$export$e989c0fffaa6b27a","childElement","visibility","isVisible","computedDisplay","computedVisibility","$e4dc2706861e9da9$var$$645f2e67b85a24c9$var$isStyleVisible","$e4dc2706861e9da9$var$$645f2e67b85a24c9$var$isAttributeVisible","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$FocusContext","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$activeScope","$e4dc2706861e9da9$export$20e40289641fbbb6","contain","restoreFocus","startRef","endRef","scopeRef","_ctx_scopeRef","ctxParent","parentScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$export$d06fae2ee68b101e","getTreeNode","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$isAncestorScope","nodes","addTreeNode","restore","scope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$isElementInScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$isElementInAnyScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$useActiveScopeTracker","focusedNode","raf","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$shouldContainFocus","focusedElement","walker","$e4dc2706861e9da9$export$2d6ec8fc375ceafa","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$getScopeRoot","tabbable","currentNode","nextElement","previousNode","nextNode","nextElementSibling","previousElementSibling","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$focusElement","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$isElementInChildScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$focusFirstInScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$useFocusContainment","nodeToRestoreRef","nodeToRestore","blur","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$shouldRestoreFocus","clonedTree","clone","treeNode","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$useRestoreFocus","autoFocusRef","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$useAutoFocus","removeTreeNode","focusManager","focusNext","wrap","accept","sentinel","focusPrevious","focusFirst","focusLast","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$createFocusManagerForScope","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$focusableElements","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR","traverse","_focusScopeTree_getTreeNode","scroll","err1","root","selector","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","_opts_from","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$Tree","fastMap","$e4dc2706861e9da9$var$$9bf71ea28793e738$var$TreeNode","addChild","newTree","splice","$e4dc2706861e9da9$export$4e328f61c538687f","within","isFocusVisible","setFocused","isFocusVisibleState","setFocusVisible","updateState","$e4dc2706861e9da9$export$1a38b4ad7f578e1d","focusClass","focusRingClass","$e4dc2706861e9da9$var$$e6afbd83fe6ebbd2$var$FocusableContext","$e4dc2706861e9da9$export$4c014de7c8940b4c","interactions","$e4dc2706861e9da9$var$$e6afbd83fe6ebbd2$var$useFocusableContext","interactionProps","focusableProps","tabIndex","excludeFromTabOrder","$d7e3e4dd1b562d5f$export$5f1af8db9871e1d6","$d7e3e4dd1b562d5f$export$a8a3e93435678ff9","level","HeadingTag","dir","$49d7f9156ea211f2$export$ea18c227d4417cc3","additionalProps","allowFocusWhenDisabled","deprecatedOnClick","rel","buttonProps","$49d7f9156ea211f2$export$51e84d46ca0bc451","isSelected","toggle","$36b9a7f98c46a9ae$var$$5c3e21d68f1c4674$var$styles","border","clip","clipPath","whiteSpace","$36b9a7f98c46a9ae$export$a966af930f325cab","isFocusable","visuallyHiddenProps","$36b9a7f98c46a9ae$export$439d29a4e110a164","Element","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$AXIS","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$FLIPPED_DIRECTION","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$CROSS_AXIS","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$AXIS_SIZE","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$PARSED_PLACEMENT_CACHE","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$visualViewport","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getDelta","containerDimensions","containerScroll","containerHeight","startEdgeOffset","endEdgeOffset","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$parsePlacement","placement","crossPlacement","crossAxis","crossSize","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$computePosition","childOffset","boundaryDimensions","overlaySize","placementInfo","crossOffset","containerOffsetWithBoundary","isContainerPositioned","minViablePosition","maxViablePosition","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getAvailableSpace","margins","$aa1be3de420e5fcd$var$$edcf132a9284368a$export$6839422d1f33cee9","placementInput","scrollSize","flip","userSetMaxHeight","normalizedOffset","space","flippedPlacementInfo","flippedPosition","delta","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getMaxHeight","arrowPosition","arrowOffsetLeft","arrowOffsetTop","$aa1be3de420e5fcd$var$$edcf132a9284368a$export$b3ceb0cbf1056d98","targetNode","overlayNode","scrollNode","shouldFlip","boundaryElement","isBodyContainer","containerPositionStyle","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getOffset","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getPosition","marginLeft","parseInt","marginRight","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getMargins","containerNode","_visualViewport_width","_visualViewport_height","clientWidth","clientHeight","$aa1be3de420e5fcd$var$$edcf132a9284368a$var$getContainerDimensions","clientTop","clientLeft","parentOffset","parentStyle","$aa1be3de420e5fcd$var$$dd149f63282afbbf$export$f6211563215e3b37","$aa1be3de420e5fcd$var$$2a41e45df1593e64$var$visualViewport","$aa1be3de420e5fcd$export$d39e1813b3bdd0e1","targetRef","overlayRef","scrollRef","containerPadding","shouldUpdatePosition","isOpen","onClose","setPosition","updatePosition","$aa1be3de420e5fcd$var$$2a41e45df1593e64$var$translateRTL","isResizing","close","triggerRef","Node","onCloseHandler","$aa1be3de420e5fcd$var$$dd149f63282afbbf$export$18fc8428861184da","overlayProps","arrowProps","$aa1be3de420e5fcd$var$$a11501f3d1d39e6c$var$visibleOverlays","$aa1be3de420e5fcd$export$ea8f71083e90600f","shouldCloseOnBlur","isDismissable","isKeyboardDismissDisabled","shouldCloseOnInteractOutside","onHide","underlayProps","$aa1be3de420e5fcd$export$f9d5c8beee7d008d","ariaHasPopup","overlayId","triggerProps","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$visualViewport","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$nonTextInputTypes","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$restore","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$preventScrollCount","$aa1be3de420e5fcd$export$ee0f7cc6afcd1c18","scrollable","lastY","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$willOpenKeyboard","transform","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$scrollIntoView","onWindowScroll","scrollTo","scrollX","pageXOffset","scrollY","pageYOffset","restoreStyles","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$setStyle","removeEvents","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$addEvent","passive","capture","$aa1be3de420e5fcd$var$$49c51c25361d4cd2$var$preventScrollMobileSafari","cur","scrollableTop","targetTop","$aa1be3de420e5fcd$var$$f57aed4a881a3485$var$Context","$aa1be3de420e5fcd$export$178405afcd8c5eb","modalCount","setModalCount","addModal","removeModal","$aa1be3de420e5fcd$export$d9aaed4c3ece1bc0","modalProviderProps","$aa1be3de420e5fcd$export$2317d149ed6f78c4","onDismiss","labels","$aa1be3de420e5fcd$var$$parcel$interopDefault","$aa1be3de420e5fcd$var$$61fe14465afefc5e$exports","dismiss","$aa1be3de420e5fcd$var$$5e3802645cc19319$var$refCountMap","$aa1be3de420e5fcd$var$$5e3802645cc19319$var$observerStack","$aa1be3de420e5fcd$export$1c3ebcada18427bf","targets","visibleNodes","hiddenNodes","dataset","liveAnnouncer","hide","_refCountMap_get","changes","addedNodes","childList","subtree","observerWrapper","$aa1be3de420e5fcd$export$542a6fd13ac93354","popoverRef","isNonModal","positionProps","isPositioned","setPositioned","popoverProps","$aa1be3de420e5fcd$var$$337b884510726a0d$export$a2200b96afd16271","$aa1be3de420e5fcd$export$c6fdb837b070b4ff","portalContainer","setContain","contextValue","contents","createPortal","$aa1be3de420e5fcd$export$dbc0f175b25fb0fb","$aa1be3de420e5fcd$export$14c98a7594375490","modalProps","$e01c84325c3e2e0e$var$$698974e9dd92c2ec$export$3311ab3a441bc141","$e01c84325c3e2e0e$var$$5cac98e4c80e6707$export$3311ab3a441bc141","$e01c84325c3e2e0e$var$$5cac98e4c80e6707$export$a30bf7810c8453d1","$e01c84325c3e2e0e$var$$5cac98e4c80e6707$export$7b2dac1166f6ec4c","$e01c84325c3e2e0e$var$$7b22e09dddddd7da$exports","parse","$e01c84325c3e2e0e$var$$7167f8da3cce35e4$var$Context","$e01c84325c3e2e0e$var$$7167f8da3cce35e4$var$DEFAULT_BREAKPOINTS","S","M","L","XL","XXL","$e01c84325c3e2e0e$export$2881499e37b75b9a","$e01c84325c3e2e0e$export$693cdb10cec23617","prevColorScheme","colorScheme","prevBreakpoints","theme","defaultColorScheme","autoColorScheme","matchesDark","matchesLight","dark","light","$e01c84325c3e2e0e$var$$d8453c5ae7fac713$export$6343629ee1b29116","autoScale","medium","large","$e01c84325c3e2e0e$var$$d8453c5ae7fac713$export$a8d2043b2d807f4d","prevLocale","usePrevColorScheme","scale","isQuiet","isEmphasized","isRequired","isReadOnly","validationState","currentProps","$e01c84325c3e2e0e$var$$7167f8da3cce35e4$var$ProviderWrapper","isolation","themeKey","scaleKey","$e01c84325c3e2e0e$var$$parcel$interopDefault","$e01c84325c3e2e0e$var$$698974e9dd92c2ec$exports","$e01c84325c3e2e0e$var$$5cac98e4c80e6707$exports","global","spectrum","_props_colorScheme","_ref","filter","hasWarned","closestDir","closest","$e01c84325c3e2e0e$export$521c373ccc32c300","$47dc8076e6f9d446$export$2e2bcd8739ae039","$0f49c8ba50dff6ee$exports","$47dc8076e6f9d446$var$_react","$820d5449ca3b6b33$export$906cc5990ff10700","$9cd6ff3e9bdfec7d$exports","CornerTriangle","$9cd6ff3e9bdfec7d$var$CornerTriangle","$9cd6ff3e9bdfec7d$var$_react","$9cd6ff3e9bdfec7d$var$_extends","$9cd6ff3e9bdfec7d$var$_objectWithoutProperties","excluded","sourceKeys","$9cd6ff3e9bdfec7d$var$_objectWithoutPropertiesLoose","sourceSymbolKeys","_ref$scale","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$d374b04f30360026","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$c7db7fdc5aac13aa","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$cab8448604b31f43","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$557c0af6873b4222","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$34ce05647f0c65e","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$8f1693ac47916bbf","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$8d23c37ef2a4f13e","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$c6e70a22e841bc1b","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$b37777493a27e620","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$4c0c83b3f4303ef8","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$2265a487ad399d8b","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$a6044013cf72ddc9","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$a88a8dbe29386d31","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$83be8302c01b6478","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$57b49d6ee2e9f187","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$81968d05e3681b3f","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$c0d655f335b5bc31","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$cca4342eca45562","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$edc4a2e9af971b26","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$9e665cb12e71e037","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$2f91b7a7627906d5","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$56efb4ec9eb35c07","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$5861dfe1d581a528","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$595a122b60890c78","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$596373794435f8bc","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$32b379a02cafbfb3","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$ee5de2c4d7c8faa4","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$c1cbae72fd236fd9","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$636d8cde4f6b7e6","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$1f0ad4082256e3df","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$1e0848411e254295","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$1c1bddac0ae5fbe5","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$98de2b9917cd3b6a","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$3c956876cb11c1e1","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$55cf2795737352fc","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$d5d1e3e09ea6cd5","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$f51b22382127207d","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$825a6c2340d3b7e5","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$4828f4a6bfd26c04","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$1254ece141a8dac6","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$a33650c9f4cc191e","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$9eb19533e4b8cc28","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$67704939e41f705a","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$c4d219c150b98c92","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$bcda0a6a6d7202af","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$d18d2d837989a797","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$506ac7a1a72a2c65","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$export$12b8600bcd969018","$820d5449ca3b6b33$var$$6bfb67578ee6effd$var$iconStyleProps","$820d5449ca3b6b33$export$f04a61298a47a40f","ariaLabel","ariaHidden","provider","iconSize","focusable","$820d5449ca3b6b33$var$$parcel$interopDefault","$820d5449ca3b6b33$var$$6edfbdaffbc9baf9$exports","$820d5449ca3b6b33$export$d43c2e2ca9b2c105","ariaLabelledby","hasLabel","$2ecf9a926f329971$export$2e2bcd8739ae039","$2ecf9a926f329971$var$_react","$6e3e2b39b6a3d8a3$exports","CrossSmall","$6e3e2b39b6a3d8a3$var$CrossSmall","$6e3e2b39b6a3d8a3$var$_react","$6e3e2b39b6a3d8a3$var$_interopRequireDefault","$6e3e2b39b6a3d8a3$var$_extends","$6e3e2b39b6a3d8a3$var$_objectWithoutProperties","$6e3e2b39b6a3d8a3$var$_objectWithoutPropertiesLoose","$75213095b66ccea3$export$8042c6c013fd5226","setSelected","$7829906fbef4201e$var$$086e93d2352a4536$export$1db4cca5b4ade39a","$7829906fbef4201e$var$$086e93d2352a4536$export$53da69f51b770d3","$7829906fbef4201e$var$$086e93d2352a4536$export$36ae67a131730482","$7829906fbef4201e$var$$086e93d2352a4536$export$a024c99ecf6b5741","$7829906fbef4201e$var$$086e93d2352a4536$export$b752ce409e5660c","$7829906fbef4201e$var$$086e93d2352a4536$export$f39a09f249340e2a","$7829906fbef4201e$var$$086e93d2352a4536$export$5ca7b274e4fff9fc","$7829906fbef4201e$var$$086e93d2352a4536$export$d374b04f30360026","$7829906fbef4201e$var$$086e93d2352a4536$export$b8813cd5d7824ce7","$7829906fbef4201e$var$$086e93d2352a4536$export$c081ba562e204942","$7829906fbef4201e$var$$086e93d2352a4536$export$c1d306ec0fae3838","$7829906fbef4201e$var$$086e93d2352a4536$export$ebb4635c66bacdb9","$7829906fbef4201e$var$$086e93d2352a4536$export$4a4f01c443eff992","$7829906fbef4201e$var$$086e93d2352a4536$export$40e1f009544bacf3","$7829906fbef4201e$var$$086e93d2352a4536$export$d35bc1e505d1ebbf","$7829906fbef4201e$var$$086e93d2352a4536$export$a9781837241c946d","$7829906fbef4201e$var$$086e93d2352a4536$export$49280ffa5236ba8b","$7829906fbef4201e$var$$086e93d2352a4536$export$20fd0f7cd4e6112f","$7829906fbef4201e$var$$086e93d2352a4536$export$1e0fb04f31d3c22a","$7829906fbef4201e$var$$086e93d2352a4536$export$5aabb61a966e266f","$7829906fbef4201e$var$$086e93d2352a4536$export$ccc536e1adbdc059","$7829906fbef4201e$var$$086e93d2352a4536$export$8f7c9db66978d20f","$7829906fbef4201e$var$$086e93d2352a4536$export$29b7b5d6a5a497c5","$7829906fbef4201e$var$$086e93d2352a4536$export$e52daab43a62c528","$7829906fbef4201e$var$$086e93d2352a4536$export$da76be6126aaa633","$7829906fbef4201e$var$$086e93d2352a4536$export$e7dc768d35940237","$7829906fbef4201e$var$$086e93d2352a4536$export$e5b2f5233e4e5194","$7829906fbef4201e$var$$086e93d2352a4536$export$c9f503f672e8a3c1","$7829906fbef4201e$var$$086e93d2352a4536$export$5cda1128f9112d2e","ElementType","variant","staticColor","$7829906fbef4201e$var$$parcel$interopDefault","$7829906fbef4201e$var$$086e93d2352a4536$exports","hasIcon","icon","$7829906fbef4201e$export$cfc7921d29ef7b80","holdAffordance","isTextOnly","every","isValidElement","isActive","focusClassName","preventFocus","$133b6e059b2f6d5e$export$2e2bcd8739ae039","$0ad5d8b55fe970db$export$2e2bcd8739ae039","setPrototypeOf","__proto__","$bbb54ce93eb94a95$export$2e2bcd8739ae039","subClass","superClass","$9fc60dfb9203246b$export$2e2bcd8739ae039","$4c26e32a51d8c622$export$2e2bcd8739ae039","$37faf39349e00e45$export$7d26bbb1236dafd6","$0fef977f04119bf5$export$bb38bb9a1161268","$0fef977f04119bf5$export$84cbff306f539230","$0fef977f04119bf5$export$df38205c966be359","$0fef977f04119bf5$export$78e9e6e3e014d60a","$0fef977f04119bf5$export$4aacc83d4d59139f","$0fef977f04119bf5$var$Transition","_React$Component","Transition","_this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","prevState","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","findDOMNode","performEnter","performExit","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","$0fef977f04119bf5$var$noop","propTypes","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","$0fef977f04119bf5$export$2e2bcd8739ae039","$c50b8f54655c911a$var$$bc765a7a041310da$var$OPEN_STATES","entering","entered","$c50b8f54655c911a$export$b847a40ee92eff38","$c50b8f54655c911a$export$c6fdb837b070b4ff","exited","setExited","handleEntered","handleExited","background","$c50b8f54655c911a$var$$853e19557ad8790f$export$a62dc1b6ab23a7bb","$c50b8f54655c911a$var$$853e19557ad8790f$export$884f6b5065bdc41a","$c50b8f54655c911a$var$$853e19557ad8790f$export$cb8eccd0f3639238","$c50b8f54655c911a$var$$853e19557ad8790f$export$35bea187ff802494","$c50b8f54655c911a$var$$853e19557ad8790f$export$e088717c213c31d7","$c50b8f54655c911a$var$$853e19557ad8790f$export$4c0b1e44c3834c85","$c50b8f54655c911a$var$$853e19557ad8790f$export$f8edeb62d7fed8c1","$c50b8f54655c911a$var$$853e19557ad8790f$export$ce0704cd084c4f0d","$c50b8f54655c911a$var$$853e19557ad8790f$export$69dafa24343974dd","$c50b8f54655c911a$var$$645594d913f34a2a$export$a62dc1b6ab23a7bb","$c50b8f54655c911a$var$$645594d913f34a2a$export$a9781837241c946d","$c50b8f54655c911a$var$$645594d913f34a2a$export$6a19b19b14780d4a","$c50b8f54655c911a$var$$645594d913f34a2a$export$f30becfb1df0cae4","$c50b8f54655c911a$var$$645594d913f34a2a$export$5fc8b429396c9f58","$c50b8f54655c911a$var$$645594d913f34a2a$export$79cc55906ac5b00","$c50b8f54655c911a$var$$645594d913f34a2a$export$3100ec4dc1668df1","$c50b8f54655c911a$var$$645594d913f34a2a$export$ed733fa6cf19ab80","$c50b8f54655c911a$var$$645594d913f34a2a$export$cf634262e726cd19","$c50b8f54655c911a$var$$645594d913f34a2a$export$d8b16c5377728262","$c50b8f54655c911a$var$$c77d7b73b2bbd0fb$export$74470528f463af97","$c50b8f54655c911a$var$$c77d7b73b2bbd0fb$export$a9781837241c946d","$c50b8f54655c911a$var$$c77d7b73b2bbd0fb$export$8eb3860104039b44","$c50b8f54655c911a$var$$76a452f4e3df11be$export$f360afc887607b02","isTransparent","$c50b8f54655c911a$var$$parcel$interopDefault","$c50b8f54655c911a$var$$c77d7b73b2bbd0fb$exports","$c50b8f54655c911a$var$$17b503f7de08fecc$var$arrowPlacement","$c50b8f54655c911a$var$$17b503f7de08fecc$var$PopoverWrapper","hideArrow","Fragment","$c50b8f54655c911a$var$$645594d913f34a2a$exports","$c50b8f54655c911a$var$$853e19557ad8790f$exports","$c50b8f54655c911a$var$$17b503f7de08fecc$var$Arrow","$c50b8f54655c911a$var$$17b503f7de08fecc$var$ROOT_2","sqrt","setBorderWidth","spectrumTipWidth","getPropertyValue","spectrumBorderWidth","landscape","mirror","borderDiagonal","halfBorderDiagonal","secondary","primary","primaryStart","primaryEnd","secondaryMiddle","secondaryEnd","pathData","xmlns","$c50b8f54655c911a$export$5b6b19405a83ff9d","$c50b8f54655c911a$var$$f7ed9f5201273840$export$4c0b1e44c3834c85","$c50b8f54655c911a$var$$f7ed9f5201273840$export$a9781837241c946d","$c50b8f54655c911a$var$$f7ed9f5201273840$export$35bea187ff802494","$c50b8f54655c911a$var$$f7ed9f5201273840$export$fd1e42aa8ea02a1","$c50b8f54655c911a$var$$f7ed9f5201273840$export$a4423fa77727431a","$c50b8f54655c911a$var$$f7ed9f5201273840$export$175dd699720b5fb7","$c50b8f54655c911a$var$$842084dfa182af65$var$typeMap","fullscreen","fullscreenTakeover","$c50b8f54655c911a$var$$842084dfa182af65$var$ModalWrapper","typeVariant","wrapperClassName","$c50b8f54655c911a$var$$f7ed9f5201273840$exports","modalClassName","$c50b8f54655c911a$var$$930b2f4095bb11d1$export$ce0704cd084c4f0d","$c50b8f54655c911a$var$$930b2f4095bb11d1$export$a9781837241c946d","$c50b8f54655c911a$var$$930b2f4095bb11d1$export$641b9b70c23dce66","$c50b8f54655c911a$var$$930b2f4095bb11d1$export$79bfb05e59a300b","$c50b8f54655c911a$var$$1afc87f3d16a5a1c$var$TrayWrapper","isFixedHeight","wrapperStyle","$c50b8f54655c911a$var$$930b2f4095bb11d1$exports","$c50b8f54655c911a$export$4589ed81930b555c","$31742aaf13e69218$var$$feb5ffebff200149$export$d3e3bd3e26688c04","$31742aaf13e69218$var$$feb5ffebff200149$export$16792effe837dba3","$31742aaf13e69218$export$d6daf82dcd84e87c","selectionManager","manager","keyboardDelegate","delegate","shouldFocusWrap","disallowEmptySelection","disallowSelectAll","selectOnFocus","selectionBehavior","disallowTypeAhead","shouldUseVirtualFocus","allowsTabNavigation","isVirtualized","scrollPos","focusedKey","getFirstKey","getLastKey","selectedKeys","setFocusedKey","navigateToKey","childFocus","selectionMode","extendSelection","replaceSelection","getKeyBelow","_delegate_getFirstKey","_delegate_getFirstKey1","nextKey","getKeyAbove","_delegate_getLastKey","_delegate_getLastKey1","nextKey1","getKeyLeftOf","getKeyRightOf","firstKey","lastKey","getKeyPageBelow","getKeyPageAbove","selectAll","clearSelection","navigateToFirstKey","_manager_lastSelectedKey","_manager_firstSelectedKey","DOCUMENT_POSITION_FOLLOWING","lastSelectedKey","firstSelectedKey","typeSelectProps","onTypeSelect","onKeyDownCapture","getKeyForSearch","character","$31742aaf13e69218$var$$fb3050f43d946246$var$getStringForKey","$31742aaf13e69218$export$e32c88dfddc6e1d8","collectionProps","$31742aaf13e69218$export$ecf600387e221c37","shouldSelectOnPressUp","onAction","allowsDifferentPressOrigin","toggleSelection","childFocusStrategy","itemProps","allowsSelection","canSelectItem","allowsActions","hasPrimaryAction","isEmpty","hasSecondaryAction","hasAction","longPressEnabled","longPressEnabledOnPressStart","hadPrimaryActionOnPressStart","itemPressProps","$31742aaf13e69218$var$$880e95eb8b93ba9a$var$isSelectionKey","$31742aaf13e69218$var$$880e95eb8b93ba9a$var$isActionKey","onDoubleClick","setSelectionBehavior","onDragStartCapture","$31742aaf13e69218$export$a05409b8bb224a5a","collection","getKeyAfter","getItem","disabledKeys","getKeyBefore","menu","item","offsetTop","fromKey","collator","textValue","$31742aaf13e69218$export$b95089534ab7c1fd","usage","sensitivity","disabledBehavior","listProps","$adbad999e88477eb$var$$c1d7fb2ec91bae71$var$Item","$adbad999e88477eb$var$$c1d7fb2ec91bae71$var$hasChildItems","hasChildItems","childItems","title","getCollectionNode","rendered","suppressTextValueWarning","hasChildNodes","childNodes","items","$adbad999e88477eb$export$6d08773d2e66f8f2","$adbad999e88477eb$var$$9fc4852771d079eb$var$Section","renderer","items1","$adbad999e88477eb$var$$eb2240fc39a57fa5$export$bf788dd355e3a401","build","$adbad999e88477eb$var$$eb2240fc39a57fa5$var$iterable","iterateCollection","getFullNode","item1","getKey","partialNode","parentKey","_v_key","getChildState","cached","cache","shouldInvalidate","childNode","nodeKey","wrapper","$adbad999e88477eb$var$$eb2240fc39a57fa5$var$compose","$adbad999e88477eb$var$$eb2240fc39a57fa5$var$capitalize","builder","node1","iterable","outer","inner","str","$adbad999e88477eb$export$6cd28814d92fa9c9","factory","invalidators","prev","$adbad999e88477eb$var$$453cc9f0df89c0a5$var$cache","$adbad999e88477eb$export$77d5aafae4e095b2","$6dd9fc53881fa9c7$export$dc9c12ed27dd1b49","trigger","menuTriggerId","stringFormatter","$6dd9fc53881fa9c7$var$$parcel$interopDefault","$6dd9fc53881fa9c7$var$$9bdd31893c9700c3$exports","open","menuTriggerProps","menuProps","focusStrategy","longPressMessage","$6dd9fc53881fa9c7$var$$d5336fe17ce95402$export$6f49b4016bfc8d56","$6dd9fc53881fa9c7$export$38eaa17faae8f579","$6dd9fc53881fa9c7$export$9d32628fc2aea7da","closeOnSelect","_props_isDisabled","_props_isSelected","labelId","descriptionId","keyboardId","ariaProps","menuItemProps","labelProps","descriptionProps","keyboardShortcutProps","$6dd9fc53881fa9c7$export$73f7a44322579622","heading","headingId","headingProps","groupProps","$e5dea5c12df7dee7$export$61c6a8c84e605fb6","setOpen","defaultOpen","onOpenChange","$78c3152446a2701f$export$79fefeb1c2091ac3","overlayTriggerState","setFocusStrategy","$2edadb895098a945$var$$e40ea825a81a3709$export$52baac22726c72bf","anchorKey","currentKey","super","$2edadb895098a945$export$253fe78d46329472","allowDuplicateSelectionEvents","selectionBehaviorProp","isFocusedRef","focusedKeyRef","childFocusStrategyRef","selectedKeysProp","$2edadb895098a945$var$$7af3f5b51489e0b5$var$convertSelection","defaultSelectedKeys","setSelectedKeys","onSelectionChange","disabledKeysProp","lastSelectionBehavior","setA","setB","$2edadb895098a945$var$$7af3f5b51489e0b5$var$equalSets","selection","$2edadb895098a945$export$6c8a5aaad13c9852","getSelectAllKeys","rawSelection","isSelectAll","_isSelectAll","allKeys","first","toKey","getKeyRange","key1","fromItem","toItem","getKeyRangeInternal","allowsCellSelection","addKeys","toggleSelectAll","isSelectionEqual","_options_allowsCellSelection","$ef47748681a825ef$var$$05ca4cd7c4a5a999$var$_Symbol_iterator","$ef47748681a825ef$export$863faf230ee2118a","keyMap","getKeys","prevKey","at","expandedKeys","visit","$ef47748681a825ef$export$728d6ba534403756","setExpandedKeys","defaultExpandedKeys","onExpandedChange","selectionState","tree","toggleKey","$ef47748681a825ef$var$$875d6693e12af071$var$toggleKey","$0e1a883284e077b8$export$2e2bcd8739ae039","$0e1a883284e077b8$var$_react","$73c6466ff57cc504$exports","CheckmarkMedium","$73c6466ff57cc504$var$CheckmarkMedium","$73c6466ff57cc504$var$_react","$73c6466ff57cc504$var$_interopRequireDefault","$73c6466ff57cc504$var$_extends","$73c6466ff57cc504$var$_objectWithoutProperties","$73c6466ff57cc504$var$_objectWithoutPropertiesLoose","$2fb32c94079e7476$var$$994c48bfb00b620b$var$gridStyleProps","autoFlow","autoColumns","$2fb32c94079e7476$var$$994c48bfb00b620b$var$gridDimensionValue","autoRows","areas","$2fb32c94079e7476$var$$994c48bfb00b620b$var$gridTemplateValue","rows","gap","rowGap","columnGap","justifyItems","justifyContent","alignItems","alignContent","$2fb32c94079e7476$export$ef2184bd89960b14","$2fb32c94079e7476$var$$01dd1839b5376a46$export$69d7a39fa31a000b","$2fb32c94079e7476$var$$01dd1839b5376a46$export$97691fbb80847c19","$2fb32c94079e7476$var$$01dd1839b5376a46$export$31a9da8b58047a44","$2fb32c94079e7476$var$$884c64d19340d345$var$flexStyleProps","$2fb32c94079e7476$var$$884c64d19340d345$var$flexAlignValue","$2fb32c94079e7476$var$$884c64d19340d345$var$_isFlexGapSupported","$2fb32c94079e7476$export$f51f4c4ede09e011","flexStyle","flexDirection","$2fb32c94079e7476$var$$884c64d19340d345$var$isFlexGapSupported","$2fb32c94079e7476$var$$parcel$interopDefault","$2fb32c94079e7476$var$$01dd1839b5376a46$exports","style1","$e19f5b0889dffb1c$export$52210f68a14655d0","ariaOrientation","orientation","separatorProps","$0fb8cd5dba46ed44$export$2e2bcd8739ae039","$0fb8cd5dba46ed44$var$_react","$6a88ede78961c0c2$exports","A4uMore","$6a88ede78961c0c2$var$_extends","$6a88ede78961c0c2$var$_react","viewBox","fillRule","cx","cy","$6a88ede78961c0c2$var$_interopRequireDefault","$5c8a2c1c6421cf3f$var$$d94604d52c3e3feb$export$c7e742effb1c51e2","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$d959f30786125b","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$fae6af6decd50ac5","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$c20ea4b35020fbdd","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$8e15a726e4f7e62d","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$45faad328e6c532b","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$1e0fb04f31d3c22a","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$d374b04f30360026","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$1aa6419c5c650567","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$f431001e1bb54633","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$465092164a8e1d98","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$e892026f534efed8","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$ee5f52784f57f9c8","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$fbd22ba224473193","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$926a1bb74ed65667","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$cbbae63ef9e44c7a","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$36f1275051e39ead","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$4f9817a7dff6ba0f","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$f39a09f249340e2a","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$e7dc768d35940237","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$b8813cd5d7824ce7","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$451c613d0772eb99","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$a9781837241c946d","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$20fd0f7cd4e6112f","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$export$d35bc1e505d1ebbf","$5c8a2c1c6421cf3f$export$27d2ad3c5815583e","initialPlacement","menuTriggerRef","menuRef","align","menuTrigger","overlay","isMobile","screen","menuContext","$5c8a2c1c6421cf3f$var$$parcel$interopDefault","$5c8a2c1c6421cf3f$var$$286d1cb34bb7dc84$exports","actionButton","$5c8a2c1c6421cf3f$var$$48fb8f5e1202c980$export$2ce376c2cc3355c8","keyboard","$5c8a2c1c6421cf3f$var$$b966e606890cc5ca$export$4b1545b4f2016d26","$5c8a2c1c6421cf3f$export$d9b273488cd8ce6f","completeProps","menuItem","$5c8a2c1c6421cf3f$var$$d01b612f05eb8a1a$exports","moreActions","$5c8a2c1c6421cf3f$export$ed57a210b9d13bb6","$41208c1652c4000d$export$7c6e2c02157bb7d2","$ac5947796fc68da2$var$$4c3e55dfb549f378$export$e22c6753c239ec31","$ac5947796fc68da2$var$$4c3e55dfb549f378$export$5df23faa5ed344c4","$ac5947796fc68da2$var$$4c3e55dfb549f378$export$cf9d959111789fe7","$ac5947796fc68da2$var$$4c3e55dfb549f378$export$29744d89c9a76d50","$ac5947796fc68da2$export$406dbc84c317ece0","$ac5947796fc68da2$var$$parcel$interopDefault","$ac5947796fc68da2$var$$4c3e55dfb549f378$exports","$02980d08fffebc08$export$c84671f46d6a1ca","newRect","oldRect","validate","invalidationContext","getInitialLayoutInfo","layoutInfo","getFinalLayoutInfo","$02980d08fffebc08$export$7e0eeb9da702a085","copy","estimatedSize","isSticky","allowOverflow","$02980d08fffebc08$export$baf26146a414f24a","equals","isOrigin","$02980d08fffebc08$export$c79fc6492f3af13d","topLeft","topRight","bottomLeft","bottomRight","intersects","containsRect","containsPoint","getCornerInRect","pointEquals","sizeEquals","union","intersection","$02980d08fffebc08$export$cb6da89c6af1a8ec","$02980d08fffebc08$var$$ad1d98aa8f0c31b4$var$KEY","$02980d08fffebc08$export$1a5223887c560441","prepareForReuse","virtualizer","$02980d08fffebc08$var$$3eb131dcf37ad5f8$var$fixTs","$02980d08fffebc08$var$$3eb131dcf37ad5f8$var$perf","$02980d08fffebc08$var$$3eb131dcf37ad5f8$var$perfNow","webkitNow","msNow","mozNow","$02980d08fffebc08$var$$3eb131dcf37ad5f8$var$getTime","getTime","$02980d08fffebc08$var$$3eb131dcf37ad5f8$export$57636bb43b1ccbb0","sin","PI","$02980d08fffebc08$var$$fc36f9a046a9ce79$export$37a26b283fd7740e","$02980d08fffebc08$var$$364191b3decf3697$var$RollingAverage","addSample","sample","$02980d08fffebc08$var$$364191b3decf3697$export$4455ee6afb38dcbb","setVisibleRect","averageTime","visibleRect","velocity","collectMetrics","averagePerf","overscanY","o1","overscanX","getOverscannedRect","overscanned","$02980d08fffebc08$var$$8e135e531d8dcb66$export$febc5573c75cefb0","$02980d08fffebc08$var$$38b9490c1cca8fc4$export$89be5a243e59c4b2","_setContentSize","_contentSize","setContentSize","_setContentOffset","_visibleRect","contentSize","_setVisibleRect","shouldOverscan","_overscanManager","layout","_resetAnimatedContentOffset","relayout","offsetChanged","sizeChanged","updateSubviews","_collection","_setData","_runTransaction","transitionDuration","reloadData","contentChanged","persistedKeys","_persistedKeys","$02980d08fffebc08$var$$fc36f9a046a9ce79$export$a8d0d0c8d1c5df64","isPersistedKey","getLayoutInfo","_layout","setLayout","animated","applyLayout","_getReuseType","getType","reuseType","getReusableView","_reusableViews","reusable","viewType","_animatedContentOffset","_renderView","reusableView","_renderContent","_renderedContent","renderView","visibleViews","_visibleViews","getView","getViewsOfType","keyForView","keyAtPoint","layoutInfos","getVisibleLayoutInfos","willUnmount","_relayoutRaf","_scrollAnimation","_invalidationContext","relayoutNow","scrollAnchor","_getScrollAnchor","beforeLayout","getContentSize","afterLayout","getVisibleRect","restoredScrollAnchor","_restoreScrollAnchor","contentOffsetX","contentOffsetY","hasLayoutUpdates","transaction","_applyLayoutInfos","_enableTransitions","_disableTransitions","afterAnimation","_correctItemOrder","_isScrolling","_transaction","_visibleLayoutInfos","_children","beginAnimations","endAnimations","anchorScrollPosition","getScrollAnchor","corner","anchorScrollPositionAtTop","cornerAnchor","key2","layoutInfo1","corner1","offset1","contentOffset","_context_transaction","finalAnchor","finalMap","adjustment","_getLayoutInfoMap","toAdd","toRemove","toUpdate","visibleLayoutInfos","currentlyVisible","$02980d08fffebc08$var$$fc36f9a046a9ce79$export$acaf96a27438246b","removed","view1","reuseView","view2","initialLayoutInfo","_applyLayoutInfo","key3","view3","removeViews","_flushVisibleViews","_hasLayoutUpdates","afterRender","viewsByParentKey","_view_layoutInfo","_viewsByParentKey_get","_view_layoutInfo1","_view_layoutInfo2","_view_layoutInfo3","buildTree","views","renderWrapper","childViews","setVisibleViews","updated","cur1","cur2","layoutInfo2","finalLayoutInfo","updateItemSize","_sizeUpdateQueue","startScrolling","endScrolling","scrollToItem","duration","shouldScrollX","shouldScrollY","minX","minY","Promise","resolve","begin","ease","raf_id","canceled","promise","diffX","diffY","run","$02980d08fffebc08$var$$3eb131dcf37ad5f8$export$dc0b63720788090c","_processTransactionQueue","_startTransaction","_nextTransaction","actions","_endTransaction","_transactionQueue","_performTransaction","_getContentRect","initialMap","_setupTransactionAnimations","iterators","$02980d08fffebc08$var$$fc36f9a046a9ce79$export$cfc14088dfefce5f","_options_transitionDuration","$02980d08fffebc08$export$1505db82fe357e65","isAnimating","setAnimating","isScrolling","setScrolling","onVisibleRectChange","$4dce7985279dc634$var$$319e236875307eab$var$liveAnnouncer","$4dce7985279dc634$export$a9b970dcc4ae71a9","assertiveness","$4dce7985279dc634$var$$319e236875307eab$var$LiveAnnouncer","announce","createLog","ariaLive","assertiveLog","politeLog","prepend","$9a547420e1d2389e$export$137e594ef3218a10","getRowText","_state_collection_getItem","$9a547420e1d2389e$var$$parcel$interopDefault","$9a547420e1d2389e$var$$1dbe5ffd32adb38c$exports","lastSelection","_lastSelection_current","addedKeys","$9a547420e1d2389e$var$$92599c3fd427b763$var$diffSelection","removedKeys","isReplace","currentSelectionText","addedText","removedText","$9a547420e1d2389e$export$be42ebdab07ae4c2","shouldLongPress","hasItemActions","$9a547420e1d2389e$export$70e2eed1a92976ad","checkboxId","checkboxProps","deselectedItem","longPressToSelect","selectedAll","selectedCount","one","selectedItem","$9c1208f5d4a4f1b5$var$$ce9b18daab526bbd$export$5b9bb410392e3991","$9c1208f5d4a4f1b5$var$$ce9b18daab526bbd$export$f45c25170b9a99c2","$9c1208f5d4a4f1b5$var$$ce9b18daab526bbd$export$e0c709538cb8ae18","$9c1208f5d4a4f1b5$export$664f9155035607eb","gridProps","$9c1208f5d4a4f1b5$export$9610e69494fadfd2","itemStates","rowProps","lastElement","$9c1208f5d4a4f1b5$var$$4e8b0456ef72939f$var$last","focusable1","lastElement1","gridCellProps","$9c1208f5d4a4f1b5$export$e29f2573fabbf7b9","$86ebec30be6118c4$export$cacbb3924155d68e","validRect","lastCollection","lastValidRect","rootNodes","buildCollection","addNodes","header","shouldInvalidateEverything","invalidateEverything","layoutNode","layoutNodes","_layoutNode_header","lastWidth","skipped","_this_rowHeight","rowHeight","estimatedRowHeight","isValid","buildChild","isLoading","_this_loaderHeight","loaderHeight","loader","_this_placeholderHeight","rect1","placeholderHeight","placeholder","buildNode","_node_parentKey","buildSection","buildItem","rectHeight","headingHeight","isEstimated","previousLayoutNode","curNode","lastNode","estimatedHeadingHeight","headerRect","startY","indentationForItem","newLayoutInfo","updateLayoutNode","oldLayoutInfo","allowDisabledKeyFocus","keyAbove","keyBelow","getDropTargetFromPoint","isValidDropTarget","dropPosition","$c4943d66cf44a25e$var$$a02d57049d202695$var$_Symbol_iterator","$c4943d66cf44a25e$export$d085fb9e920b5ca7","$c4943d66cf44a25e$export$2f645645f7bca764","$5d7e6f35fa332110$export$8467354a121f1b9f","labelElementType","htmlFor","fieldProps","$5d7e6f35fa332110$export$294aa081a6c6f55d","errorMessage","errorMessageId","errorMessageProps","$e73dde98f9b9700e$export$ed5abd763a836edc","minValue","maxValue","valueLabel","isIndeterminate","formatOptions","percentage","valueToFormat","progressBarProps","$041331ad35740071$var$$a43f840f49ffbe32$export$162ba336fb0c239f","$041331ad35740071$var$$a43f840f49ffbe32$export$1249dfbb98223794","$041331ad35740071$var$$a43f840f49ffbe32$export$99af8802cc2a10dc","$041331ad35740071$var$$a43f840f49ffbe32$export$3e2e13fb57b5c74b","$041331ad35740071$var$$a43f840f49ffbe32$export$84c9ee7bc724b71b","$041331ad35740071$var$$a43f840f49ffbe32$export$5379ba198163be86","$041331ad35740071$var$$a43f840f49ffbe32$export$ecc9c825de9d1a18","$041331ad35740071$var$$a43f840f49ffbe32$export$b945305960ad74a7","$041331ad35740071$var$$a43f840f49ffbe32$export$a889038a25113dd4","$041331ad35740071$var$$a43f840f49ffbe32$export$aeff243cf3356f00","$041331ad35740071$var$$a43f840f49ffbe32$export$55612d0bd9b5d41","$041331ad35740071$var$$a43f840f49ffbe32$export$aea9fd919467f03a","$041331ad35740071$var$$a43f840f49ffbe32$export$d4ebda6218901908","$041331ad35740071$var$$a43f840f49ffbe32$export$a1f608a9810da50f","$041331ad35740071$export$7c6ed87244065f3a","barClassName","showValueLabel","labelPosition","barProps","barStyle","$041331ad35740071$var$$parcel$interopDefault","$041331ad35740071$var$$a43f840f49ffbe32$exports","$041331ad35740071$var$$91c958cb2e66ca21$export$f7083dbeadcbb2bd","$041331ad35740071$var$$91c958cb2e66ca21$export$7219832bea80eb54","$041331ad35740071$var$$91c958cb2e66ca21$export$9633d311d6d6830b","$041331ad35740071$var$$91c958cb2e66ca21$export$278efdb85ed802da","$041331ad35740071$var$$91c958cb2e66ca21$export$3038f4c0c86f539b","$041331ad35740071$var$$91c958cb2e66ca21$export$58fb9ac68cf8e784","$041331ad35740071$var$$91c958cb2e66ca21$export$b676cd958401a736","$041331ad35740071$var$$91c958cb2e66ca21$export$8c428f4f13e424b","$041331ad35740071$var$$91c958cb2e66ca21$export$98ba5ef650aeb8ca","$041331ad35740071$var$$91c958cb2e66ca21$export$dc70b48c897b0f1a","$041331ad35740071$var$$91c958cb2e66ca21$export$79819ab9844dbe9b","$041331ad35740071$var$$91c958cb2e66ca21$export$c8c34e5e37bf511c","$041331ad35740071$var$$91c958cb2e66ca21$export$79b7e5abeef5134f","$041331ad35740071$var$$91c958cb2e66ca21$export$3663cbdb240663ec","$041331ad35740071$var$$91c958cb2e66ca21$export$524c81e63e1d64f5","$041331ad35740071$var$$91c958cb2e66ca21$export$6668708cb539f403","$041331ad35740071$export$c79b9d6b4cc92af7","subMask1Style","subMask2Style","angle","$041331ad35740071$var$$91c958cb2e66ca21$exports","$b4db458568249611$var$$ce415dc67314b753$var$cachedRTLResult","$b4db458568249611$export$faf7630257ad4304","recalculate","outerDiv","outerStyle","innerDiv","innerStyle","$b4db458568249611$export$5665e3d6be6adea","sizeToFit","onScrollStart","onScrollEnd","scrollDirection","defaultRef","scrollEndTime","scrollTimeout","flushSync","$b4db458568249611$export$1389d168952b34b5","updateSize","dom","pointerEvents","$b4db458568249611$export$1da781778207e0a2","$b4db458568249611$var$$47736c1e63ba1c6d$var$getSize","$b4db458568249611$export$6796df8ba7398521","$b4db458568249611$export$1481e64fbe01b8b3","$b4db458568249611$var$$ccf8a0a04e4175ae$var$cache","xProperty","WebkitTransition","WebkitTransitionDuration","$b4db458568249611$export$89be5a243e59c4b2","onLoadMore","fallbackRef","$b4db458568249611$var$$6d0a5c394373ae64$var$defaultRenderWrapper","virtualizerProps","lastFocusedKey","focusedView","hasTabbableChild","hasRenderedAnything","setHasTabbableChild","$b4db458568249611$var$$15be78fb069d96f5$export$eac1895992b9f3d6","$b4db458568249611$export$dd6d526d88b5a137","scrollOffset","$bfc3a2e84ae68df5$export$2e2bcd8739ae039","$bfc3a2e84ae68df5$var$_react","$ae9358eefc55ba96$exports","CheckmarkSmall","$ae9358eefc55ba96$var$CheckmarkSmall","$ae9358eefc55ba96$var$_react","$ae9358eefc55ba96$var$_interopRequireDefault","$ae9358eefc55ba96$var$_extends","$ae9358eefc55ba96$var$_objectWithoutProperties","$ae9358eefc55ba96$var$_objectWithoutPropertiesLoose","$d0b56b15cda933d6$export$2e2bcd8739ae039","$d0b56b15cda933d6$var$_react","$e0a4b475fa2dd485$exports","DashSmall","$e0a4b475fa2dd485$var$DashSmall","$e0a4b475fa2dd485$var$_react","$e0a4b475fa2dd485$var$_interopRequireDefault","$e0a4b475fa2dd485$var$_extends","$e0a4b475fa2dd485$var$_objectWithoutProperties","$e0a4b475fa2dd485$var$_objectWithoutPropertiesLoose","$0f46db5ba33e71ce$export$cbe85ee05b554577","inputProps","$a42aedb39f530058$export$e375f10ce42261c5","inputRef","indeterminate","$a42aedb39f530058$var$$1ae600c947479353$export$31440636951aa68c","$a42aedb39f530058$var$$1ae600c947479353$export$a3077e9c93f7360f","$a42aedb39f530058$var$$1ae600c947479353$export$d5679492e2864181","$a42aedb39f530058$export$49ff6f28c54f1cbe","$a42aedb39f530058$export$353b32fc6898d37d","toggleState","addValue","removeValue","$58b0c22e969acf78$var$$cd231e464c886c86$export$493d18e796ae054","$58b0c22e969acf78$var$$cd231e464c886c86$export$9e6f19dc21f22f2e","$58b0c22e969acf78$var$$cd231e464c886c86$export$7c47642c7d46f3c9","$58b0c22e969acf78$var$$cd231e464c886c86$export$885efcc08143a987","$58b0c22e969acf78$var$$cd231e464c886c86$export$f6d480ae1e56eba0","$58b0c22e969acf78$var$$cd231e464c886c86$export$24fb860d16dd2d3f","$58b0c22e969acf78$var$$cd231e464c886c86$export$a4ea780a9064d7f9","$58b0c22e969acf78$var$$cd231e464c886c86$export$3ab8a3dc7f0563d","$58b0c22e969acf78$var$$cd231e464c886c86$export$5354c9be7ada5f83","$58b0c22e969acf78$var$$cd231e464c886c86$export$2963225c91179589","$58b0c22e969acf78$var$$cd231e464c886c86$export$127df0b7290eb8ef","$58b0c22e969acf78$var$$cd231e464c886c86$export$9ba23707a252cdd4","$58b0c22e969acf78$var$$cd231e464c886c86$export$94d2bcc94afabd89","$58b0c22e969acf78$var$$cd231e464c886c86$export$7f44db659563c8f4","$58b0c22e969acf78$var$$cd231e464c886c86$export$9cde5aecff012641","$58b0c22e969acf78$var$$cd231e464c886c86$export$a872a8c78b26c9e0","$58b0c22e969acf78$var$$cd231e464c886c86$export$11b8bc81fe551057","$58b0c22e969acf78$var$$cd231e464c886c86$export$79f9a5e9dd010c8d","$58b0c22e969acf78$var$$cd231e464c886c86$export$51ec27881a1e3928","$58b0c22e969acf78$var$$cd231e464c886c86$export$d35bc1e505d1ebbf","$58b0c22e969acf78$var$$ac118ceca79b8650$var$FormContext","$58b0c22e969acf78$export$a6b5be5c6b451665","$58b0c22e969acf78$var$$ac118ceca79b8650$var$formPropNames","labelAlign","necessityIndicator","noValidate","$58b0c22e969acf78$var$$parcel$interopDefault","$58b0c22e969acf78$var$$cd231e464c886c86$exports","$38b474d85cd3109a$export$2e2bcd8739ae039","_provider$theme","_provider$theme$globa","$38b474d85cd3109a$var$_react","express","$38b474d85cd3109a$var$ExpressIcon","$1fc6928d58336aa5$exports","AlertMedium","$38b474d85cd3109a$var$_extends2","$1fc6928d58336aa5$var$AlertMedium","$1fc6928d58336aa5$var$_react","$1fc6928d58336aa5$var$_interopRequireDefault","$1fc6928d58336aa5$var$_extends","$1fc6928d58336aa5$var$_objectWithoutProperties","$1fc6928d58336aa5$var$_objectWithoutPropertiesLoose","$01ab442d9be916cf$export$2e2bcd8739ae039","$01ab442d9be916cf$var$_react","$b19aa12c9332c4a8$exports","Asterisk","$b19aa12c9332c4a8$var$Asterisk","$b19aa12c9332c4a8$var$_react","$b19aa12c9332c4a8$var$_interopRequireDefault","$b19aa12c9332c4a8$var$_extends","$b19aa12c9332c4a8$var$_objectWithoutProperties","$b19aa12c9332c4a8$var$_objectWithoutPropertiesLoose","$8bc94c9ee652c59d$var$$beda4304297005df$export$c0875e83c57c7736","$8bc94c9ee652c59d$var$$beda4304297005df$export$527776642b333691","$8bc94c9ee652c59d$var$$beda4304297005df$export$a512452beb4231bf","$8bc94c9ee652c59d$var$$beda4304297005df$export$6e9351b1ad13c","$8bc94c9ee652c59d$var$$beda4304297005df$export$d35bc1e505d1ebbf","$8bc94c9ee652c59d$var$$beda4304297005df$export$d31dd875d69daee0","$8bc94c9ee652c59d$export$a67c0bc59081311a","showErrorIcon","isErrorMessage","$8bc94c9ee652c59d$var$$parcel$interopDefault","$8bc94c9ee652c59d$var$$beda4304297005df$exports","$8bc94c9ee652c59d$var$$79b4ff1b6ea94ffc$exports","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$493d18e796ae054","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$9e6f19dc21f22f2e","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$7c47642c7d46f3c9","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$885efcc08143a987","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$f6d480ae1e56eba0","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$24fb860d16dd2d3f","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$a4ea780a9064d7f9","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$3ab8a3dc7f0563d","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$5354c9be7ada5f83","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$2963225c91179589","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$127df0b7290eb8ef","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$9ba23707a252cdd4","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$94d2bcc94afabd89","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$7f44db659563c8f4","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$9cde5aecff012641","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$a872a8c78b26c9e0","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$11b8bc81fe551057","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$79f9a5e9dd010c8d","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$51ec27881a1e3928","$8bc94c9ee652c59d$var$$cd231e464c886c86$export$d35bc1e505d1ebbf","$8bc94c9ee652c59d$export$b04be29aa201d4f5","includeNecessityIndicatorInAccessibilityName","labelFor","necessityLabel","$8bc94c9ee652c59d$var$$cd231e464c886c86$exports","labelClassNames","$8bc94c9ee652c59d$export$a455218a85c89869","formProps","isInForm","contextualHelp","wrapperProps","hasHelpText","contextualHelpId","labelWrapperClass","renderHelpText","labelAndContextualHelp","$96f045277e72fcbf$export$daff6da51032a415","selectedValues","includes","existingValue","toggleValue","$dd92dacf03c5a10b$var$$8c8ab388b155237e$export$baf37c4be89255b8","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$f8ee3e99d637ccac","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$fbf255e91152b086","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$f39a09f249340e2a","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$b07bd551df410935","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$682c8615600f6ee","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$e152b25f70350d85","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$7f6ea68ad4b1fa69","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$3f46c891456641e7","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$9244b14cfa532d4f","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$b8813cd5d7824ce7","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$3a2eb50fe5450439","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$14a30de2866685fa","$dd92dacf03c5a10b$var$$fe1a56c62936037c$export$d35bc1e505d1ebbf","$dd92dacf03c5a10b$export$48513f6b9f8ce62d","originalProps","groupState","markIcon","$dd92dacf03c5a10b$var$$parcel$interopDefault","$dd92dacf03c5a10b$var$$fe1a56c62936037c$exports","$dd92dacf03c5a10b$var$$4cb2b26710154c56$export$75eb16cbfc18279c","$dd92dacf03c5a10b$var$$4cb2b26710154c56$export$984c7bbbfc7ddffc","$dd92dacf03c5a10b$var$$4cb2b26710154c56$export$1ad8646bcba21c0e","$dd92dacf03c5a10b$var$$4cb2b26710154c56$exports","$f7953177c12667cf$export$2e2bcd8739ae039","$f7953177c12667cf$var$_react","$b27c30366dc7e089$exports","ChevronLeftMedium","$b27c30366dc7e089$var$ChevronLeftMedium","$b27c30366dc7e089$var$_react","$b27c30366dc7e089$var$_interopRequireDefault","$b27c30366dc7e089$var$_extends","$b27c30366dc7e089$var$_objectWithoutProperties","$b27c30366dc7e089$var$_objectWithoutPropertiesLoose","$932b0c1848d5b33a$export$2e2bcd8739ae039","$932b0c1848d5b33a$var$_react","$2219ca3d82ac685d$exports","ChevronRightMedium","$2219ca3d82ac685d$var$ChevronRightMedium","$2219ca3d82ac685d$var$_react","$2219ca3d82ac685d$var$_interopRequireDefault","$2219ca3d82ac685d$var$_extends","$2219ca3d82ac685d$var$_objectWithoutProperties","$2219ca3d82ac685d$var$_objectWithoutPropertiesLoose","$618a8e53233cd9fa$export$2e2bcd8739ae039","$c22b31c675df16bf$var$replaceClassName","origClass","classToRemove","$ee2e736fe07a2c40$var$_addClass","classList","baseVal","$ee2e736fe07a2c40$var$removeClass","$ee2e736fe07a2c40$var$CSSTransition","CSSTransition","_len","_key","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_this$appliedClasses$","$c9cc9f594d00a049$export$2e2bcd8739ae039","$ee2e736fe07a2c40$export$2e2bcd8739ae039","$c9cc9f594d00a049$var$_react","$faf77e4807bbd228$exports","ListGripper","$faf77e4807bbd228$var$ListGripper","$faf77e4807bbd228$var$_react","$faf77e4807bbd228$var$_interopRequireDefault","$c28141ace9c2d317$var$$c8bc378300208597$export$4ad4709e9aee8e02","$c28141ace9c2d317$var$$c8bc378300208597$export$f80410436c6352c8","$c28141ace9c2d317$var$$c8bc378300208597$export$eb0d5352b2a55473","$c28141ace9c2d317$var$$c8bc378300208597$export$d9ba3f873d0eaec6","$c28141ace9c2d317$var$$c8bc378300208597$export$ce8c93b50eec2d4f","$c28141ace9c2d317$var$$c8bc378300208597$export$1e0fb04f31d3c22a","$c28141ace9c2d317$var$$c8bc378300208597$export$b8813cd5d7824ce7","$c28141ace9c2d317$var$$c8bc378300208597$export$20fd0f7cd4e6112f","$c28141ace9c2d317$var$$c8bc378300208597$export$f39a09f249340e2a","$c28141ace9c2d317$var$$c8bc378300208597$export$60162f05499b7560","$c28141ace9c2d317$var$$c8bc378300208597$export$b01cb9680b0b8d22","$c28141ace9c2d317$var$$c8bc378300208597$export$53aa811f86efbfad","$c28141ace9c2d317$var$$c8bc378300208597$export$f9ed481cac4d935a","$c28141ace9c2d317$var$$c8bc378300208597$export$5aa06adeaa92dbca","$c28141ace9c2d317$var$$c8bc378300208597$export$659c081622dc13b0","$c28141ace9c2d317$var$$c8bc378300208597$export$1bf50375883926","$c28141ace9c2d317$var$$c8bc378300208597$export$d9b13621bc5dd4d1","$c28141ace9c2d317$var$$c8bc378300208597$export$68b45d42c77fe1cf","$c28141ace9c2d317$var$$c8bc378300208597$export$dc2b0b08d47555","$c28141ace9c2d317$var$$c8bc378300208597$export$5d2adfeb248e654a","$c28141ace9c2d317$var$$c8bc378300208597$export$3b4577d06eb82ec0","$c28141ace9c2d317$var$$c8bc378300208597$export$8a26470723c97997","$c28141ace9c2d317$var$$c8bc378300208597$export$e7dc768d35940237","$c28141ace9c2d317$var$$c8bc378300208597$export$d35bc1e505d1ebbf","$c28141ace9c2d317$var$$c8bc378300208597$export$27f4d14f7fc5b94","$c28141ace9c2d317$var$$c8bc378300208597$export$aaaf83100348d389","$c28141ace9c2d317$var$$c8bc378300208597$export$f385e7456ddfee84","$c28141ace9c2d317$var$$c8bc378300208597$export$4784f0c2ec8bbf7b","$c28141ace9c2d317$var$$c8bc378300208597$export$41a33ae9818c51be","$c28141ace9c2d317$var$$c8bc378300208597$export$f979f76ca45242f2","$c28141ace9c2d317$var$$c8bc378300208597$export$38c6ebb7f58dedaa","$c28141ace9c2d317$var$$c8bc378300208597$export$7c9efe74c4b77579","$c28141ace9c2d317$var$$c8bc378300208597$export$26480389595d4515","$c28141ace9c2d317$var$$c8bc378300208597$export$58dfda3903289699","$c28141ace9c2d317$var$$c8bc378300208597$export$39b42a8a24290c17","$c28141ace9c2d317$var$$c8bc378300208597$export$84286d36e5c00c55","$c28141ace9c2d317$var$$c8bc378300208597$export$fcabaf52adc14efe","$c28141ace9c2d317$var$$c8bc378300208597$export$256b97e812db1642","$c28141ace9c2d317$var$$c8bc378300208597$export$6498e436231eea33","$c28141ace9c2d317$var$$c8bc378300208597$export$2fb3c7c2d5c0d720","$c28141ace9c2d317$var$$c8bc378300208597$export$7150e72e440612bf","$c28141ace9c2d317$var$$c8bc378300208597$export$c29dcfa80dab8c88","$c28141ace9c2d317$var$$c8bc378300208597$export$1f55b27adf96a61e","$c28141ace9c2d317$var$$c8bc378300208597$export$cbd30c7809acdd81","$c28141ace9c2d317$var$$c8bc378300208597$export$a2d35348c0cc9bca","$c28141ace9c2d317$var$$c8bc378300208597$export$8afa006321ee3a8f","$c28141ace9c2d317$var$$c8bc378300208597$export$1b66ee5cd8394caf","$c28141ace9c2d317$var$$c8bc378300208597$export$6b3b7792abd9e5f4","$c28141ace9c2d317$var$$c8bc378300208597$export$2a6a235e0baff403","$c28141ace9c2d317$var$$c8bc378300208597$export$927a243805a411ca","$c28141ace9c2d317$var$$c8bc378300208597$export$9dc11c0e0825a249","$c28141ace9c2d317$var$$c8bc378300208597$export$f89865e352230a35","$c28141ace9c2d317$var$$c8bc378300208597$export$867c05a16e5d2a7c","$c28141ace9c2d317$var$$c8bc378300208597$export$61b66671605f1b1a","$c28141ace9c2d317$var$$0a834ddbc989a3e3$export$2e2bcd8739ae039","dropState","dragAndDropHooks","$c28141ace9c2d317$var$$f85fb77f9d4cbc6c$export$870039b0abfe3de0","isPresentationOnly","dropIndicatorProps","useDropIndicator","isDropTarget","$c28141ace9c2d317$var$$parcel$interopDefault","$c28141ace9c2d317$var$$c8bc378300208597$exports","$c28141ace9c2d317$var$$d7c07ca2efc5ba02$export$c6bde0c04b033c0e","_layout_getContentSize","_layout_virtualizer","draggableItem","dropIndicator","dragState","isListDraggable","isListDroppable","loadingState","rowRef","isFocusVisibleWithin","isDroppable","hasDescription","useDraggableItem","hasDragButton","dropIndicatorRef","dragButtonRef","dragButtonProps","chevron","showCheckbox","dropProps","mergedProps","dragProps","isVirtualDragging","isFirstRow","isLastRow","isFlushWithContainerBottom","roundTops","roundBottoms","enterActive","exitActive","illustration","image","actionGroup","density","actionMenu","$c28141ace9c2d317$var$$41a60729487a82d7$export$2e2bcd8739ae039","$c28141ace9c2d317$var$$cd61e55c47e3c0f5$export$905ab40ac2179daa","itemCount","itemHeight","isDraggingMultiple","$c28141ace9c2d317$var$$8d8b0a0ae222979e$exports","loading","loadingMore","$c28141ace9c2d317$var$$f85fb77f9d4cbc6c$var$ROW_HEIGHTS","compact","regular","spacious","$c28141ace9c2d317$var$$f85fb77f9d4cbc6c$var$CenteredWrapper","$c28141ace9c2d317$export$84d0dd190d551cd1","_dropState_target","overflowMode","useDraggableCollectionState","useDroppableCollectionState","dragHooksProvided","dropHooksProvided","selectionStyle","preview","useDraggableCollection","$c28141ace9c2d317$var$$f85fb77f9d4cbc6c$var$useListLayout","draggingKeys","droppableCollection","isRootDropTarget","DragPreview","useDroppableCollection","dropTargetDelegate","isVerticalScrollbarVisible","setVerticalScollbarVisible","isHorizontalScrollbarVisible","setHorizontalScollbarVisible","hasAnyChildren","hasActions","emptyState","renderEmptyState","draggedKey","$1172abddd0a7d458$export$2e2bcd8739ae039","$1172abddd0a7d458$var$_react","$a525f27bac82deac$exports","A4uCopy","$a525f27bac82deac$var$_extends","$a525f27bac82deac$var$_react","rx","ry","$a525f27bac82deac$var$_interopRequireDefault","$628752cdc25bdd88$export$2e2bcd8739ae039","$628752cdc25bdd88$var$_react","$4d0cdf3b5a1167db$exports","A4uPreview","$4d0cdf3b5a1167db$var$_extends","$4d0cdf3b5a1167db$var$_react","$4d0cdf3b5a1167db$var$_interopRequireDefault","$0aa105b49de00ad1$export$2e2bcd8739ae039","$0aa105b49de00ad1$var$_react","$2699bd1e47d6652c$exports","A4uChevronLeft","$2699bd1e47d6652c$var$_extends","$2699bd1e47d6652c$var$_react","$2699bd1e47d6652c$var$_interopRequireDefault","$79d57c853963b8c9$export$2e2bcd8739ae039","$79d57c853963b8c9$var$_react","fill","strokeLinecap","strokeLinejoin","async","$2599fc50957c6d63$export$13e3730f7343d89a","block","path","variants","doc","resp","fetch","ok","html","DOMParser","parseFromString","$2599fc50957c6d63$var$fetchPlainBlock","blockVariant","$2599fc50957c6d63$var$getBlockName","table","URL","origin","mediaPath","src","ratio","maxCols","cols","row","headerRow","th","insertAdjacentHTML","append","tr","td","outerHTML","$2599fc50957c6d63$export$71b553ef914ccf29","$2599fc50957c6d63$export$973d2a8bc5d0b4cc","clipboard","write","ClipboardItem","Blob","$dc2c7bbd0d4f8879$var$renderEmptyState","$dc2c7bbd0d4f8879$var$openPreview","$fb25579ff16ded24$var$$ea2e8e3460b67692$export$4ecdba604f5f1f44","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$3311ab3a441bc141","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$4c0c83b3f4303ef8","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$a88a8dbe29386d31","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$4ecdba604f5f1f44","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$68dc111a79481afd","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$efb37c2f79da8163","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$export$baaa804dc80cce18","$fb25579ff16ded24$var$$b2eefcc3e5fdb373$export$a88a8dbe29386d31","$fb25579ff16ded24$var$$729ae839c55d8d77$export$efb37c2f79da8163","$fb25579ff16ded24$var$$b4d117254fac085c$export$4c0c83b3f4303ef8","$fb25579ff16ded24$export$bca14c5b3b88a9c9","$fb25579ff16ded24$var$$parcel$interopDefault","$fb25579ff16ded24$var$$5b6ea5874ed9af7b$exports","$fb25579ff16ded24$var$$729ae839c55d8d77$exports","$fb25579ff16ded24$var$$ea2e8e3460b67692$exports","$fb25579ff16ded24$var$$b4d117254fac085c$exports","$fb25579ff16ded24$var$$b2eefcc3e5fdb373$exports","$35da740d59af89ba$var$app","setLoading","blocks","setBlocks","openedSubmenu","setOpenedSubmenu","json","allSettled","fulfilledBlocks","find","blockPath","$dc2c7bbd0d4f8879$var$handleBlockAction"],"version":3,"file":"index.985d9304.js.map"} \ No newline at end of file diff --git a/tools/block-picker/dist/index.html b/tools/block-picker/dist/index.html new file mode 100644 index 00000000..10936232 --- /dev/null +++ b/tools/block-picker/dist/index.html @@ -0,0 +1 @@ +Franklin Picker
    \ No newline at end of file diff --git a/tools/block-picker/package-lock.json b/tools/block-picker/package-lock.json new file mode 100644 index 00000000..af7e0fad --- /dev/null +++ b/tools/block-picker/package-lock.json @@ -0,0 +1,9769 @@ +{ + "name": "franklin-block-picker", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "franklin-block-picker", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "^3.21.2", + "@spectrum-icons/illustrations": "^3.5.0", + "@spectrum-icons/ui": "^3.3.3", + "@spectrum-icons/workflow": "^4.0.3", + "react": "^16.8.0", + "react-dom": "^16.8.0" + }, + "devDependencies": { + "@parcel/transformer-inline-string": "^2.7.0", + "parcel": "^2.8.0", + "process": "^0.11.10" + } + }, + "node_modules/@adobe/react-spectrum": { + "version": "3.24.1", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum/-/react-spectrum-3.24.1.tgz", + "integrity": "sha512-Pa0NbQ6I45NIWu+6Vw5/070n7/QwFt51PbPEKACJhjZVJR8bqiBWozpdPxZP97hSfAe74HZ2TYwwKaxjDEtVuA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/ssr": "^3.4.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/actiongroup": "^3.7.3", + "@react-spectrum/badge": "^3.0.2", + "@react-spectrum/breadcrumbs": "^3.6.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/buttongroup": "^3.5.2", + "@react-spectrum/calendar": "^3.1.5", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/combobox": "^3.7.2", + "@react-spectrum/contextualhelp": "^3.4.2", + "@react-spectrum/datepicker": "^3.3.2", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/dnd": "^3.0.1", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/icon": "^3.6.3", + "@react-spectrum/illustratedmessage": "^3.3.4", + "@react-spectrum/image": "^3.3.4", + "@react-spectrum/labeledvalue": "^3.0.3", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/link": "^3.4.4", + "@react-spectrum/list": "^3.2.2", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/meter": "^3.3.4", + "@react-spectrum/numberfield": "^3.5.2", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/picker": "^3.9.2", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/provider": "^3.6.1", + "@react-spectrum/radio": "^3.4.3", + "@react-spectrum/searchfield": "^3.6.2", + "@react-spectrum/slider": "^3.4.1", + "@react-spectrum/statuslight": "^3.4.4", + "@react-spectrum/switch": "^3.3.5", + "@react-spectrum/table": "^3.6.1", + "@react-spectrum/tabs": "^3.4.1", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/theme-dark": "^3.4.1", + "@react-spectrum/theme-default": "^3.4.1", + "@react-spectrum/theme-light": "^3.3.1", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/view": "^3.4.1", + "@react-spectrum/well": "^3.3.4", + "@react-stately/collections": "^3.5.1", + "@react-stately/data": "^3.8.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", + "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.32", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz", + "integrity": "sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz", + "integrity": "sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/icu-skeleton-parser": "1.3.18", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.18", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", + "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.14.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", + "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@internationalized/date": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.0.2.tgz", + "integrity": "sha512-9V1IxesP6ASZj/hYyOXOC4yPJvidbbStyWQKLCQSqhhKACMOXoo+BddXZJy47ju9mqOMpWdrJ2rTx4yTxK9oag==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@internationalized/message": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.0.10.tgz", + "integrity": "sha512-vfLqEop/NH68IgqMcXJNSDqZ5Leg3EEgCxhuuSefU7vvdbptD3pwpUWXaK9igYPa+aZfUU0eqv86yqm76obtsw==", + "dependencies": { + "@swc/helpers": "^0.4.14", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.1.2.tgz", + "integrity": "sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@internationalized/string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.0.1.tgz", + "integrity": "sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", + "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==", + "dev": true + }, + "node_modules/@lezer/lr": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz", + "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==", + "dev": true, + "dependencies": { + "@lezer/common": "^0.15.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mischnic/json-sourcemap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", + "integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==", + "dev": true, + "dependencies": { + "@lezer/common": "^0.15.7", + "@lezer/lr": "^0.15.4", + "json5": "^2.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.2.0.tgz", + "integrity": "sha512-Z9LFPzfoJi4mflGWV+rv7o7ZbMU5oAU9VmzCgL240KnqDW65Y2HFCT3MW06/ITJSnbVLacmcEJA8phywK7JinQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.2.0.tgz", + "integrity": "sha512-vq0tT8sjZsy4JdSqmadWVw6f66UXqUCabLmUVHZwUFzMgtgoIIQjT4VVRHKvlof3P/dMCkbMJ5hB1oJ9OWHaaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.2.0.tgz", + "integrity": "sha512-SaJ3Qq4lX9Syd2xEo9u3qPxi/OB+5JO/ngJKK97XDpa1C587H9EWYO6KD8995DAjSinWvdHKRrCOXVUC5fvGOg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.2.0.tgz", + "integrity": "sha512-hlxxLdRmPyq16QCutUtP8Tm6RDWcyaLsRssaHROatgnkOxdleMTgetf9JsdncL8vLh7FVy/RN9i3XR5dnb9cRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.2.0.tgz", + "integrity": "sha512-94y5PJrSOqUNcFKmOl7z319FelCLAE0rz/jPCWS+UtdMZvpa4jrQd+cJPQCLp2Fes1yAW/YUQj/Di6YVT3c3Iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.2.0.tgz", + "integrity": "sha512-XrC0JzsqQSvOyM3t04FMLO6z5gCuhPE6k4FXuLK5xf52ZbdvcFe1yBmo7meCew9B8G2f0T9iu9t3kfTYRYROgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@parcel/bundler-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.2.tgz", + "integrity": "sha512-/7ao0vc/v8WGHZaS1SyS5R8wzqmmXEr9mhIIB2cbLQ4LA2WUtKsYcvZ2gjJuiAAN1CHC6GxqwYjIJScQCk/QXg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/graph": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/cache": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.2.tgz", + "integrity": "sha512-kiyoOgh1RXp5qp+wlb8Pi/Z7o9D82Oj5RlHnKSAauyR7jgnI8Vq8JTeBmlLqrf+kHxcDcp2p86hidSeANhlQNg==", + "dev": true, + "dependencies": { + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/utils": "2.8.2", + "lmdb": "2.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.2.tgz", + "integrity": "sha512-U2GT9gq1Zs3Gr83j8JIs10bLbGOHFl57Y8D57nrdR05F4iilV/UR6K7jkhdoiFc9WiHh3ewvrko5+pSdAVFPgQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.2.tgz", + "integrity": "sha512-EFPTer/P+3axifH6LtYHS3E6ABgdZnjZomJZ/Nl19lypZh/NgZzmMZlINlEVqyYhCggoKfXzgeTgkIHPN2d5Vw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.8.2.tgz", + "integrity": "sha512-1ELJAHx37fKSZZkYKWy6UdcuLRv5vrZJc89tVS6eRvvMt+udbIoSgIUzPXu7XemkcchF7Tryw3u2pRyxyLyL3w==", + "dev": true, + "dependencies": { + "@parcel/bundler-default": "2.8.2", + "@parcel/compressor-raw": "2.8.2", + "@parcel/namer-default": "2.8.2", + "@parcel/optimizer-css": "2.8.2", + "@parcel/optimizer-htmlnano": "2.8.2", + "@parcel/optimizer-image": "2.8.2", + "@parcel/optimizer-svgo": "2.8.2", + "@parcel/optimizer-terser": "2.8.2", + "@parcel/packager-css": "2.8.2", + "@parcel/packager-html": "2.8.2", + "@parcel/packager-js": "2.8.2", + "@parcel/packager-raw": "2.8.2", + "@parcel/packager-svg": "2.8.2", + "@parcel/reporter-dev-server": "2.8.2", + "@parcel/resolver-default": "2.8.2", + "@parcel/runtime-browser-hmr": "2.8.2", + "@parcel/runtime-js": "2.8.2", + "@parcel/runtime-react-refresh": "2.8.2", + "@parcel/runtime-service-worker": "2.8.2", + "@parcel/transformer-babel": "2.8.2", + "@parcel/transformer-css": "2.8.2", + "@parcel/transformer-html": "2.8.2", + "@parcel/transformer-image": "2.8.2", + "@parcel/transformer-js": "2.8.2", + "@parcel/transformer-json": "2.8.2", + "@parcel/transformer-postcss": "2.8.2", + "@parcel/transformer-posthtml": "2.8.2", + "@parcel/transformer-raw": "2.8.2", + "@parcel/transformer-react-refresh-wrap": "2.8.2", + "@parcel/transformer-svg": "2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.2.tgz", + "integrity": "sha512-ZGuq6p+Lzx6fgufaVsuOBwgpU3hgskTvIDIMdIDi9gOZyhGPK7U2srXdX+VYUL5ZSGbX04/P6QlB9FMAXK+nEg==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/graph": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "abortcontroller-polyfill": "^1.1.9", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "json5": "^2.2.0", + "msgpackr": "^1.5.4", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.2.tgz", + "integrity": "sha512-tGSMwM2rSYLjJW0fCd9gb3tNjfCX/83PZ10/5u2E33UZVkk8OIHsQmsrtq2H2g4oQL3rFxkfEx6nGPDGHwlx7A==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.2.tgz", + "integrity": "sha512-o5etrsKm16y8iRPnjtEBNy4lD0WAigD66yt/RZl9Rx0vPVDly/63Rr9+BrXWVW7bJ7x0S0VVpWW4j3f/qZOsXg==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/fs": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.2.tgz", + "integrity": "sha512-aN8znbMndSqn1xwZEmMblzqmJsxcExv2jKLl/a9RUHAP7LaPYcPZIykDL3YwGCiKTCzjmRpXnNoyosjFFeBaHA==", + "dev": true, + "dependencies": { + "@parcel/fs-search": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/fs-search": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.2.tgz", + "integrity": "sha512-ovQnupRm/MoE/tbgH0Ivknk0QYenXAewjcog+T5umDmUlTmnIRZjURrgDf5Xtw8T/CD5Xv+HmIXpJ9Ez/LzJpw==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/graph": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.2.tgz", + "integrity": "sha512-SLEvBQBgfkXgU4EBu30+CNanpuKjcNuEv/x8SwobCF0i3Rk+QKbe7T36bNR7727mao++2Ha69q93Dd9dTPw0kQ==", + "dev": true, + "dependencies": { + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/hash": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.2.tgz", + "integrity": "sha512-NBnP8Hu0xvAqAfZXRaMM66i8nJyxpKS86BbhwkbgTGbwO1OY87GERliHeREJfcER0E0ZzwNow7MNR8ZDm6IvJQ==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "xxhash-wasm": "^0.4.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.2.tgz", + "integrity": "sha512-zlhK6QHxfFJMlVJxxcCw0xxBDrYPFPOhMxSD6p6b0z9Yct1l3NdpmfabgjKX8wnZmHokFsil6daleM+M80n2Ew==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.2.tgz", + "integrity": "sha512-5y29TXgRgG0ybuXaDsDk4Aofg/nDUeAAyVl9/toYCDDhxpQV4yZt8WNPu4PaNYKGLuNgXwsmz+ryZQHGmfbAIQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.2.tgz", + "integrity": "sha512-sMLW/bDWXA6IE7TQKOsBnA5agZGNvZ9qIXKZEUTsTloUjMdAWI8NYA1s0i9HovnGxI5uGlgevrftK4S5V4AdkA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/node-resolver-core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.2.tgz", + "integrity": "sha512-D/NJEz/h/C3RmUOWSTg0cLwG3uRVHY9PL+3YGO/c8tKu8PlS2j55XtntdiVfwkK+P6avLCnrJnv/gwTa79dOPw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.8.2.tgz", + "integrity": "sha512-pQEuKhk0PJuYI3hrXlf4gpuuPy+MZUDzC44ulQM7kVcVJ0OofuJQQeHfTLE+v5wClFDd29ZQZ7RsLP5RyUQ+Lg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.8.2.tgz", + "integrity": "sha512-4+3wi+Yi+hsf5/LolX59JXFe/7bLpI6NetUBgtoxOVm/EzFg1NGSNOcrthzEcgGj6+MMSdzBAxRTPObAfDxJCA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.8.2.tgz", + "integrity": "sha512-/ICYG0smbMkli+su4m/ENQPxQDCPYYTJTjseKwl+t1vyj6wqNF99mNI4c0RE2TIPuDneGwSz7PlHhC2JmdgxfQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-svgo": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.8.2.tgz", + "integrity": "sha512-nFWyM+CBtgBixqknpbN4R92v8PK7Gjlrsb8vxN/IIr/3Pjk+DfoT51DnynhU7AixvDylYkgjjqrQ7uFYYl0OKA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-terser": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.2.tgz", + "integrity": "sha512-jFAOh9WaO6oNc8B9qDsCWzNkH7nYlpvaPn0w3ZzpMDi0HWD+w+xgO737rWLJWZapqUDSOs0Q/hDFEZ82/z0yxA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "terser": "^5.2.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.2.tgz", + "integrity": "sha512-hx4Imi0yhsSS0aNZkEANPYNNKqBuR63EUNWSxMyHh4ZOvbHoOXnMn1ySGdx6v0oi9HvKymNsLMQ1T5CuI4l4Bw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.8.2.tgz", + "integrity": "sha512-l2fR5qr1moUWLOqQZPxtH6DBKbaKcxzEPAmQ+f15dHt8eQxU15MyQ4DHX41b5B7HwaumgCqe0NkuTF3DedpJKg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.8.2.tgz", + "integrity": "sha512-/oiTsKZ5OyF9OwAVGHANNuW2TB3k3cVub1QfttSKJgG3sAhrOifb1dP8zBHMxvUrB0CJdYhGlgi1Jth9kjACCg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.2.tgz", + "integrity": "sha512-48LtHP4lJn8J1aBeD4Ix/YjsRxrBUkzbx7czdUeRh2PlCqY4wwIhciVlEFipj/ANr3ieSX44lXyVPk/ttnSdrw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.2.tgz", + "integrity": "sha512-dGonfFptNV1lgqKaD17ecXBUyIfoG6cJI1cCE1sSoYCEt7r+Rq56X/Gq8oiA3+jjMC7QTls+SmFeMZh26fl77Q==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.8.2.tgz", + "integrity": "sha512-k7LymTJ4XQA+UcPwFYqJfWs5/Awa4GirNxRWfiFflLqH3F1XvMiKSCIQXmrDM6IaeIqqDDsu6+P5U6YDAzzM3A==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "posthtml": "^0.16.4" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.2.tgz", + "integrity": "sha512-YG7TWfKsoNm72jbz3b3TLec0qJHVkuAWSzGzowdIhX37cP1kRfp6BU2VcH+qYPP/KYJLzhcZa9n3by147mGcxw==", + "dev": true, + "dependencies": { + "@parcel/types": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.8.2.tgz", + "integrity": "sha512-OIRlBqpKqPpMWRHATT8az8fUAqfceLWlWqgX/CW5cG1i6gefbBWFq2qYxDVBEk1bPDLIUCtqNLhfO8hLyweMjA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "chalk": "^4.1.0", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.2.tgz", + "integrity": "sha512-A16pAQSAT8Yilo1yCPZcrtWbRhwyiMopEz0mOyGobA1ZDy6B3j4zjobIWzdPQCSIY7+v44vtWMDGbdGrxt6M1Q==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.2.tgz", + "integrity": "sha512-mlowJMjFjyps9my8wd13kgeExJ5EgkPAuIxRSSWW+GPR7N3uA5DBJ+SB/CzdhCkPrXR6kwVWxNkkOch38pzOQQ==", + "dev": true, + "dependencies": { + "@parcel/node-resolver-core": "2.8.2", + "@parcel/plugin": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.8.2.tgz", + "integrity": "sha512-VRM8mxakMglqRB0f5eAuwCigjJ5vlaJMwHy+JuzOsn/yVSELOb+6psRKl2B9hhxp9sJPt4IU6KDdH2IOrgx87Q==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.2.tgz", + "integrity": "sha512-Vk3Gywn2M9qP5X4lF6tu8QXP4xNI90UOSOhKHQ9W5pCu+zvD0Gdvu7qwQPFuFjIAq08xU7+PvZzGnlnM+8NyRw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-react-refresh": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.8.2.tgz", + "integrity": "sha512-JjaMvBVx6v0zB1KHa7AopciIsl3FpjUMttr2tb6L7lzocti2muQGE6GBfinXOmD5oERwCf8HwGJ8SNFcIF0rKA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "react-error-overlay": "6.0.9", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-service-worker": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.8.2.tgz", + "integrity": "sha512-KSxbOKV8nuH5JjFvcUlCtBYnVVlmxreXpMxRUPphPwJnyxRGA4E0jofbQxWY5KPgp7x/ZnZU/nyzCvqURH3kHA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.8.2.tgz", + "integrity": "sha512-oL2BpvrPMwFiU9jUZ9UYGD1gRgvq9jLsOq+/PJl4GvPbOBVedIBE2nbHP/mYuWRpRnTTTiJQ/ItyOS0R2VQl7A==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^5.7.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.8.2.tgz", + "integrity": "sha512-q8UDlX/TTCbuFBMU45q12/p92JNIz8MHkkH104dWDzXbRtvMKMg8jgNmr8S2bouZjtXMsSb2c54EO88DSM9G4A==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-html": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.8.2.tgz", + "integrity": "sha512-QDgDw6+DAcllaRQiRteMX0VgPIsxRUTXFS8jcXhbGio41LbUkLcT09M04L/cfJAAzvIKhXqiOxfNnyajTvCPDQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.8.2.tgz", + "integrity": "sha512-B/D9v/BVyN5jxoi+wHPbIRfMIylmC6adp8GP+BtChjbuRjukgGT8RlAVz4vDm1l0bboeyPL2IuoWRQgXKGuPVg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/transformer-inline-string": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.8.2.tgz", + "integrity": "sha512-140SRnwKktVJB/McYlN0ub4NpdXECu0NesVf3ORPaG1WLF/ZxYVpLl60XBptoze9ezUqR6B6Z34fWXZiOcW09Q==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.2.tgz", + "integrity": "sha512-mLksi6gu/20JdCFDNPl7Y0HTwJOAvf2ybC2HaJcy69PJCeUrrstgiFTjsCwv1eKcesgEHi9kKX+sMHVAH3B/dA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "@swc/helpers": "^0.4.12", + "browserslist": "^4.6.6", + "detect-libc": "^1.0.3", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.13.7", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@parcel/transformer-json": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.2.tgz", + "integrity": "sha512-eZuaY5tMxcMDJwpHJbPVTgSaBIO4mamwAa3VulN9kRRaf29nc+Q0iM7zMFVHWFQAi/mZZ194IIQXbDX3r6oSSQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "json5": "^2.2.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-postcss": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.8.2.tgz", + "integrity": "sha512-0Vb4T2e0QinNDps1/PxYsZwEzWieVxoW++AAUD3gzg0MfSyRc72MPc27CLOnziiRDyOUl+62gqpnNzq9xaKExA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-posthtml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.8.2.tgz", + "integrity": "sha512-Ub7o6QlH7+xHHHdhvR7MxTqjyLVqeJopPSzy4yP+Bd72tWVjaVm7f76SUl+p7VjhLTMkmczr9OxG3k0SFHEbGw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.8.2.tgz", + "integrity": "sha512-xSzyZtrfisbx0R7xkuFJ/FksKyWaUFN18F9/0bLF8wo5LrOTQoYQatjun7/Rbq5mELBK/0ZPp7uJ02OqLRd2mA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.8.2.tgz", + "integrity": "sha512-UXBILYFXaj5zh1DzoYXoS3Wuq1+6WjoRQaFTUA5xrF3pjJb6LAXxWru3R20zR5INHIZXPxdQJB0b+epnmyjK4w==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.8.2.tgz", + "integrity": "sha512-FyliRrNHOF6tGzwHSzA2CTbkq3iMvS27eozf1kFj6gbO8gfJ5HXYoppQrTb237YZ/WXCHqe/3HVmGyJDZiLr+Q==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/types": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.2.tgz", + "integrity": "sha512-HAYhokWxM10raIhqaYj9VR9eAvJ+xP2sNfQ1IcQybHpq3qblcBe/4jDeuUpwIyKeQ4gorp7xY+q8KDoR20j43w==", + "dev": true, + "dependencies": { + "@parcel/cache": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/workers": "2.8.2", + "utility-types": "^3.10.0" + } + }, + "node_modules/@parcel/utils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.2.tgz", + "integrity": "sha512-Ufax7wZxC9FNsUpR0EU7Z22LEY/q9jjsDTwswctCdfpWb7TE/NudOfM9myycfRvwBVEYN50lPbkt1QltEVnXQQ==", + "dev": true, + "dependencies": { + "@parcel/codeframe": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/markdown-ansi": "2.8.2", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz", + "integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/workers": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.2.tgz", + "integrity": "sha512-Eg6CofIrJSNBa2fjXwvnzVLPKwR/6fkfQTFAm3Jl+4JYLVknBtTSFzQNp/Fa+HUEG889H9ucTk2CBi/fVPBAFw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "chrome-trace-event": "^1.0.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.8.2" + } + }, + "node_modules/@react-aria/actiongroup": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.4.4.tgz", + "integrity": "sha512-KMY1lr2CO0I7Hv+3fM9MoDDyc8Za9SiGJn/Bxe7j636cmJNgGsAJnbE/FHJ3phlxNt8axbgG45gi0AJLqYiLqg==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/actiongroup": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/breadcrumbs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.4.1.tgz", + "integrity": "sha512-3dotDXcXX5IbES9tS9gK5m/2inlZH1ZESi61aBUoD/kQbUcf4CJ3TniVqzBKjNqQN8yIBH/LjwkAoGmuvtPVRQ==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/link": "^3.3.6", + "@react-aria/utils": "^3.14.2", + "@react-types/breadcrumbs": "^3.4.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/button": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.4.tgz", + "integrity": "sha512-OEs5fNGiuZzyC5y0cNl96+6pRf/3ZhI1i2m6LlRYhJLsWXPhHt21UHEnlSchE/XGtgKojJEeTsXottoBFTBi5w==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-RIOwGYIwMizN/MAF5RkTb2ic9OJ0rJyR2VqqgtV3c7ADHNejzyLYMQmaalEFDUHS+AbvaXM1LCXdFBhSB8nf5w==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/utils": "^3.14.2", + "@react-stately/calendar": "^3.0.5", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/checkbox": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.7.1.tgz", + "integrity": "sha512-3KRg/KrTRwQdw5Yg7gpbIKWWVt57PbGSEXAS/diQvRf9pTXbOuChTES8uVlcwF8q+3mKXc4ppzE3gsNQ5jOMqg==", + "dependencies": { + "@react-aria/label": "^3.4.4", + "@react-aria/toggle": "^3.4.2", + "@react-aria/utils": "^3.14.2", + "@react-stately/checkbox": "^3.3.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/combobox": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.4.tgz", + "integrity": "sha512-aviSDt4JkYZC1Ww83gvrNB4cHetXu73n5NuEfMNBC3B6fiL0MP5Av5+lMgf8FzpQks39QkZNxBtQ/h4I3D7SBA==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/listbox": "^3.7.2", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/menu": "^3.7.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/combobox": "^3.3.1", + "@react-stately/layout": "^3.10.0", + "@react-types/button": "^3.7.0", + "@react-types/combobox": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/datepicker": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.2.1.tgz", + "integrity": "sha512-NnW9VgX/YjxkgjcIaxmOhzpfiQmTQpCXjpPJ1+3nPhKzPKpcjtPxIYTDMkm/R+6i5FRukEGtjhg3QY9amLK6hQ==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@internationalized/number": "^3.1.2", + "@internationalized/string": "^3.0.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/spinbutton": "^3.2.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/datepicker": "^3.2.1", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/datepicker": "^3.1.4", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/dialog": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.4.2.tgz", + "integrity": "sha512-Z6YZYXtwwmC5ZHjJldF3zuTjHnli7fXe/sM1ts3bw6jvU2L0kzhV/DRbPXYg8h695Oj9t+OIi4qxjEyKVH7SEA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/overlays": "^3.4.4", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.10.1.tgz", + "integrity": "sha512-HjgFUC1CznuYC7CxtBIFML6bOBxW3M3cSNtvmXU9QWlrPSwwOLkXCnfY6+UkjCc5huP4v7co4PoRDX8Vbe/cVQ==", + "dependencies": { + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/grid": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.2.tgz", + "integrity": "sha512-+cDtTvTT0YF4jgy1pv0omcweub6z1N+GdkpHC6L6/jtH2gFRVns3IC6pf5ihLDIpLloylthaMMR8C3lus7035g==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/grid": "^3.4.2", + "@react-stately/selection": "^3.11.2", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/gridlist": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.1.2.tgz", + "integrity": "sha512-3HI/e8HzyBRWdEbDH+3Hvj9U5fD/1TYaqA0f4XnBdSEDd7LHPOzZyNzbZMdlMmaq2W0Dmm1YRCMELacFVUehUA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/list": "^3.6.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.3.tgz", + "integrity": "sha512-cDWl8FXJIXsw/raWcThywBueCJ5ncoogq81wYVS6hfZVmSyncONIB3bwUL12cojmjX1VEP31sN0ujT/83QP95Q==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@internationalized/message": "^3.0.10", + "@internationalized/number": "^3.1.2", + "@internationalized/string": "^3.0.1", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.13.1.tgz", + "integrity": "sha512-WCvfZOi1hhussVTHxVq76OR48ry13Zvp9U5hmuQufyxIUlf4hOvDk4/cbK4o4JiCs8X7C7SRzcwFM34M4NHzmg==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/label": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.4.tgz", + "integrity": "sha512-1fuYf2UctNhBy31uYN7OhdcrwzlB5GS0+C49gDkwWzccB7yr+CoOJ5UQUoVB7WBmzrc+CuzwWxSDd4OupSYIZQ==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-types/label": "^3.7.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/link": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.6.tgz", + "integrity": "sha512-UjbdBJ8EB+jCC3mPZD6cYykHqZKTy6/VvI5RGJoKtF8cg9639tRy6g102pd4ncFTdD4DfU5PPWtthC24nQRCyQ==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/link": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/listbox": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.2.tgz", + "integrity": "sha512-e3O/u2T3TccinmfS/UvHywxLbASmh28U4020WTpZnIrsaoriVCkGZvG1AYNNPDIESz2WO0oRF6vDrmGunglJ2A==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/listbox": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/live-announcer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.1.2.tgz", + "integrity": "sha512-BqtVLPWU10sZssoOJF1lJiRvZe5zqZ5BM39PsFyO7dWhVkR/9O9bZviqvKXnC1oXCnypfa+85gUshbK9unFcWA==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.7.1.tgz", + "integrity": "sha512-5KIUTs3xYSmERB8qzofFghznMVLcG3RWDnJcQjpRtrrYjm6Oc39TJeodDH874fiEr6o3i5WwMrEYVp7NSxz/TQ==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/tree": "^3.4.1", + "@react-types/button": "^3.7.0", + "@react-types/menu": "^3.7.3", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/meter": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.4.tgz", + "integrity": "sha512-RdVd5vlb6//HI8G1hhH4G+E0Y387GYFKjmewSUKK0Lzp9PFLili26s+xLvgigUX9ald7HiPmfPdAlXzotvo54Q==", + "dependencies": { + "@react-aria/progress": "^3.3.4", + "@react-types/meter": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/numberfield": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.4.tgz", + "integrity": "sha512-yoYeYaEW5v84Ff0x+oSN0h3uzqrSOBEgjtv8ZMaFVsZfm9yMjsVLu+QWGBYCEOPcASMkNZpNR3o91nBPK3XTDw==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/spinbutton": "^3.2.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/numberfield": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.12.1.tgz", + "integrity": "sha512-OSgSopk2uQI5unvC3+fUyngbRFFe4GnF0iopCmrsI7qSQEusJUd4M2SuPVXUBBwWFt5TsiH7TnxmIPWeh5LSoA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/overlays": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/progress": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.4.tgz", + "integrity": "sha512-MVlWdH7L2e0u1SvkVk+C6/onS8opex9rIKUKHM08s++y80Xe3BIAh8jd5tgdlutDtcZ1kKgfb4bet9dvjymo4A==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/radio": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.4.2.tgz", + "integrity": "sha512-PpEsQjwkYOkSfKfnqXpBzf0FM/V2GSC0g/NG2ZAI5atDIACeic+kHCcs8fm2QzXtUDaRltNurvYdDJ+XzZ8g1g==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-stately/radio": "^3.6.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/searchfield": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.4.tgz", + "integrity": "sha512-Z3nZI2FXrWLPNUeJ3QV2ruTKBR9eHhPoHi+Iiuq4n+e02ib5s0Jlbam29FFiOxmf6vUMhScNcEYP9p2BNANmQA==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/searchfield": "^3.3.4", + "@react-types/button": "^3.7.0", + "@react-types/searchfield": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/select": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.4.tgz", + "integrity": "sha512-d2JOe11lUoGLvsE32bZRMq32SzXuyLNczyTOLrWM0e9fsOr49A8p6L6bFm3symU/KpwjjnO+pf5IkvgEq+GoJg==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/listbox": "^3.7.2", + "@react-aria/menu": "^3.7.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/select": "^3.3.4", + "@react-types/button": "^3.7.0", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/selection": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.12.1.tgz", + "integrity": "sha512-UX1vSY+iUdHe0itFZIOizX1BCI8SAeFnEh5VIQ1bYRt93+kAxeC914fsxFPPgrodJyqWRCX1dblPyRUIWAzQiw==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/separator": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.6.tgz", + "integrity": "sha512-QhYqoLfu+4T3ASCs5Q8ZWfBbRKBUmqquVdREWvHyvVyOBk9kRN9nxsoIxlkss1RJlJJx59AYF9T9CwgL80/bvw==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/slider": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.4.tgz", + "integrity": "sha512-+BDPFaCgm0gtGewO33ZDNZz1b3Fc1p5Y/HSuwCcru+jHetODJXy23IIVpWsDri1vG3fHECRnWcDZAjLZgkVnAw==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-stately/radio": "^3.6.2", + "@react-stately/slider": "^3.2.4", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/spinbutton": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.2.1.tgz", + "integrity": "sha512-y9QZ0VzWL7qzbWSPOCsAdvZhVlQrnHLRGc8bkRa2jmWrnCqS0iua/TRuLGgazIf2Rb7GmdbKBJJuPSScytVDUw==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/utils": "^3.14.2", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.4.1.tgz", + "integrity": "sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA==", + "dependencies": { + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/switch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.3.1.tgz", + "integrity": "sha512-o9MvXiSK9c7rUZjA6oQ0PNlVCnHEctue6v6W8Vn4HNbQMfhJiWqiSSff4RFcgRgs8WsPsEqbT+vHi2kXykQzdA==", + "dependencies": { + "@react-aria/toggle": "^3.4.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/switch": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/table": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.7.0.tgz", + "integrity": "sha512-1YqOeb8r8pxIYyfa5qNdCoM3fNQELM4d+9DanoNJhgnehoq9QDI9A1pGC2pvK2PN2y9IuTJM+U/ITjSpPBoGjQ==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/tabs": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.4.tgz", + "integrity": "sha512-SqlgfPvpRHlWelFk/lF9Ziu/8881NVErhKcpyyi+A9jASv5tvILWiwK8na82oI22UXXzyp0Y1EojLB25HnCB+w==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/list": "^3.6.1", + "@react-stately/tabs": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/tabs": "^3.1.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/textfield": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.8.1.tgz", + "integrity": "sha512-jgun/B9ecuRCfBSJLX2xDuNwfuj1lL0oibMWoSv6Y++W+CSS8a7LjR1f9Kll5TDVkQiRRUm9qHwI0og9xTJrNw==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/toggle": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.4.2.tgz", + "integrity": "sha512-xokCGf0fn96mOMqQku5QW672iQoMsN9RMpFbKvvgg2seceh8ifblyAXElWf/6YmluOZSgUSZljDkFrbMMYlzVA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@react-types/switch": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/tooltip": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.4.tgz", + "integrity": "sha512-KPDkDu7fquuUOOnNh9S7KfhPMwB1w9K+yLIFrYaj4iYSOLk/HH5TDkyiUQ7j5+B963D1fWlQjYFEGQ9o2KwO/Q==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/tooltip": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/tooltip": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.2.tgz", + "integrity": "sha512-3nr5gsAf/J/W+6Tu4NF3Q7m+1mXjfpXESh7TPa6UR6v3tVDTsJVMrITg2BkHN1jM8xELcl2ZxyUffOWqOXzWuA==", + "dependencies": { + "@react-aria/ssr": "^3.4.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/virtualizer": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.6.1.tgz", + "integrity": "sha512-cJ35AEUYUtm2E4+lMoFQN9MhcGJBqLPue6VlTLY44Ya+7KoWRkH+bz3/nhqbgprMFgrTwj04sv6FgOmwMmJm/A==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.6.1.tgz", + "integrity": "sha512-7rUbiaIiR1nok9HAHPn/WcyQlvuldUqxnvh81V4dlI3NtXOgMw7/QaNc5Xo5FFWlsSVpbyK3UVJgzIui0Ns0Xg==", + "dependencies": { + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/actiongroup": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.7.3.tgz", + "integrity": "sha512-yqb6Cie99vEyiDY7S9AZuEXMv2SdaLuprF+cj9nBQ+9kvB7eLb8R9WrKVdrCB8Ri5xKv6MYusX0N9GEWEXnVVg==", + "dependencies": { + "@react-aria/actiongroup": "^3.4.4", + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/actiongroup": "^3.3.5", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.2.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/badge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.0.2.tgz", + "integrity": "sha512-g34I2Zo7wKCkqkSqDHNN84lz5HMARCUqNVr56WsKzsbhe3t+8Gk0UzEdiGMg8Ns4bUHGGOMFaWWMQyjVaHe9+Q==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/badge": "^3.0.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/breadcrumbs": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.6.2.tgz", + "integrity": "sha512-rdXOCs3v5n1MYRd8wC0yEThOzC96HUSmOZV9dttzI5xI5YKUch7VfMBjbZ6kOfB7uCjKdmYi03s/vV67HiZ+9A==", + "dependencies": { + "@react-aria/breadcrumbs": "^3.4.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-types/breadcrumbs": "^3.4.6", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/button": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.11.2.tgz", + "integrity": "sha512-qikZLGVui8SHmS/rUH1wakd/UHzKdsyfOSF9tytUei/ExYD73l23j6y3Db951pIKdVrnyg2XXpYmQ4Gn4/37jw==", + "dependencies": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/toggle": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/buttongroup": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.5.2.tgz", + "integrity": "sha512-7mN/JwzXA50cehjBgpkC3gmCqJm8OpTGCXF+fbeMnA8v4E/1QPEdQAXMI9YDkV0hjBpac1Qab8wFy/EDTrtVJQ==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/buttongroup": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/calendar": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.1.5.tgz", + "integrity": "sha512-WayX3Rarb/U+NrhbgGmWZImCSsXKB5vVFHVMUIBKLUnz+0UQyDXLsvE/I74x4toJJnQsEDboP3cgKP5EWBIFQw==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-aria/calendar": "^3.0.5", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/calendar": "^3.0.5", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/checkbox": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.6.3.tgz", + "integrity": "sha512-4xrjFgKfTsoZrdjYTiMsYJBYWpnF0Iua4sRJRSXd3Z/wE0S4FEi/z5aBcylK2zMuAWJNdLQ+JfBk9cTwQixxCg==", + "dependencies": { + "@react-aria/checkbox": "^3.7.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/checkbox": "^3.3.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/combobox": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.7.2.tgz", + "integrity": "sha512-nkomJpwhyRlJjnkQQLvXHiWYNozTGuTBP9XpJn40Y0YViLUN/UOlk2+tnJ9963AnSZh4TDJm6OUcwHVMnjhFuw==", + "dependencies": { + "@react-aria/button": "^3.6.4", + "@react-aria/combobox": "^3.4.4", + "@react-aria/dialog": "^3.4.2", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/combobox": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/combobox": "^3.5.5", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/contextualhelp": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.4.2.tgz", + "integrity": "sha512-rfFjvngKtGlswvylsQ7flAeI4/NqjZWSSKreKKKHdF5q0/II9cHEDQ2U9Rv+ds3gxCAPdXHaPZTk5G0ZmLl/wA==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/contextualhelp": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/datepicker": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.3.2.tgz", + "integrity": "sha512-GrYiyXNezAJIZwDoz6JemTJyJLndCVYLnPDM1gcV5jkTwQzhJ4Q5smpfZxiALV2evVae6C/Xr2RU5ISt7zp9og==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@internationalized/number": "^3.1.2", + "@react-aria/datepicker": "^3.2.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/calendar": "^3.1.5", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-spectrum/view": "^3.4.1", + "@react-stately/datepicker": "^3.2.1", + "@react-stately/utils": "^3.5.2", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/dialog": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.6.2.tgz", + "integrity": "sha512-w2YoDhchibFONuv0F3nyBpZ1ObBrem2pSRki1tPk/FB29HYJLmFR3suACQygfzujL+vbVqDxsSX1qhAjVFisiA==", + "dependencies": { + "@react-aria/dialog": "^3.4.2", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/buttongroup": "^3.5.2", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-spectrum/view": "^3.4.1", + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/button": "^3.7.0", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/divider": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.4.4.tgz", + "integrity": "sha512-BndZ2yQ2xSyi3u5PAe5U13C/JK9vXHEUXYVrigauIlGYXGV2GjcnaqrlPfTQwbgdBYYnihEYttFMI6GFDnL1XA==", + "dependencies": { + "@react-aria/separator": "^3.2.6", + "@react-spectrum/utils": "^3.8.1", + "@react-types/divider": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-ugsm360E8/BRgcztf3j1ANyMHlO/jfSNNRuD0TMJcXhHJD2T6oiWtuI9Y/ARq+h+XclyDdppGXo5WwmwUXPktg==", + "dependencies": { + "@react-aria/dnd": "^3.0.1", + "@react-stately/dnd": "^3.0.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/dnd/node_modules/@react-aria/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-z/T59Jc+6mj3OMcLjfA6MYd0zD6K3DYw+kB2CZ0EPte7BRN8wtU4+q/bx1iX+If97X6bTcHjMGX6nrQJ5vX/fw==", + "dependencies": { + "@internationalized/string": "^3.0.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/dnd": "^3.0.1", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/form": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.5.2.tgz", + "integrity": "sha512-dkNKDf7sUmuFdVofk/hEoIpj5ob/rx1JJIvmdWqRSJ7dz7gaaT8c9DatduPZNaVXuHx8GzBt/j8jf707YuiJDA==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/form": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/icon": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.6.3.tgz", + "integrity": "sha512-UzmRdfPjLqZkIGxjkzeFFAjdNiifSYzI469PpftOEu9jxBuWLjCst0wqHR5eSk+/g3q0l10s4cXJDujzPeLsdg==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/illustratedmessage": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.3.4.tgz", + "integrity": "sha512-l1GqEyoC8iQKxG4XLIkpD6/pzN0qbx0QOSwuFk0qRN8vKUAGx4i+YSjT4M4iFy8hSATDk7Jni9FnB7c8/sEhuQ==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/illustratedmessage": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/image": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.3.4.tgz", + "integrity": "sha512-VjkiOrUl0UUebGuF1luMGSLC1/vT/A7+E3YEgnBzJrwYYNcfY0xernHDRBnUy6/KyRaD4GighN6lsuqf39wU/w==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/image": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/label": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.10.1.tgz", + "integrity": "sha512-3T60VSYj6CLH2VBoTFMafZsoZYv3mfzzqjyhqmyDw+ZBwn4YLFV9rAhxAHMtM5Xj9rgEhQOHJYu9ycbF9eQUWQ==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/label": "^3.7.1", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/labeledvalue": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.0.3.tgz", + "integrity": "sha512-QpnOm7z8RaRBjLMFJR8v4wEy4Z7FJw/5SF4plolY+QhUUv1B2A444+GKG842+ccgH5PzP7T2WVrtmoHy8XXrRQ==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/layout": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.4.4.tgz", + "integrity": "sha512-TNDFTsdhXflQMx6G10whIqeea3BPP5LmoZi4dKKEvcgEpsmedAm5bmsUnAMQitAmVN/kVGVxO0uAhMEwQWnhbw==", + "dependencies": { + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/layout": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/link": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.4.4.tgz", + "integrity": "sha512-+6C1WGtLf/G9qa3sJk3BwDL3w4EXtTv1sqNYmaUzJS3Xl+6mjACXvM2gJR0XYb6QJn2/10eQN2ok5qzDC2VtFw==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/link": "^3.3.6", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/link": "^3.3.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.2.2.tgz", + "integrity": "sha512-WvvKMoWoH34wajRM4NiFJOGHs4kvouofQzKvpC9w0ec0/ABKysNb38WX0X6dOXz2vFZnRRTHpBumDdxhgh6pdA==", + "dependencies": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/gridlist": "^3.1.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/dnd": "^3.0.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/layout": "^3.10.0", + "@react-stately/list": "^3.6.1", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.2.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/listbox": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.8.3.tgz", + "integrity": "sha512-7AAu8DfFcUyb7JdhGrIu5gMni6Vey3cHakKnWPCWN+CgznQEEQxppyIYvVSSGbKr3EApmU3B6GfZV9JCGBaEag==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/listbox": "^3.7.2", + "@react-aria/separator": "^3.2.6", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/layout": "^3.10.0", + "@react-stately/list": "^3.6.1", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/listbox": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.2.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/menu": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.9.2.tgz", + "integrity": "sha512-vNmNfb+fAVDwp6kD9C2z5I6UeZ5snKh02NMavc2e+TbNceUHkGYv0PxTjQSXYY86pmW7E9EKbBKdEcZEMdl0hQ==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/menu": "^3.7.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/separator": "^3.2.6", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/tree": "^3.4.1", + "@react-stately/utils": "^3.5.2", + "@react-types/menu": "^3.7.3", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/meter": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.3.4.tgz", + "integrity": "sha512-RWvtYVIsU05snf5zpQuWg/018ZaLk+nVvYV/bbg01NtX6n6WRperJuwKfhLUt3FSHoZSkF81WiWJP+q6MCRvpw==", + "dependencies": { + "@react-aria/meter": "^3.3.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/meter": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/numberfield": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.5.2.tgz", + "integrity": "sha512-0zwJ6j4mPtb9oL5K99L/KQnNkl6TIXsO8+Fh6zTQ9FOFlfonMI2rVsKjzbl8Qa5B3lTS1aDDLbQL4xzKBlAjdQ==", + "dependencies": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/numberfield": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/numberfield": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/overlays": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-4.1.0.tgz", + "integrity": "sha512-fEseKtFWcmd2NyFL7HLk+WDCbo7cchf43UjVjuGChNen0n4hkhNVFpolbiyQ0tKVn2WPqsxGhZntC0LKMOqfEQ==", + "dependencies": { + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/overlays": "^3.4.4", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/picker": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.9.2.tgz", + "integrity": "sha512-iUlIs9JC2b792gk2AYtWxruGdevSoTMOP4F5DbWd6Y9MxbwJCGZ+qDiUe+dVS1ranvgyBuZGUHI+jg0QU5/piA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/select": "^3.8.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/select": "^3.3.4", + "@react-types/overlays": "^3.6.5", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.1.4", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/progress": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.3.4.tgz", + "integrity": "sha512-R8BBdhliJf7k2z6TAh/mOxW/TB4YbE/A7Il/2/lID515IWIR8tdSHUX9zO0csl2DGIAvWFNhtg68seHXAJpGYA==", + "dependencies": { + "@react-aria/progress": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/provider": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.6.1.tgz", + "integrity": "sha512-lsDoRQ3cwx4MunCJ94m9ssVYaTHO7jyaLaRoBJF9elNXFFOL+KLlc+L8LDyoQt6aSfmkeRqGd+q3b+Ap7XHRtQ==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/provider": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/radio": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.4.3.tgz", + "integrity": "sha512-Si4ileiOorpNhcwF8ruKxksUPwqEcLZXYkiQhN3c5xbDK9Z/PXC8WBdajl3v7TFIdZLl7COq2UagXxwKfsVJUA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/radio": "^3.4.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/radio": "^3.6.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/searchfield": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.6.2.tgz", + "integrity": "sha512-GF9qem0Euf4ABdTRaMYy1tv6y2592jYIy3x3r4W7myON7xkYrDzbvJL7q35+7sFvXQURlMf3bazJ/dnIu5kzvA==", + "dependencies": { + "@react-aria/searchfield": "^3.4.4", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/searchfield": "^3.3.4", + "@react-types/searchfield": "^3.3.6", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/slider": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.4.1.tgz", + "integrity": "sha512-MFip5AtiMLeTcg00OGXFaKRcBaVldnfcrrSv4uhFozCZO9PGSpvqqCFKxLS2vpZDHGbBqI6Lg9FjONZ4w0mfDQ==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/slider": "^3.2.4", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/slider": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/statuslight": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.4.4.tgz", + "integrity": "sha512-32rwKgUxyBmN87A8Qu5rfaOK++TXN0NNjT+0hjvzDvXxKtgUA11XA/sqxKCq1HbCEptsBZcUKBc2L9yF4ULn2w==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/statuslight": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/switch": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.3.5.tgz", + "integrity": "sha512-3YPasqpaFq3YoRVaE71kMPwQVgw1iQKpLjX1M9E3gvUGFAbOYJul04DJKpjNGL3xs4/t2gLkeIc03Qnmhadg7A==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/switch": "^3.3.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/toggle": "^3.4.4", + "@react-types/shared": "^3.16.0", + "@react-types/switch": "^3.2.5", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/table": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.6.1.tgz", + "integrity": "sha512-yzTj5vV7ZMlwWCmT1dwZxm0b1MgKHzeJuI/htEgi8oS5MGYsNEPlaDGEmLZhdPZvX0C3sCcB04cBhMc8ZC4BTQ==", + "dependencies": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/table": "^3.7.0", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/grid": "^3.4.2", + "@react-stately/layout": "^3.10.0", + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/tabs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.4.1.tgz", + "integrity": "sha512-1L1fzONoXURKuKaG5mCxddj+OOWYtggfE5JghXzH0bUpdHJU2ReHkaI2mXnJ4/xc72g+BGfezLuMHcqzaEQIJA==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/tabs": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/picker": "^3.9.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-stately/tabs": "^3.2.4", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/tabs": "^3.1.5", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/text": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.3.4.tgz", + "integrity": "sha512-k+8YEYEvVRhig+zkTOyguN95JXDsR4jwKqX+FwIo2Zae960xtK0am22UGpNiXXF9oUpI9bCuxYmQeI6a418MaA==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/text": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/textfield": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.9.2.tgz", + "integrity": "sha512-ibhG7ve2cHPTRm3nXe8XiZ/5o6x4IfJnfl0aQlxpvo3k/4Va74RgyvHVELpqvd8iOEC9GXu/ERD58cJiR9qNJg==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/theme-dark": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.4.1.tgz", + "integrity": "sha512-yu6pJa26L+2VOg9+IRz7BwWXhgEEA93aX4tfOcnZFu9NZ3D63Wl2dD+Lt+1bngIOzfATRbDzYg7EdNFbbqQjaQ==", + "dependencies": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/theme-default": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.4.1.tgz", + "integrity": "sha512-Aq5IQmsBO/lE2EUu+5mmnhbMgVBrohx4vomQ6vTwDcnBFD+Gzc6FJ/56jbOkm9gdhrFIebR8PeGeogIu3/0u6w==", + "dependencies": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/theme-light": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.3.1.tgz", + "integrity": "sha512-YKQZ3z74+hRmeyfCaoPhy1eotHb6Pbje42VqYx/OQ6xgfkn8ZUBi1abLM348XwQnTjVSIgUEYqbLStxRDQOKBg==", + "dependencies": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/tooltip": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.3.5.tgz", + "integrity": "sha512-m9HQRYx0fu6ifR9aST4uT9pgrTy2QbL+cjd06NbaGWIsCZU4vN0g7+8GCiYI3xMMnlG8NExggEPACX/RU1hbFw==", + "dependencies": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/tooltip": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/tooltip": "^3.2.4", + "@react-stately/utils": "^3.5.2", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/tooltip": "^3.2.5", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/utils": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.8.1.tgz", + "integrity": "sha512-cqXxJUNgoixCjOa9N6C+079goQz+66i9wBceMqlzMDXMVpSKWxmn2gGXOyWratayfZvDVINpn7FtX2dN/eEp+w==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/view": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.4.1.tgz", + "integrity": "sha512-HDFaH49xW9bi3FRaJ0D5E/tS2tAyX5K+nYoGJPpUPg6WSW6AnzILg8v7XUzBAau/hGzPUsNvuVUH2R6Rpx8PjA==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/view": "^3.3.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-spectrum/well": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.3.4.tgz", + "integrity": "sha512-5WPbTIFk41BBT/xQbYz1ebHSuRCxFHCYSig1zjiKPrhs/dPymQBmAENtxd+muyMF61XTQndYVdeX5aW7hd1Yog==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/well": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-vu5hKsiA8edqNtsqBTGi8QR38qZ+uHDjuq3vp2m0f6TZSnp0kg8fkPNHEOuBTQ8ZXFFbGUZKhL/1B+ZWwLHwMQ==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-stately/utils": "^3.5.2", + "@react-types/calendar": "^3.0.5", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/checkbox": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.3.2.tgz", + "integrity": "sha512-eU3zvWgQrcqS8UK8ZVkb3fMP816PeuN9N0/dOJKuOXXhkoLPuxtuja1oEqKU3sFMa5+bx3czZhhNIRpr60NAdw==", + "dependencies": { + "@react-stately/toggle": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/collections": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.5.1.tgz", + "integrity": "sha512-egzVrZC5eFc5RJBpqUkzxd2aJOHZ2T1o7horEi8tAWZkg4YI+AmKrqela4ijVrrB9l1GO9z06qPT1UoPkFrC1w==", + "dependencies": { + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/combobox": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.3.1.tgz", + "integrity": "sha512-DgYn0MyfbDySf54o7ofXRd29TWznqtRRRbMG8TWgi/RaB0piDckT/TYWWSYOH3iMgnOEhReJhUUdMiQG4QLpIg==", + "dependencies": { + "@react-stately/list": "^3.6.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/select": "^3.3.4", + "@react-stately/utils": "^3.5.2", + "@react-types/combobox": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/data": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.8.1.tgz", + "integrity": "sha512-YSc45qfmt8uhg9KTGGDQ/xbAPPP6ty5itzWoWORYLEsorBNUj7mLF+q126nYcYX4B5Xf84w8EexqP8Y8nh2Gdg==", + "dependencies": { + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/datepicker": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.2.1.tgz", + "integrity": "sha512-nd6thX2Z+rOLDHduB3EgMKA0n5U83lrwn3IUfjRGrcE21zFaFmhTPsHyvol5jHy3eSyjWSN9kGpKFzOxES+uoA==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@internationalized/string": "^3.0.1", + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-pwtyY/TR6Rdk33lFdF6dztQTV9gPujFmTqJG31NSSs6ei1FfUW9ZMq+311Zb8OhZ0TFiwZqAutVmmaaUrtl5+A==", + "dependencies": { + "@react-stately/selection": "^3.11.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/grid": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.2.tgz", + "integrity": "sha512-NeIUykQeA7Hen+dV4771ARW5SRrHYNn5VTOsQwn3KBUd2Z2gZ01OwUl3gETl5u0e3/tzMUdJ1LUoSPhDMwcmKw==", + "dependencies": { + "@react-stately/selection": "^3.11.2", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/layout": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.10.0.tgz", + "integrity": "sha512-ThFgivQSD5ksLMX7tbu0HqIxbxac/E8a/0vA21wB9QF9IQnUKO796QAQqwfA5rwPvTT41LL2Xn00GkrwQ9g/zg==", + "dependencies": { + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/list": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.6.1.tgz", + "integrity": "sha512-+/fVkK3UO+N2NoUGpe57k9gcnfIsyEgWP8SD6CXZUkJho7BTp6mwrH0Wm8tcOclT3uBk+fZaQrk8mR3uWsPZGw==", + "dependencies": { + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/menu": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.4.tgz", + "integrity": "sha512-WKak1NSV9yDY0tDB4mzsbj0FboTtR06gekio0VmKb1+FmnrC07mef8eGKUn974F0WhTNUy5A1iI5eM0W2YNynA==", + "dependencies": { + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/menu": "^3.7.3", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/numberfield": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.3.1.tgz", + "integrity": "sha512-GOu6wE2L2eal4AOL+rJQ4wQnFRgRkwiS9xdAFPu9B4qfP0DVfEIUC3XV4jws9nBhANxEf5LyilUv400nG881wg==", + "dependencies": { + "@internationalized/number": "^3.1.2", + "@react-stately/utils": "^3.5.2", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.4.tgz", + "integrity": "sha512-IIlx+VXtXS4snDXrocUOls8QZ5XBQ4SNonaz1ox8/5W7Nsvq4VtdKsIaXsUP4agOudswaimlpj3pTDO/KuF5tQ==", + "dependencies": { + "@react-stately/utils": "^3.5.2", + "@react-types/overlays": "^3.6.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/radio": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.6.2.tgz", + "integrity": "sha512-qjbebR0YSkdEocLsPSzNnCsUYllWY938/5Z8mETxk4+74PJLxC3z0qjqVRq+aDO8hOgIfqSgrRRp3cJz9vIsBg==", + "dependencies": { + "@react-stately/utils": "^3.5.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/searchfield": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.4.tgz", + "integrity": "sha512-H/1evv7lsJl6PlD7/Sv7VgbCe0Yd2E2eKFihD6/tXPWO6L/ngYp5siqqhdwazjWTK2Hgw4TL0eviHGOGXKItzQ==", + "dependencies": { + "@react-stately/utils": "^3.5.2", + "@react-types/searchfield": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/select": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.4.tgz", + "integrity": "sha512-gD4JnF9/OIrQNdA4VqPIbifqpBC84BXHR5N7KmG7Ef06K9WGGVNB4FS538wno/znKg7lR6A45CPlaV53qfvWHg==", + "dependencies": { + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/selection": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.2.tgz", + "integrity": "sha512-g21Y36xhYkXO3yzz0BYSBqnD38olvEwsJUqBXGZfx//bshMC2FNmI5sRYMAi36stxWbwzBvB01OytxfLLxCXCA==", + "dependencies": { + "@react-stately/collections": "^3.5.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/slider": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.4.tgz", + "integrity": "sha512-J97lTLqQKsrVSovYr4dTz7IJO/+j9OStT78N6bumDklnIKT7bsH3g857zITUFjs8yCcq0Jt3sfOvEU0ts6vyww==", + "dependencies": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/table": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.7.0.tgz", + "integrity": "sha512-oPvMEabRUD4LSJ/NZsal3TT2YjoRmpEK8t2pqG20+Vapxy5tC6QKEZQvrDxJwF4Z8fqQnX/GvnqmfypvqWDUSA==", + "dependencies": { + "@react-stately/collections": "^3.5.1", + "@react-stately/grid": "^3.4.2", + "@react-stately/selection": "^3.11.2", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tabs": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.4.tgz", + "integrity": "sha512-qSnkoxzbC21KXZYGtg6TEDaex34WSNmPN4sJzXc9Xe39L6+wXNCA2tqZxWCfpIcWQklFm+BmnnNNCO8/PDDrMA==", + "dependencies": { + "@react-stately/list": "^3.6.1", + "@react-stately/utils": "^3.5.2", + "@react-types/tabs": "^3.1.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/toggle": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.4.tgz", + "integrity": "sha512-OwVJpd2M7P7fekTWpl3TUdD3Brq+Z/xElOCJYP5QuVytXCa5seKsk40YPld8JQnA5dRKojpbUxMDOJpb6hOOfw==", + "dependencies": { + "@react-stately/utils": "^3.5.2", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tooltip": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.4.tgz", + "integrity": "sha512-t7ksDRs9jKcOS25BVLM5cNCyzSCnzrin8OZ3AEmgeNxfiS58HhHbNxYk725hyGrbdpugQ03cRcJG70EZ6VgwDQ==", + "dependencies": { + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/tooltip": "^3.2.5", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tree": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.4.1.tgz", + "integrity": "sha512-kIXeJOHgGGaUFnAD2wyRIiOwOw/+PN1OXo46n8+dPTFIYwR4+IWFNG8OMjVlIiSLPYWMCzzxZBE9a5grmbmNWQ==", + "dependencies": { + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.5.2.tgz", + "integrity": "sha512-639gSKqamPHIEPaApb9ahVJS0HgAqNdVF3tQRoh+Ky6759Mbk6i3HqG4zk4IGQ1tVlYSYZvCckwehF7b2zndMg==", + "dependencies": { + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/virtualizer": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.4.1.tgz", + "integrity": "sha512-2S7GARkZl41X7fN0Xa94TkN8ELAUbA89zn1xH59d02NOvAKLAFXHkCe69AivvVvbhXo8/nONzO8NXqqgBS/XQw==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/actiongroup": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.3.5.tgz", + "integrity": "sha512-2lJGTcSdxeiuJwVwX9cHOCjwk9z3ZGADDHBR6Kk1JReceay2ubvGuV7IE8+DXXijOgitT4DQlRmzCbN6HPh1ng==", + "dependencies": { + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/badge": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.0.1.tgz", + "integrity": "sha512-uhchKxsFNRaju6sFme9DBymA6mNHKoBuhXIowzAxf5nnRNxppL5mvsNVNyWVcMlnjSAK7DmVTgJFcQmZkE0SUw==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/breadcrumbs": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.6.tgz", + "integrity": "sha512-hvGUI4mKHvOl3QyKFHk1qT/UkG+C4iJsRTlk6pbQgwk4lb7rplEm1CEa7fxzRdI8Gh4Id+C9+WyKCxZf9GNWUw==", + "dependencies": { + "@react-types/link": "^3.3.6", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/button": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.7.0.tgz", + "integrity": "sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/buttongroup": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.2.5.tgz", + "integrity": "sha512-iPiEEG2upe0ye9HdPuLNR6b3lXnvzv1vNToMHDT0bhU0+Zqnxvjnc5r02VVpnHB4Vq3wGzhJFgtpn3SOw43CqQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-Kx00132hFEVvqay/Ub7q2oZEA1AzksirAuCsjakamn4LAXvitlo3PZxqBdEsyRc3nP5NR48KJj8yo276mXY8kQ==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.1.tgz", + "integrity": "sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/combobox": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.5.tgz", + "integrity": "sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/contextualhelp": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.1.5.tgz", + "integrity": "sha512-8sVxgKOt00M7vJvVrQ1c0/1pzsZfg2KhQl9IJZB/vAnxuXr0+ZaV2WCffJ8/DNDLJ7gPl1sLowxJNt645M6ghA==", + "dependencies": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.4.tgz", + "integrity": "sha512-NBCXBCe3YZqeA/JrVKy0IAvJ2XSnXaVpR9iAlUwKu7V8P81CtnXHsVCrd/0HSH8QZWsGdIV5E23z0TctvW8trA==", + "dependencies": { + "@internationalized/date": "^3.0.2", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.5.tgz", + "integrity": "sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A==", + "dependencies": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/divider": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.2.5.tgz", + "integrity": "sha512-bkeW4cyp6LfBAmDmX0C79TnRNWYWPIkoLqCN447RWbWMPisvXvn9wnZMpT5/JUhnw3wDpKjhcpoTb5jF+qbknw==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/form": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.4.1.tgz", + "integrity": "sha512-9aIVUqElJ31XO3o0GrAcKagF66KfXyWZe44CqYijt+EukcdjI2zxfxfJwICfKSxxOF2tJ2vYX4m5D+ecfIS41g==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/grid": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.5.tgz", + "integrity": "sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/illustratedmessage": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.2.5.tgz", + "integrity": "sha512-D8HQx4/GHB3pqvgMYkOsZiD9/96ktuqvxRTZjwHSPzV+ByuPafIQSzcpYUHYjFtiNiRhYOIA/gO6JIWYy2dt/Q==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/image": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.2.5.tgz", + "integrity": "sha512-teBz5Apkgd9MjTeJzMxdZx9Tn68hzvLzX/5/omOeubTt772gepNcaALdtkWy931M6FP+cLpbmdfdVI88uLa6RA==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/label": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.1.tgz", + "integrity": "sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/layout": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.5.tgz", + "integrity": "sha512-DiZgmaezqBmLb+ai1Fu0PvIqSMy4yO6cwVuxj6FAIy0oyUjQw+b+V3TCXFoFbtyDN0+PO5oaixWrzELh6x+jWg==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/link": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.6.tgz", + "integrity": "sha512-HMFd94CW8WrHbwXeTtCP/WOZmGugrEkN8f16R0i7T9xlTumk5GxubDMjA41ND/ehH72Xq7lP9VX8qezHWCGSoQ==", + "dependencies": { + "@react-aria/interactions": "^3.13.1", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/listbox": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.5.tgz", + "integrity": "sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/menu": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.3.tgz", + "integrity": "sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg==", + "dependencies": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/meter": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.5.tgz", + "integrity": "sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw==", + "dependencies": { + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/numberfield": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.5.tgz", + "integrity": "sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.5.tgz", + "integrity": "sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/progress": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.5.tgz", + "integrity": "sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/provider": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.5.5.tgz", + "integrity": "sha512-JhaRBhnvz6yYkKQz3Abr2Pwf4CIxKROduvitB00DeP493ZMGVcAkhZpk1t9A30SPKB7B0H3QuDgRuaj3H3aMJQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/radio": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.3.1.tgz", + "integrity": "sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/searchfield": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.6.tgz", + "integrity": "sha512-DIv5eznnJVv0CM4f8SEEiptEZSzXUJWUyxRPkTzYNWt91pPPaCNbCQbmzZtyR9/R9KRJ9hlZN2bMkrtfVLvl1g==", + "dependencies": { + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/select": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.5.tgz", + "integrity": "sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.16.0.tgz", + "integrity": "sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/slider": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.3.1.tgz", + "integrity": "sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/statuslight": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.2.5.tgz", + "integrity": "sha512-9zFaFdJkYIt6+bD4Ja8rrM0HO2R96zdgYXO+5JH1gpBzT9N2J1dOI6W8x6/MlFjdPkzbBXQkhzDKS0Ngzg8y5Q==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.5.tgz", + "integrity": "sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ==", + "dependencies": { + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/table": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.4.0.tgz", + "integrity": "sha512-G2L5WtaBMeG3v/5Kj/ZXH4ywz95vyPUBj7qy9UZJOYNaAR7uJWZkbe+Ka4xD4H/AaOk4mqW8dSo8cj7gtD66GQ==", + "dependencies": { + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tabs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.5.tgz", + "integrity": "sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/text": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.2.5.tgz", + "integrity": "sha512-ggQwiv6h0A+T386CnPAItyQ49PahK8SSz9Sm/GDOcnBkqfdG9deoTyPUreG1gikcZae4+RdTpGA3M9gaNGwTNQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.2.tgz", + "integrity": "sha512-QhFcpXvmSEW1/PwkWkvHJkcjsVezLW0OAvA0kMt/FMOChQNxnO36Pha+WjfcVbiFHXMhCBl6akbY2xG9NsHJrQ==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.5.tgz", + "integrity": "sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw==", + "dependencies": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/view": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.3.0.tgz", + "integrity": "sha512-5z8uOlRLoiEwu1sE0IaogVJPI96s8HZhf7ey7VLQ6fNqjWySVrW9ZZlHIA8bELNZhNMZK24EFUjhkN0uuFJxxA==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/well": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.2.5.tgz", + "integrity": "sha512-jyHfjXpfgpDs6bv8Wn3osIImfvGIETHaHhcOGu9HKh6h9qbdbDaDlQa7r5QW42ATaaIVZcj6k3rC/wVGbq70Ug==", + "dependencies": { + "@react-types/shared": "^3.16.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@spectrum-icons/illustrations": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@spectrum-icons/illustrations/-/illustrations-3.5.3.tgz", + "integrity": "sha512-HpV918RQsUBPXI4WksP4p1HTrhEmIzO36fnqcvTMgA28d7Oj1EfTgAYP45oaT3OQ5oBzqQhwQeymR/SJ3mvAkg==", + "dependencies": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@spectrum-icons/ui": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.4.2.tgz", + "integrity": "sha512-osQ9JQCNNimt2yi+QCGYUj10BbyxdYIhB3XGkzaprHtjrVhmwm0JAXv9BcwhRu4rrHDgzh4ElSRqVPV9IVOH1A==", + "dependencies": { + "@adobe/react-spectrum-ui": "1.2.0", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui": { + "version": "1.2.0", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", + "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", + "license": "CC-BY-ND-4.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@spectrum-icons/workflow": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.0.6.tgz", + "integrity": "sha512-m2FdEkKIlqOOYqT9gNlE0/qKAPr04+EMssi8ohzRpZnV/aBr2QuCEXC9Ytf0XfS+yY/u3GiilrCJ355Op4jl4w==", + "dependencies": { + "@adobe/react-spectrum-workflow": "2.3.3", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@spectrum-icons/workflow/node_modules/@adobe/react-spectrum-workflow": { + "version": "2.3.3", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.3.tgz", + "integrity": "sha512-idHEptv5d+puofqO3tiv+cbYR/QV7gUWKHMrHFuJS6zDwRyi3u8GR9BInRbEYp7ZvrLMW8XnNl6lXFSf8ubDQA==", + "license": "CC-BY-ND-4.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlnano": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.3.tgz", + "integrity": "sha512-S4PGGj9RbdgW8LhbILNK7W9JhmYP8zmDY7KDV/8eCiJBQJlbmltp5I0gv8c5ntLljfdxxfmJ+UJVSqyH4mb41A==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.1", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^5.0.11", + "postcss": "^8.3.11", + "purgecss": "^5.0.0", + "relateurl": "^0.2.7", + "srcset": "4.0.0", + "svgo": "^2.8.0", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/intl-messageformat": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.2.5.tgz", + "integrity": "sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/fast-memoize": "1.2.7", + "@formatjs/icu-messageformat-parser": "2.1.14", + "tslib": "^2.4.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.18.0.tgz", + "integrity": "sha512-uk10tNxi5fhZqU93vtYiQgx/8a9f0Kvtj5AXIm+VlOXY+t/DWDmCZWJEkZJmmALgvbS6aAW8or+Kq85eJ6TDTw==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.18.0", + "lightningcss-darwin-x64": "1.18.0", + "lightningcss-linux-arm-gnueabihf": "1.18.0", + "lightningcss-linux-arm64-gnu": "1.18.0", + "lightningcss-linux-arm64-musl": "1.18.0", + "lightningcss-linux-x64-gnu": "1.18.0", + "lightningcss-linux-x64-musl": "1.18.0", + "lightningcss-win32-x64-msvc": "1.18.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.18.0.tgz", + "integrity": "sha512-OqjydwtiNPgdH1ByIjA1YzqvDG/OMR6L3LPN6wRl1729LB0y4Mik7L06kmZaTb+pvUHr+NmDd2KCwnlrQ4zO3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.18.0.tgz", + "integrity": "sha512-mNiuPHj89/JHZmJMp+5H8EZSt6EL5DZRWJ31O6k3DrLLnRIQjXuXdDdN8kP7LoIkeWI5xvyD60CsReJm+YWYAw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.18.0.tgz", + "integrity": "sha512-S+25JjI6601HiAVoTDXW6SqH+E94a+FHA7WQqseyNHunOgVWKcAkNEc2LJvVxgwTq6z41sDIb9/M3Z9wa9lk4A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.18.0.tgz", + "integrity": "sha512-JSqh4+21dCgBecIQUet35dtE4PhhSEMyqe3y0ZNQrAJQ5kyUPSQHiw81WXnPJcOSTTpG0TyMLiC8K//+BsFGQA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.18.0.tgz", + "integrity": "sha512-2FWHa8iUhShnZnqhn2wfIcK5adJat9hAAaX7etNsoXJymlliDIOFuBQEsba2KBAZSM4QqfQtvRdR7m8i0I7ybQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.18.0.tgz", + "integrity": "sha512-plCPGQJtDZHcLVKVRLnQVF2XRsIC32WvuJhQ7fJ7F6BV98b/VZX0OlX05qUaOESD9dCDHjYSfxsgcvOKgCWh7A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.18.0.tgz", + "integrity": "sha512-na+BGtVU6fpZvOHKhnlA0XHeibkT3/46nj6vLluG3kzdJYoBKU6dIl7DSOk++8jv4ybZyFJ0aOFMMSc8g2h58A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.18.0.tgz", + "integrity": "sha512-5qeAH4RMNy2yMNEl7e5TI6upt/7xD2ZpHWH4RkT8iJ7/6POS5mjHbXWUO9Q1hhDhqkdzGa76uAdMzEouIeCyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lmdb": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.5.4", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", + "ordered-binary": "^1.2.4", + "weak-lru-cache": "^1.2.2" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/msgpackr": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.8.1.tgz", + "integrity": "sha512-05fT4J8ZqjYlR4QcRDIhLCYKUOHXk7C/xa62GzMKj74l3up9k2QZ3LgFc6qWdsPHl91QA2WLWqWc8b8t7GLNNw==", + "dev": true, + "optionalDependencies": { + "msgpackr-extract": "^2.2.0" + } + }, + "node_modules/msgpackr-extract": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.2.0.tgz", + "integrity": "sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.3" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-arm": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-x64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-win32-x64": "2.2.0" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", + "dev": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ordered-binary": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", + "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==", + "dev": true + }, + "node_modules/parcel": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.8.2.tgz", + "integrity": "sha512-XMVf3Ip9Iokv0FC3ulN/B0cb5O21qaw0RhUPz7zULQlY794ZpFP9mNtN7HvCVEgjl5/q2sYMcTA8l+5QJ2zZ/Q==", + "dev": true, + "dependencies": { + "@parcel/config-default": "2.8.2", + "@parcel/core": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/reporter-cli": "2.8.2", + "@parcel/reporter-dev-server": "2.8.2", + "@parcel/utils": "2.8.2", + "chalk": "^4.1.0", + "commander": "^7.0.0", + "get-port": "^4.2.0", + "v8-compile-cache": "^2.0.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-refresh": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", + "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, + "node_modules/xxhash-wasm": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz", + "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + } + }, + "dependencies": { + "@adobe/react-spectrum": { + "version": "3.24.1", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum/-/react-spectrum-3.24.1.tgz", + "integrity": "sha512-Pa0NbQ6I45NIWu+6Vw5/070n7/QwFt51PbPEKACJhjZVJR8bqiBWozpdPxZP97hSfAe74HZ2TYwwKaxjDEtVuA==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/ssr": "^3.4.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/actiongroup": "^3.7.3", + "@react-spectrum/badge": "^3.0.2", + "@react-spectrum/breadcrumbs": "^3.6.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/buttongroup": "^3.5.2", + "@react-spectrum/calendar": "^3.1.5", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/combobox": "^3.7.2", + "@react-spectrum/contextualhelp": "^3.4.2", + "@react-spectrum/datepicker": "^3.3.2", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/dnd": "^3.0.1", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/icon": "^3.6.3", + "@react-spectrum/illustratedmessage": "^3.3.4", + "@react-spectrum/image": "^3.3.4", + "@react-spectrum/labeledvalue": "^3.0.3", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/link": "^3.4.4", + "@react-spectrum/list": "^3.2.2", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/meter": "^3.3.4", + "@react-spectrum/numberfield": "^3.5.2", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/picker": "^3.9.2", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/provider": "^3.6.1", + "@react-spectrum/radio": "^3.4.3", + "@react-spectrum/searchfield": "^3.6.2", + "@react-spectrum/slider": "^3.4.1", + "@react-spectrum/statuslight": "^3.4.4", + "@react-spectrum/switch": "^3.3.5", + "@react-spectrum/table": "^3.6.1", + "@react-spectrum/tabs": "^3.4.1", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/theme-dark": "^3.4.1", + "@react-spectrum/theme-default": "^3.4.1", + "@react-spectrum/theme-light": "^3.3.1", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/view": "^3.4.1", + "@react-spectrum/well": "^3.3.4", + "@react-stately/collections": "^3.5.1", + "@react-stately/data": "^3.8.1" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/runtime": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@formatjs/ecma402-abstract": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz", + "integrity": "sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg==", + "requires": { + "@formatjs/intl-localematcher": "0.2.32", + "tslib": "^2.4.0" + } + }, + "@formatjs/fast-memoize": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz", + "integrity": "sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz", + "integrity": "sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q==", + "requires": { + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/icu-skeleton-parser": "1.3.18", + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.3.18", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz", + "integrity": "sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg==", + "requires": { + "@formatjs/ecma402-abstract": "1.14.3", + "tslib": "^2.4.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz", + "integrity": "sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@internationalized/date": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.0.2.tgz", + "integrity": "sha512-9V1IxesP6ASZj/hYyOXOC4yPJvidbbStyWQKLCQSqhhKACMOXoo+BddXZJy47ju9mqOMpWdrJ2rTx4yTxK9oag==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@internationalized/message": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.0.10.tgz", + "integrity": "sha512-vfLqEop/NH68IgqMcXJNSDqZ5Leg3EEgCxhuuSefU7vvdbptD3pwpUWXaK9igYPa+aZfUU0eqv86yqm76obtsw==", + "requires": { + "@swc/helpers": "^0.4.14", + "intl-messageformat": "^10.1.0" + } + }, + "@internationalized/number": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.1.2.tgz", + "integrity": "sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@internationalized/string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.0.1.tgz", + "integrity": "sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@lezer/common": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", + "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==", + "dev": true + }, + "@lezer/lr": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz", + "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==", + "dev": true, + "requires": { + "@lezer/common": "^0.15.0" + } + }, + "@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "dev": true, + "optional": true + }, + "@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "dev": true, + "optional": true + }, + "@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "dev": true, + "optional": true + }, + "@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "dev": true, + "optional": true + }, + "@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "dev": true, + "optional": true + }, + "@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "dev": true, + "optional": true + }, + "@mischnic/json-sourcemap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz", + "integrity": "sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA==", + "dev": true, + "requires": { + "@lezer/common": "^0.15.7", + "@lezer/lr": "^0.15.4", + "json5": "^2.2.1" + } + }, + "@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.2.0.tgz", + "integrity": "sha512-Z9LFPzfoJi4mflGWV+rv7o7ZbMU5oAU9VmzCgL240KnqDW65Y2HFCT3MW06/ITJSnbVLacmcEJA8phywK7JinQ==", + "dev": true, + "optional": true + }, + "@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.2.0.tgz", + "integrity": "sha512-vq0tT8sjZsy4JdSqmadWVw6f66UXqUCabLmUVHZwUFzMgtgoIIQjT4VVRHKvlof3P/dMCkbMJ5hB1oJ9OWHaaw==", + "dev": true, + "optional": true + }, + "@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.2.0.tgz", + "integrity": "sha512-SaJ3Qq4lX9Syd2xEo9u3qPxi/OB+5JO/ngJKK97XDpa1C587H9EWYO6KD8995DAjSinWvdHKRrCOXVUC5fvGOg==", + "dev": true, + "optional": true + }, + "@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.2.0.tgz", + "integrity": "sha512-hlxxLdRmPyq16QCutUtP8Tm6RDWcyaLsRssaHROatgnkOxdleMTgetf9JsdncL8vLh7FVy/RN9i3XR5dnb9cRA==", + "dev": true, + "optional": true + }, + "@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.2.0.tgz", + "integrity": "sha512-94y5PJrSOqUNcFKmOl7z319FelCLAE0rz/jPCWS+UtdMZvpa4jrQd+cJPQCLp2Fes1yAW/YUQj/Di6YVT3c3Iw==", + "dev": true, + "optional": true + }, + "@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.2.0.tgz", + "integrity": "sha512-XrC0JzsqQSvOyM3t04FMLO6z5gCuhPE6k4FXuLK5xf52ZbdvcFe1yBmo7meCew9B8G2f0T9iu9t3kfTYRYROgA==", + "dev": true, + "optional": true + }, + "@parcel/bundler-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.2.tgz", + "integrity": "sha512-/7ao0vc/v8WGHZaS1SyS5R8wzqmmXEr9mhIIB2cbLQ4LA2WUtKsYcvZ2gjJuiAAN1CHC6GxqwYjIJScQCk/QXg==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/graph": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/cache": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.2.tgz", + "integrity": "sha512-kiyoOgh1RXp5qp+wlb8Pi/Z7o9D82Oj5RlHnKSAauyR7jgnI8Vq8JTeBmlLqrf+kHxcDcp2p86hidSeANhlQNg==", + "dev": true, + "requires": { + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/utils": "2.8.2", + "lmdb": "2.5.2" + } + }, + "@parcel/codeframe": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.2.tgz", + "integrity": "sha512-U2GT9gq1Zs3Gr83j8JIs10bLbGOHFl57Y8D57nrdR05F4iilV/UR6K7jkhdoiFc9WiHh3ewvrko5+pSdAVFPgQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@parcel/compressor-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.2.tgz", + "integrity": "sha512-EFPTer/P+3axifH6LtYHS3E6ABgdZnjZomJZ/Nl19lypZh/NgZzmMZlINlEVqyYhCggoKfXzgeTgkIHPN2d5Vw==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2" + } + }, + "@parcel/config-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.8.2.tgz", + "integrity": "sha512-1ELJAHx37fKSZZkYKWy6UdcuLRv5vrZJc89tVS6eRvvMt+udbIoSgIUzPXu7XemkcchF7Tryw3u2pRyxyLyL3w==", + "dev": true, + "requires": { + "@parcel/bundler-default": "2.8.2", + "@parcel/compressor-raw": "2.8.2", + "@parcel/namer-default": "2.8.2", + "@parcel/optimizer-css": "2.8.2", + "@parcel/optimizer-htmlnano": "2.8.2", + "@parcel/optimizer-image": "2.8.2", + "@parcel/optimizer-svgo": "2.8.2", + "@parcel/optimizer-terser": "2.8.2", + "@parcel/packager-css": "2.8.2", + "@parcel/packager-html": "2.8.2", + "@parcel/packager-js": "2.8.2", + "@parcel/packager-raw": "2.8.2", + "@parcel/packager-svg": "2.8.2", + "@parcel/reporter-dev-server": "2.8.2", + "@parcel/resolver-default": "2.8.2", + "@parcel/runtime-browser-hmr": "2.8.2", + "@parcel/runtime-js": "2.8.2", + "@parcel/runtime-react-refresh": "2.8.2", + "@parcel/runtime-service-worker": "2.8.2", + "@parcel/transformer-babel": "2.8.2", + "@parcel/transformer-css": "2.8.2", + "@parcel/transformer-html": "2.8.2", + "@parcel/transformer-image": "2.8.2", + "@parcel/transformer-js": "2.8.2", + "@parcel/transformer-json": "2.8.2", + "@parcel/transformer-postcss": "2.8.2", + "@parcel/transformer-posthtml": "2.8.2", + "@parcel/transformer-raw": "2.8.2", + "@parcel/transformer-react-refresh-wrap": "2.8.2", + "@parcel/transformer-svg": "2.8.2" + } + }, + "@parcel/core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.2.tgz", + "integrity": "sha512-ZGuq6p+Lzx6fgufaVsuOBwgpU3hgskTvIDIMdIDi9gOZyhGPK7U2srXdX+VYUL5ZSGbX04/P6QlB9FMAXK+nEg==", + "dev": true, + "requires": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/graph": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "abortcontroller-polyfill": "^1.1.9", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "json5": "^2.2.0", + "msgpackr": "^1.5.4", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" + } + }, + "@parcel/diagnostic": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.2.tgz", + "integrity": "sha512-tGSMwM2rSYLjJW0fCd9gb3tNjfCX/83PZ10/5u2E33UZVkk8OIHsQmsrtq2H2g4oQL3rFxkfEx6nGPDGHwlx7A==", + "dev": true, + "requires": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + } + }, + "@parcel/events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.2.tgz", + "integrity": "sha512-o5etrsKm16y8iRPnjtEBNy4lD0WAigD66yt/RZl9Rx0vPVDly/63Rr9+BrXWVW7bJ7x0S0VVpWW4j3f/qZOsXg==", + "dev": true + }, + "@parcel/fs": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.2.tgz", + "integrity": "sha512-aN8znbMndSqn1xwZEmMblzqmJsxcExv2jKLl/a9RUHAP7LaPYcPZIykDL3YwGCiKTCzjmRpXnNoyosjFFeBaHA==", + "dev": true, + "requires": { + "@parcel/fs-search": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.8.2" + } + }, + "@parcel/fs-search": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.2.tgz", + "integrity": "sha512-ovQnupRm/MoE/tbgH0Ivknk0QYenXAewjcog+T5umDmUlTmnIRZjURrgDf5Xtw8T/CD5Xv+HmIXpJ9Ez/LzJpw==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3" + } + }, + "@parcel/graph": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.2.tgz", + "integrity": "sha512-SLEvBQBgfkXgU4EBu30+CNanpuKjcNuEv/x8SwobCF0i3Rk+QKbe7T36bNR7727mao++2Ha69q93Dd9dTPw0kQ==", + "dev": true, + "requires": { + "nullthrows": "^1.1.1" + } + }, + "@parcel/hash": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.2.tgz", + "integrity": "sha512-NBnP8Hu0xvAqAfZXRaMM66i8nJyxpKS86BbhwkbgTGbwO1OY87GERliHeREJfcER0E0ZzwNow7MNR8ZDm6IvJQ==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "xxhash-wasm": "^0.4.2" + } + }, + "@parcel/logger": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.2.tgz", + "integrity": "sha512-zlhK6QHxfFJMlVJxxcCw0xxBDrYPFPOhMxSD6p6b0z9Yct1l3NdpmfabgjKX8wnZmHokFsil6daleM+M80n2Ew==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2" + } + }, + "@parcel/markdown-ansi": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.2.tgz", + "integrity": "sha512-5y29TXgRgG0ybuXaDsDk4Aofg/nDUeAAyVl9/toYCDDhxpQV4yZt8WNPu4PaNYKGLuNgXwsmz+ryZQHGmfbAIQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + } + }, + "@parcel/namer-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.2.tgz", + "integrity": "sha512-sMLW/bDWXA6IE7TQKOsBnA5agZGNvZ9qIXKZEUTsTloUjMdAWI8NYA1s0i9HovnGxI5uGlgevrftK4S5V4AdkA==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/node-resolver-core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.2.tgz", + "integrity": "sha512-D/NJEz/h/C3RmUOWSTg0cLwG3uRVHY9PL+3YGO/c8tKu8PlS2j55XtntdiVfwkK+P6avLCnrJnv/gwTa79dOPw==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" + } + }, + "@parcel/optimizer-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.8.2.tgz", + "integrity": "sha512-pQEuKhk0PJuYI3hrXlf4gpuuPy+MZUDzC44ulQM7kVcVJ0OofuJQQeHfTLE+v5wClFDd29ZQZ7RsLP5RyUQ+Lg==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + } + }, + "@parcel/optimizer-htmlnano": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.8.2.tgz", + "integrity": "sha512-4+3wi+Yi+hsf5/LolX59JXFe/7bLpI6NetUBgtoxOVm/EzFg1NGSNOcrthzEcgGj6+MMSdzBAxRTPObAfDxJCA==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "svgo": "^2.4.0" + } + }, + "@parcel/optimizer-image": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.8.2.tgz", + "integrity": "sha512-/ICYG0smbMkli+su4m/ENQPxQDCPYYTJTjseKwl+t1vyj6wqNF99mNI4c0RE2TIPuDneGwSz7PlHhC2JmdgxfQ==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "detect-libc": "^1.0.3" + } + }, + "@parcel/optimizer-svgo": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.8.2.tgz", + "integrity": "sha512-nFWyM+CBtgBixqknpbN4R92v8PK7Gjlrsb8vxN/IIr/3Pjk+DfoT51DnynhU7AixvDylYkgjjqrQ7uFYYl0OKA==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "svgo": "^2.4.0" + } + }, + "@parcel/optimizer-terser": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.2.tgz", + "integrity": "sha512-jFAOh9WaO6oNc8B9qDsCWzNkH7nYlpvaPn0w3ZzpMDi0HWD+w+xgO737rWLJWZapqUDSOs0Q/hDFEZ82/z0yxA==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "terser": "^5.2.0" + } + }, + "@parcel/package-manager": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.2.tgz", + "integrity": "sha512-hx4Imi0yhsSS0aNZkEANPYNNKqBuR63EUNWSxMyHh4ZOvbHoOXnMn1ySGdx6v0oi9HvKymNsLMQ1T5CuI4l4Bw==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "semver": "^5.7.1" + } + }, + "@parcel/packager-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.8.2.tgz", + "integrity": "sha512-l2fR5qr1moUWLOqQZPxtH6DBKbaKcxzEPAmQ+f15dHt8eQxU15MyQ4DHX41b5B7HwaumgCqe0NkuTF3DedpJKg==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/packager-html": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.8.2.tgz", + "integrity": "sha512-/oiTsKZ5OyF9OwAVGHANNuW2TB3k3cVub1QfttSKJgG3sAhrOifb1dP8zBHMxvUrB0CJdYhGlgi1Jth9kjACCg==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + } + }, + "@parcel/packager-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.2.tgz", + "integrity": "sha512-48LtHP4lJn8J1aBeD4Ix/YjsRxrBUkzbx7czdUeRh2PlCqY4wwIhciVlEFipj/ANr3ieSX44lXyVPk/ttnSdrw==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + } + }, + "@parcel/packager-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.2.tgz", + "integrity": "sha512-dGonfFptNV1lgqKaD17ecXBUyIfoG6cJI1cCE1sSoYCEt7r+Rq56X/Gq8oiA3+jjMC7QTls+SmFeMZh26fl77Q==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2" + } + }, + "@parcel/packager-svg": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.8.2.tgz", + "integrity": "sha512-k7LymTJ4XQA+UcPwFYqJfWs5/Awa4GirNxRWfiFflLqH3F1XvMiKSCIQXmrDM6IaeIqqDDsu6+P5U6YDAzzM3A==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "posthtml": "^0.16.4" + } + }, + "@parcel/plugin": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.2.tgz", + "integrity": "sha512-YG7TWfKsoNm72jbz3b3TLec0qJHVkuAWSzGzowdIhX37cP1kRfp6BU2VcH+qYPP/KYJLzhcZa9n3by147mGcxw==", + "dev": true, + "requires": { + "@parcel/types": "2.8.2" + } + }, + "@parcel/reporter-cli": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.8.2.tgz", + "integrity": "sha512-OIRlBqpKqPpMWRHATT8az8fUAqfceLWlWqgX/CW5cG1i6gefbBWFq2qYxDVBEk1bPDLIUCtqNLhfO8hLyweMjA==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "chalk": "^4.1.0", + "term-size": "^2.2.1" + } + }, + "@parcel/reporter-dev-server": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.2.tgz", + "integrity": "sha512-A16pAQSAT8Yilo1yCPZcrtWbRhwyiMopEz0mOyGobA1ZDy6B3j4zjobIWzdPQCSIY7+v44vtWMDGbdGrxt6M1Q==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2" + } + }, + "@parcel/resolver-default": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.2.tgz", + "integrity": "sha512-mlowJMjFjyps9my8wd13kgeExJ5EgkPAuIxRSSWW+GPR7N3uA5DBJ+SB/CzdhCkPrXR6kwVWxNkkOch38pzOQQ==", + "dev": true, + "requires": { + "@parcel/node-resolver-core": "2.8.2", + "@parcel/plugin": "2.8.2" + } + }, + "@parcel/runtime-browser-hmr": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.8.2.tgz", + "integrity": "sha512-VRM8mxakMglqRB0f5eAuwCigjJ5vlaJMwHy+JuzOsn/yVSELOb+6psRKl2B9hhxp9sJPt4IU6KDdH2IOrgx87Q==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2" + } + }, + "@parcel/runtime-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.2.tgz", + "integrity": "sha512-Vk3Gywn2M9qP5X4lF6tu8QXP4xNI90UOSOhKHQ9W5pCu+zvD0Gdvu7qwQPFuFjIAq08xU7+PvZzGnlnM+8NyRw==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/runtime-react-refresh": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.8.2.tgz", + "integrity": "sha512-JjaMvBVx6v0zB1KHa7AopciIsl3FpjUMttr2tb6L7lzocti2muQGE6GBfinXOmD5oERwCf8HwGJ8SNFcIF0rKA==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "react-error-overlay": "6.0.9", + "react-refresh": "^0.9.0" + } + }, + "@parcel/runtime-service-worker": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.8.2.tgz", + "integrity": "sha512-KSxbOKV8nuH5JjFvcUlCtBYnVVlmxreXpMxRUPphPwJnyxRGA4E0jofbQxWY5KPgp7x/ZnZU/nyzCvqURH3kHA==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3" + } + }, + "@parcel/transformer-babel": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.8.2.tgz", + "integrity": "sha512-oL2BpvrPMwFiU9jUZ9UYGD1gRgvq9jLsOq+/PJl4GvPbOBVedIBE2nbHP/mYuWRpRnTTTiJQ/ItyOS0R2VQl7A==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^5.7.0" + } + }, + "@parcel/transformer-css": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.8.2.tgz", + "integrity": "sha512-q8UDlX/TTCbuFBMU45q12/p92JNIz8MHkkH104dWDzXbRtvMKMg8jgNmr8S2bouZjtXMsSb2c54EO88DSM9G4A==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + } + }, + "@parcel/transformer-html": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.8.2.tgz", + "integrity": "sha512-QDgDw6+DAcllaRQiRteMX0VgPIsxRUTXFS8jcXhbGio41LbUkLcT09M04L/cfJAAzvIKhXqiOxfNnyajTvCPDQ==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + } + }, + "@parcel/transformer-image": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.8.2.tgz", + "integrity": "sha512-B/D9v/BVyN5jxoi+wHPbIRfMIylmC6adp8GP+BtChjbuRjukgGT8RlAVz4vDm1l0bboeyPL2IuoWRQgXKGuPVg==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "nullthrows": "^1.1.1" + } + }, + "@parcel/transformer-inline-string": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-inline-string/-/transformer-inline-string-2.8.2.tgz", + "integrity": "sha512-140SRnwKktVJB/McYlN0ub4NpdXECu0NesVf3ORPaG1WLF/ZxYVpLl60XBptoze9ezUqR6B6Z34fWXZiOcW09Q==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2" + } + }, + "@parcel/transformer-js": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.2.tgz", + "integrity": "sha512-mLksi6gu/20JdCFDNPl7Y0HTwJOAvf2ybC2HaJcy69PJCeUrrstgiFTjsCwv1eKcesgEHi9kKX+sMHVAH3B/dA==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.8.2", + "@parcel/workers": "2.8.2", + "@swc/helpers": "^0.4.12", + "browserslist": "^4.6.6", + "detect-libc": "^1.0.3", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.13.7", + "semver": "^5.7.1" + } + }, + "@parcel/transformer-json": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.2.tgz", + "integrity": "sha512-eZuaY5tMxcMDJwpHJbPVTgSaBIO4mamwAa3VulN9kRRaf29nc+Q0iM7zMFVHWFQAi/mZZ194IIQXbDX3r6oSSQ==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "json5": "^2.2.0" + } + }, + "@parcel/transformer-postcss": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.8.2.tgz", + "integrity": "sha512-0Vb4T2e0QinNDps1/PxYsZwEzWieVxoW++AAUD3gzg0MfSyRc72MPc27CLOnziiRDyOUl+62gqpnNzq9xaKExA==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^5.7.1" + } + }, + "@parcel/transformer-posthtml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.8.2.tgz", + "integrity": "sha512-Ub7o6QlH7+xHHHdhvR7MxTqjyLVqeJopPSzy4yP+Bd72tWVjaVm7f76SUl+p7VjhLTMkmczr9OxG3k0SFHEbGw==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + } + }, + "@parcel/transformer-raw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.8.2.tgz", + "integrity": "sha512-xSzyZtrfisbx0R7xkuFJ/FksKyWaUFN18F9/0bLF8wo5LrOTQoYQatjun7/Rbq5mELBK/0ZPp7uJ02OqLRd2mA==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2" + } + }, + "@parcel/transformer-react-refresh-wrap": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.8.2.tgz", + "integrity": "sha512-UXBILYFXaj5zh1DzoYXoS3Wuq1+6WjoRQaFTUA5xrF3pjJb6LAXxWru3R20zR5INHIZXPxdQJB0b+epnmyjK4w==", + "dev": true, + "requires": { + "@parcel/plugin": "2.8.2", + "@parcel/utils": "2.8.2", + "react-refresh": "^0.9.0" + } + }, + "@parcel/transformer-svg": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.8.2.tgz", + "integrity": "sha512-FyliRrNHOF6tGzwHSzA2CTbkq3iMvS27eozf1kFj6gbO8gfJ5HXYoppQrTb237YZ/WXCHqe/3HVmGyJDZiLr+Q==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/plugin": "2.8.2", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^5.7.1" + } + }, + "@parcel/types": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.2.tgz", + "integrity": "sha512-HAYhokWxM10raIhqaYj9VR9eAvJ+xP2sNfQ1IcQybHpq3qblcBe/4jDeuUpwIyKeQ4gorp7xY+q8KDoR20j43w==", + "dev": true, + "requires": { + "@parcel/cache": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/source-map": "^2.1.1", + "@parcel/workers": "2.8.2", + "utility-types": "^3.10.0" + } + }, + "@parcel/utils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.2.tgz", + "integrity": "sha512-Ufax7wZxC9FNsUpR0EU7Z22LEY/q9jjsDTwswctCdfpWb7TE/NudOfM9myycfRvwBVEYN50lPbkt1QltEVnXQQ==", + "dev": true, + "requires": { + "@parcel/codeframe": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/hash": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/markdown-ansi": "2.8.2", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.0" + } + }, + "@parcel/watcher": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.1.0.tgz", + "integrity": "sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==", + "dev": true, + "requires": { + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + } + }, + "@parcel/workers": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.2.tgz", + "integrity": "sha512-Eg6CofIrJSNBa2fjXwvnzVLPKwR/6fkfQTFAm3Jl+4JYLVknBtTSFzQNp/Fa+HUEG889H9ucTk2CBi/fVPBAFw==", + "dev": true, + "requires": { + "@parcel/diagnostic": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/types": "2.8.2", + "@parcel/utils": "2.8.2", + "chrome-trace-event": "^1.0.2", + "nullthrows": "^1.1.1" + } + }, + "@react-aria/actiongroup": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.4.4.tgz", + "integrity": "sha512-KMY1lr2CO0I7Hv+3fM9MoDDyc8Za9SiGJn/Bxe7j636cmJNgGsAJnbE/FHJ3phlxNt8axbgG45gi0AJLqYiLqg==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/actiongroup": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/breadcrumbs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.4.1.tgz", + "integrity": "sha512-3dotDXcXX5IbES9tS9gK5m/2inlZH1ZESi61aBUoD/kQbUcf4CJ3TniVqzBKjNqQN8yIBH/LjwkAoGmuvtPVRQ==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/link": "^3.3.6", + "@react-aria/utils": "^3.14.2", + "@react-types/breadcrumbs": "^3.4.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/button": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.6.4.tgz", + "integrity": "sha512-OEs5fNGiuZzyC5y0cNl96+6pRf/3ZhI1i2m6LlRYhJLsWXPhHt21UHEnlSchE/XGtgKojJEeTsXottoBFTBi5w==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-RIOwGYIwMizN/MAF5RkTb2ic9OJ0rJyR2VqqgtV3c7ADHNejzyLYMQmaalEFDUHS+AbvaXM1LCXdFBhSB8nf5w==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/utils": "^3.14.2", + "@react-stately/calendar": "^3.0.5", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/checkbox": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.7.1.tgz", + "integrity": "sha512-3KRg/KrTRwQdw5Yg7gpbIKWWVt57PbGSEXAS/diQvRf9pTXbOuChTES8uVlcwF8q+3mKXc4ppzE3gsNQ5jOMqg==", + "requires": { + "@react-aria/label": "^3.4.4", + "@react-aria/toggle": "^3.4.2", + "@react-aria/utils": "^3.14.2", + "@react-stately/checkbox": "^3.3.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/combobox": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.4.4.tgz", + "integrity": "sha512-aviSDt4JkYZC1Ww83gvrNB4cHetXu73n5NuEfMNBC3B6fiL0MP5Av5+lMgf8FzpQks39QkZNxBtQ/h4I3D7SBA==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/listbox": "^3.7.2", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/menu": "^3.7.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/combobox": "^3.3.1", + "@react-stately/layout": "^3.10.0", + "@react-types/button": "^3.7.0", + "@react-types/combobox": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/datepicker": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.2.1.tgz", + "integrity": "sha512-NnW9VgX/YjxkgjcIaxmOhzpfiQmTQpCXjpPJ1+3nPhKzPKpcjtPxIYTDMkm/R+6i5FRukEGtjhg3QY9amLK6hQ==", + "requires": { + "@internationalized/date": "^3.0.2", + "@internationalized/number": "^3.1.2", + "@internationalized/string": "^3.0.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/spinbutton": "^3.2.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/datepicker": "^3.2.1", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/datepicker": "^3.1.4", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/dialog": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.4.2.tgz", + "integrity": "sha512-Z6YZYXtwwmC5ZHjJldF3zuTjHnli7fXe/sM1ts3bw6jvU2L0kzhV/DRbPXYg8h695Oj9t+OIi4qxjEyKVH7SEA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/overlays": "^3.4.4", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/focus": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.10.1.tgz", + "integrity": "sha512-HjgFUC1CznuYC7CxtBIFML6bOBxW3M3cSNtvmXU9QWlrPSwwOLkXCnfY6+UkjCc5huP4v7co4PoRDX8Vbe/cVQ==", + "requires": { + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-aria/grid": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.5.2.tgz", + "integrity": "sha512-+cDtTvTT0YF4jgy1pv0omcweub6z1N+GdkpHC6L6/jtH2gFRVns3IC6pf5ihLDIpLloylthaMMR8C3lus7035g==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/grid": "^3.4.2", + "@react-stately/selection": "^3.11.2", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/gridlist": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.1.2.tgz", + "integrity": "sha512-3HI/e8HzyBRWdEbDH+3Hvj9U5fD/1TYaqA0f4XnBdSEDd7LHPOzZyNzbZMdlMmaq2W0Dmm1YRCMELacFVUehUA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/list": "^3.6.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/i18n": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.6.3.tgz", + "integrity": "sha512-cDWl8FXJIXsw/raWcThywBueCJ5ncoogq81wYVS6hfZVmSyncONIB3bwUL12cojmjX1VEP31sN0ujT/83QP95Q==", + "requires": { + "@internationalized/date": "^3.0.2", + "@internationalized/message": "^3.0.10", + "@internationalized/number": "^3.1.2", + "@internationalized/string": "^3.0.1", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/interactions": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.13.1.tgz", + "integrity": "sha512-WCvfZOi1hhussVTHxVq76OR48ry13Zvp9U5hmuQufyxIUlf4hOvDk4/cbK4o4JiCs8X7C7SRzcwFM34M4NHzmg==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/label": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.4.4.tgz", + "integrity": "sha512-1fuYf2UctNhBy31uYN7OhdcrwzlB5GS0+C49gDkwWzccB7yr+CoOJ5UQUoVB7WBmzrc+CuzwWxSDd4OupSYIZQ==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-types/label": "^3.7.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/link": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.3.6.tgz", + "integrity": "sha512-UjbdBJ8EB+jCC3mPZD6cYykHqZKTy6/VvI5RGJoKtF8cg9639tRy6g102pd4ncFTdD4DfU5PPWtthC24nQRCyQ==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/link": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/listbox": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.7.2.tgz", + "integrity": "sha512-e3O/u2T3TccinmfS/UvHywxLbASmh28U4020WTpZnIrsaoriVCkGZvG1AYNNPDIESz2WO0oRF6vDrmGunglJ2A==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/listbox": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/live-announcer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.1.2.tgz", + "integrity": "sha512-BqtVLPWU10sZssoOJF1lJiRvZe5zqZ5BM39PsFyO7dWhVkR/9O9bZviqvKXnC1oXCnypfa+85gUshbK9unFcWA==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/menu": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.7.1.tgz", + "integrity": "sha512-5KIUTs3xYSmERB8qzofFghznMVLcG3RWDnJcQjpRtrrYjm6Oc39TJeodDH874fiEr6o3i5WwMrEYVp7NSxz/TQ==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/tree": "^3.4.1", + "@react-types/button": "^3.7.0", + "@react-types/menu": "^3.7.3", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/meter": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.3.4.tgz", + "integrity": "sha512-RdVd5vlb6//HI8G1hhH4G+E0Y387GYFKjmewSUKK0Lzp9PFLili26s+xLvgigUX9ald7HiPmfPdAlXzotvo54Q==", + "requires": { + "@react-aria/progress": "^3.3.4", + "@react-types/meter": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/numberfield": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.3.4.tgz", + "integrity": "sha512-yoYeYaEW5v84Ff0x+oSN0h3uzqrSOBEgjtv8ZMaFVsZfm9yMjsVLu+QWGBYCEOPcASMkNZpNR3o91nBPK3XTDw==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/spinbutton": "^3.2.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/numberfield": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/overlays": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.12.1.tgz", + "integrity": "sha512-OSgSopk2uQI5unvC3+fUyngbRFFe4GnF0iopCmrsI7qSQEusJUd4M2SuPVXUBBwWFt5TsiH7TnxmIPWeh5LSoA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/overlays": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/progress": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.3.4.tgz", + "integrity": "sha512-MVlWdH7L2e0u1SvkVk+C6/onS8opex9rIKUKHM08s++y80Xe3BIAh8jd5tgdlutDtcZ1kKgfb4bet9dvjymo4A==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/radio": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.4.2.tgz", + "integrity": "sha512-PpEsQjwkYOkSfKfnqXpBzf0FM/V2GSC0g/NG2ZAI5atDIACeic+kHCcs8fm2QzXtUDaRltNurvYdDJ+XzZ8g1g==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-stately/radio": "^3.6.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/searchfield": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.4.4.tgz", + "integrity": "sha512-Z3nZI2FXrWLPNUeJ3QV2ruTKBR9eHhPoHi+Iiuq4n+e02ib5s0Jlbam29FFiOxmf6vUMhScNcEYP9p2BNANmQA==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/searchfield": "^3.3.4", + "@react-types/button": "^3.7.0", + "@react-types/searchfield": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/select": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.8.4.tgz", + "integrity": "sha512-d2JOe11lUoGLvsE32bZRMq32SzXuyLNczyTOLrWM0e9fsOr49A8p6L6bFm3symU/KpwjjnO+pf5IkvgEq+GoJg==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/listbox": "^3.7.2", + "@react-aria/menu": "^3.7.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/select": "^3.3.4", + "@react-types/button": "^3.7.0", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/selection": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.12.1.tgz", + "integrity": "sha512-UX1vSY+iUdHe0itFZIOizX1BCI8SAeFnEh5VIQ1bYRt93+kAxeC914fsxFPPgrodJyqWRCX1dblPyRUIWAzQiw==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/separator": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.2.6.tgz", + "integrity": "sha512-QhYqoLfu+4T3ASCs5Q8ZWfBbRKBUmqquVdREWvHyvVyOBk9kRN9nxsoIxlkss1RJlJJx59AYF9T9CwgL80/bvw==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/slider": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.2.4.tgz", + "integrity": "sha512-+BDPFaCgm0gtGewO33ZDNZz1b3Fc1p5Y/HSuwCcru+jHetODJXy23IIVpWsDri1vG3fHECRnWcDZAjLZgkVnAw==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-stately/radio": "^3.6.2", + "@react-stately/slider": "^3.2.4", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/spinbutton": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.2.1.tgz", + "integrity": "sha512-y9QZ0VzWL7qzbWSPOCsAdvZhVlQrnHLRGc8bkRa2jmWrnCqS0iua/TRuLGgazIf2Rb7GmdbKBJJuPSScytVDUw==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/utils": "^3.14.2", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/ssr": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.4.1.tgz", + "integrity": "sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/switch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.3.1.tgz", + "integrity": "sha512-o9MvXiSK9c7rUZjA6oQ0PNlVCnHEctue6v6W8Vn4HNbQMfhJiWqiSSff4RFcgRgs8WsPsEqbT+vHi2kXykQzdA==", + "requires": { + "@react-aria/toggle": "^3.4.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/switch": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/table": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.7.0.tgz", + "integrity": "sha512-1YqOeb8r8pxIYyfa5qNdCoM3fNQELM4d+9DanoNJhgnehoq9QDI9A1pGC2pvK2PN2y9IuTJM+U/ITjSpPBoGjQ==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/checkbox": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/tabs": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.3.4.tgz", + "integrity": "sha512-SqlgfPvpRHlWelFk/lF9Ziu/8881NVErhKcpyyi+A9jASv5tvILWiwK8na82oI22UXXzyp0Y1EojLB25HnCB+w==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/list": "^3.6.1", + "@react-stately/tabs": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/tabs": "^3.1.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/textfield": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.8.1.tgz", + "integrity": "sha512-jgun/B9ecuRCfBSJLX2xDuNwfuj1lL0oibMWoSv6Y++W+CSS8a7LjR1f9Kll5TDVkQiRRUm9qHwI0og9xTJrNw==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/toggle": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.4.2.tgz", + "integrity": "sha512-xokCGf0fn96mOMqQku5QW672iQoMsN9RMpFbKvvgg2seceh8ifblyAXElWf/6YmluOZSgUSZljDkFrbMMYlzVA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@react-types/switch": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/tooltip": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.3.4.tgz", + "integrity": "sha512-KPDkDu7fquuUOOnNh9S7KfhPMwB1w9K+yLIFrYaj4iYSOLk/HH5TDkyiUQ7j5+B963D1fWlQjYFEGQ9o2KwO/Q==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/tooltip": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/tooltip": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/utils": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.14.2.tgz", + "integrity": "sha512-3nr5gsAf/J/W+6Tu4NF3Q7m+1mXjfpXESh7TPa6UR6v3tVDTsJVMrITg2BkHN1jM8xELcl2ZxyUffOWqOXzWuA==", + "requires": { + "@react-aria/ssr": "^3.4.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-aria/virtualizer": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.6.1.tgz", + "integrity": "sha512-cJ35AEUYUtm2E4+lMoFQN9MhcGJBqLPue6VlTLY44Ya+7KoWRkH+bz3/nhqbgprMFgrTwj04sv6FgOmwMmJm/A==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-aria/visually-hidden": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.6.1.tgz", + "integrity": "sha512-7rUbiaIiR1nok9HAHPn/WcyQlvuldUqxnvh81V4dlI3NtXOgMw7/QaNc5Xo5FFWlsSVpbyK3UVJgzIui0Ns0Xg==", + "requires": { + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-spectrum/actiongroup": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.7.3.tgz", + "integrity": "sha512-yqb6Cie99vEyiDY7S9AZuEXMv2SdaLuprF+cj9nBQ+9kvB7eLb8R9WrKVdrCB8Ri5xKv6MYusX0N9GEWEXnVVg==", + "requires": { + "@react-aria/actiongroup": "^3.4.4", + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-types/actiongroup": "^3.3.5", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/badge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.0.2.tgz", + "integrity": "sha512-g34I2Zo7wKCkqkSqDHNN84lz5HMARCUqNVr56WsKzsbhe3t+8Gk0UzEdiGMg8Ns4bUHGGOMFaWWMQyjVaHe9+Q==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/badge": "^3.0.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/breadcrumbs": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.6.2.tgz", + "integrity": "sha512-rdXOCs3v5n1MYRd8wC0yEThOzC96HUSmOZV9dttzI5xI5YKUch7VfMBjbZ6kOfB7uCjKdmYi03s/vV67HiZ+9A==", + "requires": { + "@react-aria/breadcrumbs": "^3.4.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-types/breadcrumbs": "^3.4.6", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/button": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.11.2.tgz", + "integrity": "sha512-qikZLGVui8SHmS/rUH1wakd/UHzKdsyfOSF9tytUei/ExYD73l23j6y3Db951pIKdVrnyg2XXpYmQ4Gn4/37jw==", + "requires": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/toggle": "^3.4.4", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/buttongroup": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.5.2.tgz", + "integrity": "sha512-7mN/JwzXA50cehjBgpkC3gmCqJm8OpTGCXF+fbeMnA8v4E/1QPEdQAXMI9YDkV0hjBpac1Qab8wFy/EDTrtVJQ==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/buttongroup": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/calendar": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.1.5.tgz", + "integrity": "sha512-WayX3Rarb/U+NrhbgGmWZImCSsXKB5vVFHVMUIBKLUnz+0UQyDXLsvE/I74x4toJJnQsEDboP3cgKP5EWBIFQw==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-aria/calendar": "^3.0.5", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/calendar": "^3.0.5", + "@react-types/button": "^3.7.0", + "@react-types/calendar": "^3.0.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/checkbox": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.6.3.tgz", + "integrity": "sha512-4xrjFgKfTsoZrdjYTiMsYJBYWpnF0Iua4sRJRSXd3Z/wE0S4FEi/z5aBcylK2zMuAWJNdLQ+JfBk9cTwQixxCg==", + "requires": { + "@react-aria/checkbox": "^3.7.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/checkbox": "^3.3.2", + "@react-stately/toggle": "^3.4.4", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/combobox": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.7.2.tgz", + "integrity": "sha512-nkomJpwhyRlJjnkQQLvXHiWYNozTGuTBP9XpJn40Y0YViLUN/UOlk2+tnJ9963AnSZh4TDJm6OUcwHVMnjhFuw==", + "requires": { + "@react-aria/button": "^3.6.4", + "@react-aria/combobox": "^3.4.4", + "@react-aria/dialog": "^3.4.2", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/label": "^3.4.4", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/combobox": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/combobox": "^3.5.5", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/contextualhelp": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.4.2.tgz", + "integrity": "sha512-rfFjvngKtGlswvylsQ7flAeI4/NqjZWSSKreKKKHdF5q0/II9cHEDQ2U9Rv+ds3gxCAPdXHaPZTk5G0ZmLl/wA==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/contextualhelp": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/datepicker": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.3.2.tgz", + "integrity": "sha512-GrYiyXNezAJIZwDoz6JemTJyJLndCVYLnPDM1gcV5jkTwQzhJ4Q5smpfZxiALV2evVae6C/Xr2RU5ISt7zp9og==", + "requires": { + "@internationalized/date": "^3.0.2", + "@internationalized/number": "^3.1.2", + "@react-aria/datepicker": "^3.2.1", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/calendar": "^3.1.5", + "@react-spectrum/dialog": "^3.6.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-spectrum/view": "^3.4.1", + "@react-stately/datepicker": "^3.2.1", + "@react-stately/utils": "^3.5.2", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/dialog": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.6.2.tgz", + "integrity": "sha512-w2YoDhchibFONuv0F3nyBpZ1ObBrem2pSRki1tPk/FB29HYJLmFR3suACQygfzujL+vbVqDxsSX1qhAjVFisiA==", + "requires": { + "@react-aria/dialog": "^3.4.2", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/buttongroup": "^3.5.2", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-spectrum/view": "^3.4.1", + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/button": "^3.7.0", + "@react-types/dialog": "^3.4.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/divider": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.4.4.tgz", + "integrity": "sha512-BndZ2yQ2xSyi3u5PAe5U13C/JK9vXHEUXYVrigauIlGYXGV2GjcnaqrlPfTQwbgdBYYnihEYttFMI6GFDnL1XA==", + "requires": { + "@react-aria/separator": "^3.2.6", + "@react-spectrum/utils": "^3.8.1", + "@react-types/divider": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-ugsm360E8/BRgcztf3j1ANyMHlO/jfSNNRuD0TMJcXhHJD2T6oiWtuI9Y/ARq+h+XclyDdppGXo5WwmwUXPktg==", + "requires": { + "@react-aria/dnd": "^3.0.1", + "@react-stately/dnd": "^3.0.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + }, + "dependencies": { + "@react-aria/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-z/T59Jc+6mj3OMcLjfA6MYd0zD6K3DYw+kB2CZ0EPte7BRN8wtU4+q/bx1iX+If97X6bTcHjMGX6nrQJ5vX/fw==", + "requires": { + "@internationalized/string": "^3.0.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/live-announcer": "^3.1.2", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-stately/dnd": "^3.0.1", + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + } + } + }, + "@react-spectrum/form": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.5.2.tgz", + "integrity": "sha512-dkNKDf7sUmuFdVofk/hEoIpj5ob/rx1JJIvmdWqRSJ7dz7gaaT8c9DatduPZNaVXuHx8GzBt/j8jf707YuiJDA==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/form": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/icon": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.6.3.tgz", + "integrity": "sha512-UzmRdfPjLqZkIGxjkzeFFAjdNiifSYzI469PpftOEu9jxBuWLjCst0wqHR5eSk+/g3q0l10s4cXJDujzPeLsdg==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/illustratedmessage": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.3.4.tgz", + "integrity": "sha512-l1GqEyoC8iQKxG4XLIkpD6/pzN0qbx0QOSwuFk0qRN8vKUAGx4i+YSjT4M4iFy8hSATDk7Jni9FnB7c8/sEhuQ==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/illustratedmessage": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/image": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.3.4.tgz", + "integrity": "sha512-VjkiOrUl0UUebGuF1luMGSLC1/vT/A7+E3YEgnBzJrwYYNcfY0xernHDRBnUy6/KyRaD4GighN6lsuqf39wU/w==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/image": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/label": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.10.1.tgz", + "integrity": "sha512-3T60VSYj6CLH2VBoTFMafZsoZYv3mfzzqjyhqmyDw+ZBwn4YLFV9rAhxAHMtM5Xj9rgEhQOHJYu9ycbF9eQUWQ==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/label": "^3.4.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/label": "^3.7.1", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/labeledvalue": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.0.3.tgz", + "integrity": "sha512-QpnOm7z8RaRBjLMFJR8v4wEy4Z7FJw/5SF4plolY+QhUUv1B2A444+GKG842+ccgH5PzP7T2WVrtmoHy8XXrRQ==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/layout": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.4.4.tgz", + "integrity": "sha512-TNDFTsdhXflQMx6G10whIqeea3BPP5LmoZi4dKKEvcgEpsmedAm5bmsUnAMQitAmVN/kVGVxO0uAhMEwQWnhbw==", + "requires": { + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/layout": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-spectrum/link": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.4.4.tgz", + "integrity": "sha512-+6C1WGtLf/G9qa3sJk3BwDL3w4EXtTv1sqNYmaUzJS3Xl+6mjACXvM2gJR0XYb6QJn2/10eQN2ok5qzDC2VtFw==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/link": "^3.3.6", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/link": "^3.3.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.2.2.tgz", + "integrity": "sha512-WvvKMoWoH34wajRM4NiFJOGHs4kvouofQzKvpC9w0ec0/ABKysNb38WX0X6dOXz2vFZnRRTHpBumDdxhgh6pdA==", + "requires": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/gridlist": "^3.1.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/dnd": "^3.0.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/layout": "^3.10.0", + "@react-stately/list": "^3.6.1", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14", + "react-transition-group": "^4.4.5" + } + }, + "@react-spectrum/listbox": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.8.3.tgz", + "integrity": "sha512-7AAu8DfFcUyb7JdhGrIu5gMni6Vey3cHakKnWPCWN+CgznQEEQxppyIYvVSSGbKr3EApmU3B6GfZV9JCGBaEag==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/listbox": "^3.7.2", + "@react-aria/separator": "^3.2.6", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/layout": "^3.10.0", + "@react-stately/list": "^3.6.1", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/listbox": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/menu": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.9.2.tgz", + "integrity": "sha512-vNmNfb+fAVDwp6kD9C2z5I6UeZ5snKh02NMavc2e+TbNceUHkGYv0PxTjQSXYY86pmW7E9EKbBKdEcZEMdl0hQ==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/menu": "^3.7.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/selection": "^3.12.1", + "@react-aria/separator": "^3.2.6", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/divider": "^3.4.4", + "@react-spectrum/layout": "^3.4.4", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/tree": "^3.4.1", + "@react-stately/utils": "^3.5.2", + "@react-types/menu": "^3.7.3", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/meter": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.3.4.tgz", + "integrity": "sha512-RWvtYVIsU05snf5zpQuWg/018ZaLk+nVvYV/bbg01NtX6n6WRperJuwKfhLUt3FSHoZSkF81WiWJP+q6MCRvpw==", + "requires": { + "@react-aria/meter": "^3.3.4", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-types/meter": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/numberfield": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.5.2.tgz", + "integrity": "sha512-0zwJ6j4mPtb9oL5K99L/KQnNkl6TIXsO8+Fh6zTQ9FOFlfonMI2rVsKjzbl8Qa5B3lTS1aDDLbQL4xzKBlAjdQ==", + "requires": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/numberfield": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/numberfield": "^3.3.1", + "@react-types/button": "^3.7.0", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/overlays": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-4.1.0.tgz", + "integrity": "sha512-fEseKtFWcmd2NyFL7HLk+WDCbo7cchf43UjVjuGChNen0n4hkhNVFpolbiyQ0tKVn2WPqsxGhZntC0LKMOqfEQ==", + "requires": { + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/overlays": "^3.4.4", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "react-transition-group": "^4.4.5" + } + }, + "@react-spectrum/picker": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.9.2.tgz", + "integrity": "sha512-iUlIs9JC2b792gk2AYtWxruGdevSoTMOP4F5DbWd6Y9MxbwJCGZ+qDiUe+dVS1ranvgyBuZGUHI+jg0QU5/piA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/select": "^3.8.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/listbox": "^3.8.3", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/select": "^3.3.4", + "@react-types/overlays": "^3.6.5", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/progress": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.3.4.tgz", + "integrity": "sha512-R8BBdhliJf7k2z6TAh/mOxW/TB4YbE/A7Il/2/lID515IWIR8tdSHUX9zO0csl2DGIAvWFNhtg68seHXAJpGYA==", + "requires": { + "@react-aria/progress": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/provider": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.6.1.tgz", + "integrity": "sha512-lsDoRQ3cwx4MunCJ94m9ssVYaTHO7jyaLaRoBJF9elNXFFOL+KLlc+L8LDyoQt6aSfmkeRqGd+q3b+Ap7XHRtQ==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/overlays": "^3.12.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/provider": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-spectrum/radio": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.4.3.tgz", + "integrity": "sha512-Si4ileiOorpNhcwF8ruKxksUPwqEcLZXYkiQhN3c5xbDK9Z/PXC8WBdajl3v7TFIdZLl7COq2UagXxwKfsVJUA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/radio": "^3.4.2", + "@react-spectrum/form": "^3.5.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/radio": "^3.6.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/searchfield": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.6.2.tgz", + "integrity": "sha512-GF9qem0Euf4ABdTRaMYy1tv6y2592jYIy3x3r4W7myON7xkYrDzbvJL7q35+7sFvXQURlMf3bazJ/dnIu5kzvA==", + "requires": { + "@react-aria/searchfield": "^3.4.4", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/textfield": "^3.9.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/searchfield": "^3.3.4", + "@react-types/searchfield": "^3.3.6", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/slider": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.4.1.tgz", + "integrity": "sha512-MFip5AtiMLeTcg00OGXFaKRcBaVldnfcrrSv4uhFozCZO9PGSpvqqCFKxLS2vpZDHGbBqI6Lg9FjONZ4w0mfDQ==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/slider": "^3.2.4", + "@react-aria/utils": "^3.14.2", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/slider": "^3.2.4", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/statuslight": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.4.4.tgz", + "integrity": "sha512-32rwKgUxyBmN87A8Qu5rfaOK++TXN0NNjT+0hjvzDvXxKtgUA11XA/sqxKCq1HbCEptsBZcUKBc2L9yF4ULn2w==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/statuslight": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/switch": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.3.5.tgz", + "integrity": "sha512-3YPasqpaFq3YoRVaE71kMPwQVgw1iQKpLjX1M9E3gvUGFAbOYJul04DJKpjNGL3xs4/t2gLkeIc03Qnmhadg7A==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/switch": "^3.3.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/toggle": "^3.4.4", + "@react-types/shared": "^3.16.0", + "@react-types/switch": "^3.2.5", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/table": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.6.1.tgz", + "integrity": "sha512-yzTj5vV7ZMlwWCmT1dwZxm0b1MgKHzeJuI/htEgi8oS5MGYsNEPlaDGEmLZhdPZvX0C3sCcB04cBhMc8ZC4BTQ==", + "requires": { + "@react-aria/button": "^3.6.4", + "@react-aria/focus": "^3.10.1", + "@react-aria/grid": "^3.5.2", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/table": "^3.7.0", + "@react-aria/utils": "^3.14.2", + "@react-aria/virtualizer": "^3.6.1", + "@react-aria/visually-hidden": "^3.6.1", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/checkbox": "^3.6.3", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/progress": "^3.3.4", + "@react-spectrum/tooltip": "^3.3.5", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/grid": "^3.4.2", + "@react-stately/layout": "^3.10.0", + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/tabs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.4.1.tgz", + "integrity": "sha512-1L1fzONoXURKuKaG5mCxddj+OOWYtggfE5JghXzH0bUpdHJU2ReHkaI2mXnJ4/xc72g+BGfezLuMHcqzaEQIJA==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/tabs": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/button": "^3.11.2", + "@react-spectrum/menu": "^3.9.2", + "@react-spectrum/picker": "^3.9.2", + "@react-spectrum/text": "^3.3.4", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-stately/tabs": "^3.2.4", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/tabs": "^3.1.5", + "@spectrum-icons/workflow": "^4.0.6", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/text": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.3.4.tgz", + "integrity": "sha512-k+8YEYEvVRhig+zkTOyguN95JXDsR4jwKqX+FwIo2Zae960xtK0am22UGpNiXXF9oUpI9bCuxYmQeI6a418MaA==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/text": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/textfield": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.9.2.tgz", + "integrity": "sha512-ibhG7ve2cHPTRm3nXe8XiZ/5o6x4IfJnfl0aQlxpvo3k/4Va74RgyvHVELpqvd8iOEC9GXu/ERD58cJiR9qNJg==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/i18n": "^3.6.3", + "@react-aria/interactions": "^3.13.1", + "@react-aria/textfield": "^3.8.1", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/label": "^3.10.1", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/theme-dark": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.4.1.tgz", + "integrity": "sha512-yu6pJa26L+2VOg9+IRz7BwWXhgEEA93aX4tfOcnZFu9NZ3D63Wl2dD+Lt+1bngIOzfATRbDzYg7EdNFbbqQjaQ==", + "requires": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/theme-default": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.4.1.tgz", + "integrity": "sha512-Aq5IQmsBO/lE2EUu+5mmnhbMgVBrohx4vomQ6vTwDcnBFD+Gzc6FJ/56jbOkm9gdhrFIebR8PeGeogIu3/0u6w==", + "requires": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/theme-light": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.3.1.tgz", + "integrity": "sha512-YKQZ3z74+hRmeyfCaoPhy1eotHb6Pbje42VqYx/OQ6xgfkn8ZUBi1abLM348XwQnTjVSIgUEYqbLStxRDQOKBg==", + "requires": { + "@react-types/provider": "^3.5.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/tooltip": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.3.5.tgz", + "integrity": "sha512-m9HQRYx0fu6ifR9aST4uT9pgrTy2QbL+cjd06NbaGWIsCZU4vN0g7+8GCiYI3xMMnlG8NExggEPACX/RU1hbFw==", + "requires": { + "@react-aria/focus": "^3.10.1", + "@react-aria/interactions": "^3.13.1", + "@react-aria/overlays": "^3.12.1", + "@react-aria/tooltip": "^3.3.4", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/overlays": "^4.1.0", + "@react-spectrum/utils": "^3.8.1", + "@react-stately/tooltip": "^3.2.4", + "@react-stately/utils": "^3.5.2", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@react-types/tooltip": "^3.2.5", + "@spectrum-icons/ui": "^3.4.2", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/utils": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.8.1.tgz", + "integrity": "sha512-cqXxJUNgoixCjOa9N6C+079goQz+66i9wBceMqlzMDXMVpSKWxmn2gGXOyWratayfZvDVINpn7FtX2dN/eEp+w==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/ssr": "^3.4.1", + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14", + "clsx": "^1.1.1" + } + }, + "@react-spectrum/view": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.4.1.tgz", + "integrity": "sha512-HDFaH49xW9bi3FRaJ0D5E/tS2tAyX5K+nYoGJPpUPg6WSW6AnzILg8v7XUzBAau/hGzPUsNvuVUH2R6Rpx8PjA==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/view": "^3.3.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-spectrum/well": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.3.4.tgz", + "integrity": "sha512-5WPbTIFk41BBT/xQbYz1ebHSuRCxFHCYSig1zjiKPrhs/dPymQBmAENtxd+muyMF61XTQndYVdeX5aW7hd1Yog==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/utils": "^3.8.1", + "@react-types/shared": "^3.16.0", + "@react-types/well": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-vu5hKsiA8edqNtsqBTGi8QR38qZ+uHDjuq3vp2m0f6TZSnp0kg8fkPNHEOuBTQ8ZXFFbGUZKhL/1B+ZWwLHwMQ==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-stately/utils": "^3.5.2", + "@react-types/calendar": "^3.0.5", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/checkbox": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.3.2.tgz", + "integrity": "sha512-eU3zvWgQrcqS8UK8ZVkb3fMP816PeuN9N0/dOJKuOXXhkoLPuxtuja1oEqKU3sFMa5+bx3czZhhNIRpr60NAdw==", + "requires": { + "@react-stately/toggle": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/collections": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.5.1.tgz", + "integrity": "sha512-egzVrZC5eFc5RJBpqUkzxd2aJOHZ2T1o7horEi8tAWZkg4YI+AmKrqela4ijVrrB9l1GO9z06qPT1UoPkFrC1w==", + "requires": { + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/combobox": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.3.1.tgz", + "integrity": "sha512-DgYn0MyfbDySf54o7ofXRd29TWznqtRRRbMG8TWgi/RaB0piDckT/TYWWSYOH3iMgnOEhReJhUUdMiQG4QLpIg==", + "requires": { + "@react-stately/list": "^3.6.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/select": "^3.3.4", + "@react-stately/utils": "^3.5.2", + "@react-types/combobox": "^3.5.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/data": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.8.1.tgz", + "integrity": "sha512-YSc45qfmt8uhg9KTGGDQ/xbAPPP6ty5itzWoWORYLEsorBNUj7mLF+q126nYcYX4B5Xf84w8EexqP8Y8nh2Gdg==", + "requires": { + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/datepicker": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.2.1.tgz", + "integrity": "sha512-nd6thX2Z+rOLDHduB3EgMKA0n5U83lrwn3IUfjRGrcE21zFaFmhTPsHyvol5jHy3eSyjWSN9kGpKFzOxES+uoA==", + "requires": { + "@internationalized/date": "^3.0.2", + "@internationalized/string": "^3.0.1", + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/datepicker": "^3.1.4", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/dnd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.0.1.tgz", + "integrity": "sha512-pwtyY/TR6Rdk33lFdF6dztQTV9gPujFmTqJG31NSSs6ei1FfUW9ZMq+311Zb8OhZ0TFiwZqAutVmmaaUrtl5+A==", + "requires": { + "@react-stately/selection": "^3.11.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/grid": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.4.2.tgz", + "integrity": "sha512-NeIUykQeA7Hen+dV4771ARW5SRrHYNn5VTOsQwn3KBUd2Z2gZ01OwUl3gETl5u0e3/tzMUdJ1LUoSPhDMwcmKw==", + "requires": { + "@react-stately/selection": "^3.11.2", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/layout": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.10.0.tgz", + "integrity": "sha512-ThFgivQSD5ksLMX7tbu0HqIxbxac/E8a/0vA21wB9QF9IQnUKO796QAQqwfA5rwPvTT41LL2Xn00GkrwQ9g/zg==", + "requires": { + "@react-stately/table": "^3.7.0", + "@react-stately/virtualizer": "^3.4.1", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/list": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.6.1.tgz", + "integrity": "sha512-+/fVkK3UO+N2NoUGpe57k9gcnfIsyEgWP8SD6CXZUkJho7BTp6mwrH0Wm8tcOclT3uBk+fZaQrk8mR3uWsPZGw==", + "requires": { + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/menu": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.4.4.tgz", + "integrity": "sha512-WKak1NSV9yDY0tDB4mzsbj0FboTtR06gekio0VmKb1+FmnrC07mef8eGKUn974F0WhTNUy5A1iI5eM0W2YNynA==", + "requires": { + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/menu": "^3.7.3", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/numberfield": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.3.1.tgz", + "integrity": "sha512-GOu6wE2L2eal4AOL+rJQ4wQnFRgRkwiS9xdAFPu9B4qfP0DVfEIUC3XV4jws9nBhANxEf5LyilUv400nG881wg==", + "requires": { + "@internationalized/number": "^3.1.2", + "@react-stately/utils": "^3.5.2", + "@react-types/numberfield": "^3.3.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/overlays": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.4.4.tgz", + "integrity": "sha512-IIlx+VXtXS4snDXrocUOls8QZ5XBQ4SNonaz1ox8/5W7Nsvq4VtdKsIaXsUP4agOudswaimlpj3pTDO/KuF5tQ==", + "requires": { + "@react-stately/utils": "^3.5.2", + "@react-types/overlays": "^3.6.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/radio": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.6.2.tgz", + "integrity": "sha512-qjbebR0YSkdEocLsPSzNnCsUYllWY938/5Z8mETxk4+74PJLxC3z0qjqVRq+aDO8hOgIfqSgrRRp3cJz9vIsBg==", + "requires": { + "@react-stately/utils": "^3.5.2", + "@react-types/radio": "^3.3.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/searchfield": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.3.4.tgz", + "integrity": "sha512-H/1evv7lsJl6PlD7/Sv7VgbCe0Yd2E2eKFihD6/tXPWO6L/ngYp5siqqhdwazjWTK2Hgw4TL0eviHGOGXKItzQ==", + "requires": { + "@react-stately/utils": "^3.5.2", + "@react-types/searchfield": "^3.3.6", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/select": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.3.4.tgz", + "integrity": "sha512-gD4JnF9/OIrQNdA4VqPIbifqpBC84BXHR5N7KmG7Ef06K9WGGVNB4FS538wno/znKg7lR6A45CPlaV53qfvWHg==", + "requires": { + "@react-stately/collections": "^3.5.1", + "@react-stately/list": "^3.6.1", + "@react-stately/menu": "^3.4.4", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/select": "^3.6.5", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/selection": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.11.2.tgz", + "integrity": "sha512-g21Y36xhYkXO3yzz0BYSBqnD38olvEwsJUqBXGZfx//bshMC2FNmI5sRYMAi36stxWbwzBvB01OytxfLLxCXCA==", + "requires": { + "@react-stately/collections": "^3.5.1", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/slider": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.2.4.tgz", + "integrity": "sha512-J97lTLqQKsrVSovYr4dTz7IJO/+j9OStT78N6bumDklnIKT7bsH3g857zITUFjs8yCcq0Jt3sfOvEU0ts6vyww==", + "requires": { + "@react-aria/i18n": "^3.6.3", + "@react-aria/utils": "^3.14.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@react-types/slider": "^3.3.1", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/table": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.7.0.tgz", + "integrity": "sha512-oPvMEabRUD4LSJ/NZsal3TT2YjoRmpEK8t2pqG20+Vapxy5tC6QKEZQvrDxJwF4Z8fqQnX/GvnqmfypvqWDUSA==", + "requires": { + "@react-stately/collections": "^3.5.1", + "@react-stately/grid": "^3.4.2", + "@react-stately/selection": "^3.11.2", + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0", + "@react-types/table": "^3.4.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/tabs": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.2.4.tgz", + "integrity": "sha512-qSnkoxzbC21KXZYGtg6TEDaex34WSNmPN4sJzXc9Xe39L6+wXNCA2tqZxWCfpIcWQklFm+BmnnNNCO8/PDDrMA==", + "requires": { + "@react-stately/list": "^3.6.1", + "@react-stately/utils": "^3.5.2", + "@react-types/tabs": "^3.1.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/toggle": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.4.4.tgz", + "integrity": "sha512-OwVJpd2M7P7fekTWpl3TUdD3Brq+Z/xElOCJYP5QuVytXCa5seKsk40YPld8JQnA5dRKojpbUxMDOJpb6hOOfw==", + "requires": { + "@react-stately/utils": "^3.5.2", + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/tooltip": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.2.4.tgz", + "integrity": "sha512-t7ksDRs9jKcOS25BVLM5cNCyzSCnzrin8OZ3AEmgeNxfiS58HhHbNxYk725hyGrbdpugQ03cRcJG70EZ6VgwDQ==", + "requires": { + "@react-stately/overlays": "^3.4.4", + "@react-stately/utils": "^3.5.2", + "@react-types/tooltip": "^3.2.5", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/tree": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.4.1.tgz", + "integrity": "sha512-kIXeJOHgGGaUFnAD2wyRIiOwOw/+PN1OXo46n8+dPTFIYwR4+IWFNG8OMjVlIiSLPYWMCzzxZBE9a5grmbmNWQ==", + "requires": { + "@react-stately/collections": "^3.5.1", + "@react-stately/selection": "^3.11.2", + "@react-stately/utils": "^3.5.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/utils": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.5.2.tgz", + "integrity": "sha512-639gSKqamPHIEPaApb9ahVJS0HgAqNdVF3tQRoh+Ky6759Mbk6i3HqG4zk4IGQ1tVlYSYZvCckwehF7b2zndMg==", + "requires": { + "@swc/helpers": "^0.4.14" + } + }, + "@react-stately/virtualizer": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.4.1.tgz", + "integrity": "sha512-2S7GARkZl41X7fN0Xa94TkN8ELAUbA89zn1xH59d02NOvAKLAFXHkCe69AivvVvbhXo8/nONzO8NXqqgBS/XQw==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-types/shared": "^3.16.0", + "@swc/helpers": "^0.4.14" + } + }, + "@react-types/actiongroup": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.3.5.tgz", + "integrity": "sha512-2lJGTcSdxeiuJwVwX9cHOCjwk9z3ZGADDHBR6Kk1JReceay2ubvGuV7IE8+DXXijOgitT4DQlRmzCbN6HPh1ng==", + "requires": { + "@react-types/button": "^3.7.0", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/badge": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.0.1.tgz", + "integrity": "sha512-uhchKxsFNRaju6sFme9DBymA6mNHKoBuhXIowzAxf5nnRNxppL5mvsNVNyWVcMlnjSAK7DmVTgJFcQmZkE0SUw==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/breadcrumbs": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.4.6.tgz", + "integrity": "sha512-hvGUI4mKHvOl3QyKFHk1qT/UkG+C4iJsRTlk6pbQgwk4lb7rplEm1CEa7fxzRdI8Gh4Id+C9+WyKCxZf9GNWUw==", + "requires": { + "@react-types/link": "^3.3.6", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/button": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.7.0.tgz", + "integrity": "sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/buttongroup": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.2.5.tgz", + "integrity": "sha512-iPiEEG2upe0ye9HdPuLNR6b3lXnvzv1vNToMHDT0bhU0+Zqnxvjnc5r02VVpnHB4Vq3wGzhJFgtpn3SOw43CqQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/calendar": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.0.5.tgz", + "integrity": "sha512-Kx00132hFEVvqay/Ub7q2oZEA1AzksirAuCsjakamn4LAXvitlo3PZxqBdEsyRc3nP5NR48KJj8yo276mXY8kQ==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/checkbox": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.4.1.tgz", + "integrity": "sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/combobox": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.5.5.tgz", + "integrity": "sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/contextualhelp": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.1.5.tgz", + "integrity": "sha512-8sVxgKOt00M7vJvVrQ1c0/1pzsZfg2KhQl9IJZB/vAnxuXr0+ZaV2WCffJ8/DNDLJ7gPl1sLowxJNt645M6ghA==", + "requires": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/datepicker": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.1.4.tgz", + "integrity": "sha512-NBCXBCe3YZqeA/JrVKy0IAvJ2XSnXaVpR9iAlUwKu7V8P81CtnXHsVCrd/0HSH8QZWsGdIV5E23z0TctvW8trA==", + "requires": { + "@internationalized/date": "^3.0.2", + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/dialog": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.4.5.tgz", + "integrity": "sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A==", + "requires": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/divider": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.2.5.tgz", + "integrity": "sha512-bkeW4cyp6LfBAmDmX0C79TnRNWYWPIkoLqCN447RWbWMPisvXvn9wnZMpT5/JUhnw3wDpKjhcpoTb5jF+qbknw==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/form": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.4.1.tgz", + "integrity": "sha512-9aIVUqElJ31XO3o0GrAcKagF66KfXyWZe44CqYijt+EukcdjI2zxfxfJwICfKSxxOF2tJ2vYX4m5D+ecfIS41g==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/grid": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.1.5.tgz", + "integrity": "sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/illustratedmessage": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.2.5.tgz", + "integrity": "sha512-D8HQx4/GHB3pqvgMYkOsZiD9/96ktuqvxRTZjwHSPzV+ByuPafIQSzcpYUHYjFtiNiRhYOIA/gO6JIWYy2dt/Q==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/image": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.2.5.tgz", + "integrity": "sha512-teBz5Apkgd9MjTeJzMxdZx9Tn68hzvLzX/5/omOeubTt772gepNcaALdtkWy931M6FP+cLpbmdfdVI88uLa6RA==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/label": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.7.1.tgz", + "integrity": "sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/layout": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.5.tgz", + "integrity": "sha512-DiZgmaezqBmLb+ai1Fu0PvIqSMy4yO6cwVuxj6FAIy0oyUjQw+b+V3TCXFoFbtyDN0+PO5oaixWrzELh6x+jWg==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/link": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.3.6.tgz", + "integrity": "sha512-HMFd94CW8WrHbwXeTtCP/WOZmGugrEkN8f16R0i7T9xlTumk5GxubDMjA41ND/ehH72Xq7lP9VX8qezHWCGSoQ==", + "requires": { + "@react-aria/interactions": "^3.13.1", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/listbox": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.3.5.tgz", + "integrity": "sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/menu": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.7.3.tgz", + "integrity": "sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg==", + "requires": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/meter": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.2.5.tgz", + "integrity": "sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw==", + "requires": { + "@react-types/progress": "^3.2.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/numberfield": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.3.5.tgz", + "integrity": "sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/overlays": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.6.5.tgz", + "integrity": "sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/progress": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.2.5.tgz", + "integrity": "sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/provider": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.5.5.tgz", + "integrity": "sha512-JhaRBhnvz6yYkKQz3Abr2Pwf4CIxKROduvitB00DeP493ZMGVcAkhZpk1t9A30SPKB7B0H3QuDgRuaj3H3aMJQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/radio": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.3.1.tgz", + "integrity": "sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/searchfield": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.3.6.tgz", + "integrity": "sha512-DIv5eznnJVv0CM4f8SEEiptEZSzXUJWUyxRPkTzYNWt91pPPaCNbCQbmzZtyR9/R9KRJ9hlZN2bMkrtfVLvl1g==", + "requires": { + "@react-types/shared": "^3.16.0", + "@react-types/textfield": "^3.6.2" + } + }, + "@react-types/select": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.6.5.tgz", + "integrity": "sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/shared": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.16.0.tgz", + "integrity": "sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw==", + "requires": {} + }, + "@react-types/slider": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.3.1.tgz", + "integrity": "sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/statuslight": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.2.5.tgz", + "integrity": "sha512-9zFaFdJkYIt6+bD4Ja8rrM0HO2R96zdgYXO+5JH1gpBzT9N2J1dOI6W8x6/MlFjdPkzbBXQkhzDKS0Ngzg8y5Q==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/switch": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.2.5.tgz", + "integrity": "sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ==", + "requires": { + "@react-types/checkbox": "^3.4.1", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/table": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.4.0.tgz", + "integrity": "sha512-G2L5WtaBMeG3v/5Kj/ZXH4ywz95vyPUBj7qy9UZJOYNaAR7uJWZkbe+Ka4xD4H/AaOk4mqW8dSo8cj7gtD66GQ==", + "requires": { + "@react-types/grid": "^3.1.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/tabs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.1.5.tgz", + "integrity": "sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/text": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.2.5.tgz", + "integrity": "sha512-ggQwiv6h0A+T386CnPAItyQ49PahK8SSz9Sm/GDOcnBkqfdG9deoTyPUreG1gikcZae4+RdTpGA3M9gaNGwTNQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/textfield": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.6.2.tgz", + "integrity": "sha512-QhFcpXvmSEW1/PwkWkvHJkcjsVezLW0OAvA0kMt/FMOChQNxnO36Pha+WjfcVbiFHXMhCBl6akbY2xG9NsHJrQ==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/tooltip": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.2.5.tgz", + "integrity": "sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw==", + "requires": { + "@react-types/overlays": "^3.6.5", + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/view": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.3.0.tgz", + "integrity": "sha512-5z8uOlRLoiEwu1sE0IaogVJPI96s8HZhf7ey7VLQ6fNqjWySVrW9ZZlHIA8bELNZhNMZK24EFUjhkN0uuFJxxA==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@react-types/well": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.2.5.tgz", + "integrity": "sha512-jyHfjXpfgpDs6bv8Wn3osIImfvGIETHaHhcOGu9HKh6h9qbdbDaDlQa7r5QW42ATaaIVZcj6k3rC/wVGbq70Ug==", + "requires": { + "@react-types/shared": "^3.16.0" + } + }, + "@spectrum-icons/illustrations": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@spectrum-icons/illustrations/-/illustrations-3.5.3.tgz", + "integrity": "sha512-HpV918RQsUBPXI4WksP4p1HTrhEmIzO36fnqcvTMgA28d7Oj1EfTgAYP45oaT3OQ5oBzqQhwQeymR/SJ3mvAkg==", + "requires": { + "@react-aria/utils": "^3.14.2", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + } + }, + "@spectrum-icons/ui": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.4.2.tgz", + "integrity": "sha512-osQ9JQCNNimt2yi+QCGYUj10BbyxdYIhB3XGkzaprHtjrVhmwm0JAXv9BcwhRu4rrHDgzh4ElSRqVPV9IVOH1A==", + "requires": { + "@adobe/react-spectrum-ui": "1.2.0", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + }, + "dependencies": { + "@adobe/react-spectrum-ui": { + "version": "1.2.0", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", + "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", + "requires": {} + } + } + }, + "@spectrum-icons/workflow": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.0.6.tgz", + "integrity": "sha512-m2FdEkKIlqOOYqT9gNlE0/qKAPr04+EMssi8ohzRpZnV/aBr2QuCEXC9Ytf0XfS+yY/u3GiilrCJ355Op4jl4w==", + "requires": { + "@adobe/react-spectrum-workflow": "2.3.3", + "@react-spectrum/icon": "^3.6.3", + "@swc/helpers": "^0.4.14" + }, + "dependencies": { + "@adobe/react-spectrum-workflow": { + "version": "2.3.3", + "resolved": "https://artifactory.corp.adobe.com/artifactory/api/npm/npm-spectrum-release/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.3.tgz", + "integrity": "sha512-idHEptv5d+puofqO3tiv+cbYR/QV7gUWKHMrHFuJS6zDwRyi3u8GR9BInRbEYp7ZvrLMW8XnNl6lXFSf8ubDQA==", + "requires": {} + } + } + }, + "@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "dependencies": { + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true + }, + "globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "htmlnano": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.0.3.tgz", + "integrity": "sha512-S4PGGj9RbdgW8LhbILNK7W9JhmYP8zmDY7KDV/8eCiJBQJlbmltp5I0gv8c5ntLljfdxxfmJ+UJVSqyH4mb41A==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.1", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + } + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "intl-messageformat": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.2.5.tgz", + "integrity": "sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww==", + "requires": { + "@formatjs/ecma402-abstract": "1.14.3", + "@formatjs/fast-memoize": "1.2.7", + "@formatjs/icu-messageformat-parser": "2.1.14", + "tslib": "^2.4.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "lightningcss": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.18.0.tgz", + "integrity": "sha512-uk10tNxi5fhZqU93vtYiQgx/8a9f0Kvtj5AXIm+VlOXY+t/DWDmCZWJEkZJmmALgvbS6aAW8or+Kq85eJ6TDTw==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "lightningcss-darwin-arm64": "1.18.0", + "lightningcss-darwin-x64": "1.18.0", + "lightningcss-linux-arm-gnueabihf": "1.18.0", + "lightningcss-linux-arm64-gnu": "1.18.0", + "lightningcss-linux-arm64-musl": "1.18.0", + "lightningcss-linux-x64-gnu": "1.18.0", + "lightningcss-linux-x64-musl": "1.18.0", + "lightningcss-win32-x64-msvc": "1.18.0" + } + }, + "lightningcss-darwin-arm64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.18.0.tgz", + "integrity": "sha512-OqjydwtiNPgdH1ByIjA1YzqvDG/OMR6L3LPN6wRl1729LB0y4Mik7L06kmZaTb+pvUHr+NmDd2KCwnlrQ4zO3w==", + "dev": true, + "optional": true + }, + "lightningcss-darwin-x64": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.18.0.tgz", + "integrity": "sha512-mNiuPHj89/JHZmJMp+5H8EZSt6EL5DZRWJ31O6k3DrLLnRIQjXuXdDdN8kP7LoIkeWI5xvyD60CsReJm+YWYAw==", + "dev": true, + "optional": true + }, + "lightningcss-linux-arm-gnueabihf": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.18.0.tgz", + "integrity": "sha512-S+25JjI6601HiAVoTDXW6SqH+E94a+FHA7WQqseyNHunOgVWKcAkNEc2LJvVxgwTq6z41sDIb9/M3Z9wa9lk4A==", + "dev": true, + "optional": true + }, + "lightningcss-linux-arm64-gnu": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.18.0.tgz", + "integrity": "sha512-JSqh4+21dCgBecIQUet35dtE4PhhSEMyqe3y0ZNQrAJQ5kyUPSQHiw81WXnPJcOSTTpG0TyMLiC8K//+BsFGQA==", + "dev": true, + "optional": true + }, + "lightningcss-linux-arm64-musl": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.18.0.tgz", + "integrity": "sha512-2FWHa8iUhShnZnqhn2wfIcK5adJat9hAAaX7etNsoXJymlliDIOFuBQEsba2KBAZSM4QqfQtvRdR7m8i0I7ybQ==", + "dev": true, + "optional": true + }, + "lightningcss-linux-x64-gnu": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.18.0.tgz", + "integrity": "sha512-plCPGQJtDZHcLVKVRLnQVF2XRsIC32WvuJhQ7fJ7F6BV98b/VZX0OlX05qUaOESD9dCDHjYSfxsgcvOKgCWh7A==", + "dev": true, + "optional": true + }, + "lightningcss-linux-x64-musl": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.18.0.tgz", + "integrity": "sha512-na+BGtVU6fpZvOHKhnlA0XHeibkT3/46nj6vLluG3kzdJYoBKU6dIl7DSOk++8jv4ybZyFJ0aOFMMSc8g2h58A==", + "dev": true, + "optional": true + }, + "lightningcss-win32-x64-msvc": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.18.0.tgz", + "integrity": "sha512-5qeAH4RMNy2yMNEl7e5TI6upt/7xD2ZpHWH4RkT8iJ7/6POS5mjHbXWUO9Q1hhDhqkdzGa76uAdMzEouIeCyNw==", + "dev": true, + "optional": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "lmdb": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "dev": true, + "requires": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2", + "msgpackr": "^1.5.4", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", + "ordered-binary": "^1.2.4", + "weak-lru-cache": "^1.2.2" + }, + "dependencies": { + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true + } + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "msgpackr": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.8.1.tgz", + "integrity": "sha512-05fT4J8ZqjYlR4QcRDIhLCYKUOHXk7C/xa62GzMKj74l3up9k2QZ3LgFc6qWdsPHl91QA2WLWqWc8b8t7GLNNw==", + "dev": true, + "requires": { + "msgpackr-extract": "^2.2.0" + } + }, + "msgpackr-extract": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.2.0.tgz", + "integrity": "sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog==", + "dev": true, + "optional": true, + "requires": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-arm": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-linux-x64": "2.2.0", + "@msgpackr-extract/msgpackr-extract-win32-x64": "2.2.0", + "node-gyp-build-optional-packages": "5.0.3" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", + "dev": true + }, + "node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "ordered-binary": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.0.tgz", + "integrity": "sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ==", + "dev": true + }, + "parcel": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.8.2.tgz", + "integrity": "sha512-XMVf3Ip9Iokv0FC3ulN/B0cb5O21qaw0RhUPz7zULQlY794ZpFP9mNtN7HvCVEgjl5/q2sYMcTA8l+5QJ2zZ/Q==", + "dev": true, + "requires": { + "@parcel/config-default": "2.8.2", + "@parcel/core": "2.8.2", + "@parcel/diagnostic": "2.8.2", + "@parcel/events": "2.8.2", + "@parcel/fs": "2.8.2", + "@parcel/logger": "2.8.2", + "@parcel/package-manager": "2.8.2", + "@parcel/reporter-cli": "2.8.2", + "@parcel/reporter-dev-server": "2.8.2", + "@parcel/utils": "2.8.2", + "chalk": "^4.1.0", + "commander": "^7.0.0", + "get-port": "^4.2.0", + "v8-compile-cache": "^2.0.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "requires": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "dependencies": { + "posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "requires": { + "htmlparser2": "^7.1.1" + } + } + } + }, + "posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "dev": true, + "requires": { + "htmlparser2": "^7.1.1" + } + }, + "posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "requires": { + "is-json": "^2.0.1" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-refresh": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", + "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", + "dev": true + }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, + "xxhash-wasm": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz", + "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + } + } +} diff --git a/tools/block-picker/package.json b/tools/block-picker/package.json new file mode 100644 index 00000000..dfb7a745 --- /dev/null +++ b/tools/block-picker/package.json @@ -0,0 +1,29 @@ +{ + "name": "franklin-block-picker", + "version": "1.0.0", + "description": "", + "source": "src/index.html", + "scripts": { + "watch": "parcel watch --public-url '.'", + "prebuild": "rm -rf dist", + "build": "parcel build --public-url '.' --dist-dir dist src/index.html" + }, + "contributors": [ + "Mark J. Becker ", + "Hannes Hertach " + ], + "license": "Apache-2.0", + "devDependencies": { + "@parcel/transformer-inline-string": "^2.7.0", + "parcel": "^2.8.0", + "process": "^0.11.10" + }, + "dependencies": { + "@adobe/react-spectrum": "^3.21.2", + "@spectrum-icons/illustrations": "^3.5.0", + "@spectrum-icons/ui": "^3.3.3", + "@spectrum-icons/workflow": "^4.0.3", + "react": "^16.8.0", + "react-dom": "^16.8.0" + } +} diff --git a/tools/block-picker/src/copy-utils.js b/tools/block-picker/src/copy-utils.js new file mode 100644 index 00000000..89e6c8df --- /dev/null +++ b/tools/block-picker/src/copy-utils.js @@ -0,0 +1,75 @@ +// Adapted from https://github.com/adobecom/milo/blob/0fbb05df593e6d6c5ef389f1a5e1bcbc84229f18/libs/blocks/library-config/lists/blocks.js +export function getTable(block, name, path) { + const url = new URL(`${window.origin}/${path}`); + block.querySelectorAll('img').forEach((img) => { + const srcSplit = img.src.split('/'); + const mediaPath = srcSplit.pop(); + img.src = `${url.origin}/${mediaPath}`; + const { width, height } = img; + const ratio = width > 200 ? 200 / width : 1; + img.width = width * ratio; + img.height = height * ratio; + }); + const rows = [...block.children]; + const maxCols = rows.reduce((cols, row) => ( + row.children.length > cols ? row.children.length : cols), 0); + const table = document.createElement('table'); + table.setAttribute('border', 1); + const headerRow = document.createElement('tr'); + const th = document.createElement('th' ); + th.setAttribute('colspan', maxCols); + th.insertAdjacentHTML('beforeend', name); + headerRow.append(th); + table.append(headerRow); + rows.forEach((row) => { + const tr = document.createElement('tr'); + [...row.children].forEach((col) => { + const td = document.createElement('td'); + if (row.children.length < maxCols) { + td.setAttribute('colspan', maxCols); + } + td.innerHTML = col.innerHTML; + tr.append(td); + }); + table.append(tr); + }); + return table.outerHTML; +} + +function getBlockName(block) { + const classes = block.className.split(' '); + const name = classes.shift(); + return classes.length > 0 ? `${name} (${classes.join(', ')})` : name; +} + +async function fetchPlainBlock(path) { + const resp = await fetch(`${path}.plain.html`); + if (!resp.ok) return; + + const html = await resp.text(); + const parser = new DOMParser(); + return parser.parseFromString(html, 'text/html'); +} + +export async function enrichWithVariants(block) { + const { path } = block; + block.variants = []; + + const doc = await fetchPlainBlock(path); + if (!doc) return; + + doc.body.querySelectorAll('div[class]').forEach((blockVariant) => { + const name = getBlockName(blockVariant) + const table = getTable(blockVariant, name, path); + block.variants.push({ name, table }); + }); +} + +export async function copyTable(blockVariant) { + const { table } = blockVariant + + await navigator.clipboard.write([new ClipboardItem({ + 'text/plain': new Blob([table], { type: 'text/plain' }), + 'text/html': new Blob([table], { type: 'text/html' }), + })]) +} diff --git a/tools/block-picker/src/index.html b/tools/block-picker/src/index.html new file mode 100644 index 00000000..81156027 --- /dev/null +++ b/tools/block-picker/src/index.html @@ -0,0 +1,16 @@ + + + + + + Franklin Picker + + + + +
    + + + + + diff --git a/tools/block-picker/src/index.js b/tools/block-picker/src/index.js new file mode 100644 index 00000000..523c4945 --- /dev/null +++ b/tools/block-picker/src/index.js @@ -0,0 +1,9 @@ +import React from 'react'; +import * as ReactDOM from 'react-dom'; +import Picker from './picker' +import {Provider, defaultTheme} from '@adobe/react-spectrum'; + +const app = document.getElementById("app"); +if (app) { + ReactDOM.render(, app); +} diff --git a/tools/block-picker/src/picker.js b/tools/block-picker/src/picker.js new file mode 100644 index 00000000..5b6044b6 --- /dev/null +++ b/tools/block-picker/src/picker.js @@ -0,0 +1,103 @@ +import React, {useEffect, useState} from 'react'; +import {ProgressCircle, Flex, ListView, Item, ActionMenu, ActionButton, Text, Content, Heading, IllustratedMessage} from '@adobe/react-spectrum'; +import Copy from '@spectrum-icons/workflow/Copy'; +import Preview from '@spectrum-icons/workflow/Preview'; +import ChevronLeft from '@spectrum-icons/workflow/ChevronLeft'; +import NotFound from '@spectrum-icons/illustrations/NotFound'; +import { copyTable, enrichWithVariants } from './copy-utils'; + +function renderEmptyState() { + return ( + + + No results + No results found + + ); +} + +function openPreview(block) { + window.open(block.path, '_blockpreview'); +} + +function handleBlockAction(action, block) { + switch (action) { + case "preview": + openPreview(block); + break; + case "copy": + copyTable(block?.variants?.[0]); + break; + } +} + +export default function Picker() { + const [loading, setLoading] = useState(true); + const [blocks, setBlocks] = useState(null); + const [openedSubmenu, setOpenedSubmenu] = useState(null); + + useEffect(() => { + fetch('/block-library/query-index.json') + .then((res) => { + return res.json(); + }) + .then((json) => { + return Promise.allSettled(json.data.map(async (block) => { + await enrichWithVariants(block) + return block + })) + }).then((blocks) => { + const fulfilledBlocks = [...blocks] + .filter((promise) => promise.status === 'fulfilled') + .map((promise) => promise.value) + setBlocks(fulfilledBlocks); + setLoading(false); + }) + }, []); + + if (loading) { + return + } + + if (openedSubmenu) { + const block = blocks.find((block) => block.path === openedSubmenu); + const variants = block.variants; + + return <> + setOpenedSubmenu(null)} isQuiet>Back + openPreview(block)} isQuiet>Preview + + {variants.map(variant => + {variant.name} + copyTable(variant)}> + )} + + + } + + return 0) ? undefined : 'size-3000'} + renderEmptyState={renderEmptyState} + onAction={(blockPath) => setOpenedSubmenu(blockPath)} + > + { + blocks?.map((block) => { + return + {block.title} + handleBlockAction(key, block)}> + + + Preview + + + + Copy Default Variant + + + + }) + } + +} diff --git a/tools/block-picker/src/styles.css b/tools/block-picker/src/styles.css new file mode 100644 index 00000000..68d9f439 --- /dev/null +++ b/tools/block-picker/src/styles.css @@ -0,0 +1,16 @@ +html, body { + height: 100%; +} + +body { + margin: 0; +} + +#app { + height: 100%; +} + +#app > div { + height: 100%; + overflow: scroll; +} diff --git a/tools/bulk-metadata/bulk-metadata.js b/tools/bulk-metadata/bulk-metadata.js new file mode 100644 index 00000000..6a49415d --- /dev/null +++ b/tools/bulk-metadata/bulk-metadata.js @@ -0,0 +1,71 @@ +import XLSX from 'xlsx'; +import fs from 'fs'; +import he from 'he'; +import getAllProducts from './queries/products.graphql.js'; + +const endpoint = 'https://venia.magento.com/graphql'; + +const prodMetadata = []; +const createSheet = async () => { + const data = [ + ['URL', 'keywords', 'title', 'og:title' , 'description' , 'og:description'], + ]; + prodMetadata.forEach((metaData) => { + data.push( + [metaData.path, metaData.meta_keyword, + metaData.meta_title, metaData.meta_title, + metaData.meta_description, metaData.meta_description], + ); + }); + // Write XLSX file + const worksheet = XLSX.utils.aoa_to_sheet(data); + const workbook = { Sheets: { Sheet1: worksheet }, SheetNames: ['Sheet1'] }; + const xlsx = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' }); + await fs.promises.writeFile('metadata.xlsx', xlsx); +}; + +/** + * Get products by page number + * @param {INT} pageNumber - pass the pagenumber to retrieved paginated results + */ +const getProducts = async (pageNumber) => { + const api = new URL(endpoint); + api.searchParams.append('query', getAllProducts); + api.searchParams.append('variables', JSON.stringify({ currentPage: pageNumber })); + + const response = await fetch(api, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + store: 'wknd', + }, + }); + const result = await response.json(); + + if (result && result.data) { + result.data.products.items.forEach((item) => { + const baseImageUrl = `https://venia.magento.com/product-images/${item.sku}.jpg`; + const itemMeta = { + path: `/products/${item.url_key}/${item.sku}`, + meta_keyword: (item.meta_keyword !== null) ? item.meta_keyword : '', + meta_title: he.decode((item.meta_title !== null) ? item.meta_title : item.name), + meta_description: (item.meta_description !== null) ? item.meta_description : '', + 'og:image': baseImageUrl, + 'og:image:secure_url': baseImageUrl, + 'twitter:image': baseImageUrl, + }; + prodMetadata.push(itemMeta); + }); + const totalPages = result.data.products.page_info.total_pages; + const currentPage = result.data.products.page_info.current_page; + if (currentPage !== totalPages) { + getProducts(currentPage + 1); + } else { + createSheet(); + } + } +}; + +getProducts() + .then() + .catch((e) => console.error(e)); \ No newline at end of file diff --git a/tools/bulk-metadata/package-lock.json b/tools/bulk-metadata/package-lock.json new file mode 100644 index 00000000..6d7041fd --- /dev/null +++ b/tools/bulk-metadata/package-lock.json @@ -0,0 +1,210 @@ +{ + "name": "bukl-metadata", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "bukl-metadata", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "xlsx": "^0.18.5" + }, + "devDependencies": { + "he": "^1.2.0", + "xlsx": "^0.18.5" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dev": true, + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dev": true, + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dev": true, + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + } + }, + "dependencies": { + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "dev": true + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dev": true, + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + } + }, + "codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "dev": true + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dev": true, + "requires": { + "frac": "~1.1.2" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "dev": true + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "dev": true + }, + "xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dev": true, + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + } + } +} diff --git a/tools/bulk-metadata/package.json b/tools/bulk-metadata/package.json new file mode 100644 index 00000000..c79b7304 --- /dev/null +++ b/tools/bulk-metadata/package.json @@ -0,0 +1,17 @@ +{ + "name": "bukl-metadata", + "private": true, + "type": "module", + "version": "1.0.0", + "description": "", + "main": "bulk-metadata.js", + "author": "", + "license": "Apache-2.0", + "devDependencies": { + "he": "^1.2.0", + "xlsx": "^0.18.5" + }, + "dependencies": { + "xlsx": "^0.18.5" + } +} diff --git a/tools/bulk-metadata/queries/products.graphql.js b/tools/bulk-metadata/queries/products.graphql.js new file mode 100644 index 00000000..c9ff69b7 --- /dev/null +++ b/tools/bulk-metadata/queries/products.graphql.js @@ -0,0 +1,24 @@ +const query = `query getProducts($currentPage: Int=1){ + products( + search: "" + pageSize: 20 + currentPage: $currentPage + ) { + items { + name + sku + url_key + meta_description + meta_keyword + meta_title + } + page_info { + current_page + page_size + total_pages + } + total_count + } + +}`; +export default query.replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g, ' '); diff --git a/tools/picker/dist/index.fce879da.js b/tools/picker/dist/index.fce879da.js index dd64bb4c..ab14cf30 100644 --- a/tools/picker/dist/index.fce879da.js +++ b/tools/picker/dist/index.fce879da.js @@ -25,5 +25,5 @@ var r,i,o,a,s,u,c,d,p,f,m;e(t.exports,"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -var r,i,l,o,a,s,u,c,d,p,f,m,h,g,y,v,b,w,E,k,S,x,P,T;if(e(t.exports,"unstable_now",(()=>r),(e=>r=e)),e(t.exports,"unstable_forceFrameRate",(()=>i),(e=>i=e)),e(t.exports,"unstable_IdlePriority",(()=>l),(e=>l=e)),e(t.exports,"unstable_ImmediatePriority",(()=>o),(e=>o=e)),e(t.exports,"unstable_LowPriority",(()=>a),(e=>a=e)),e(t.exports,"unstable_NormalPriority",(()=>s),(e=>s=e)),e(t.exports,"unstable_Profiling",(()=>u),(e=>u=e)),e(t.exports,"unstable_UserBlockingPriority",(()=>c),(e=>c=e)),e(t.exports,"unstable_cancelCallback",(()=>d),(e=>d=e)),e(t.exports,"unstable_continueExecution",(()=>p),(e=>p=e)),e(t.exports,"unstable_getCurrentPriorityLevel",(()=>f),(e=>f=e)),e(t.exports,"unstable_getFirstCallbackNode",(()=>m),(e=>m=e)),e(t.exports,"unstable_next",(()=>h),(e=>h=e)),e(t.exports,"unstable_pauseExecution",(()=>g),(e=>g=e)),e(t.exports,"unstable_requestPaint",(()=>y),(e=>y=e)),e(t.exports,"unstable_runWithPriority",(()=>v),(e=>v=e)),e(t.exports,"unstable_scheduleCallback",(()=>b),(e=>b=e)),e(t.exports,"unstable_shouldYield",(()=>w),(e=>w=e)),e(t.exports,"unstable_wrapCallback",(()=>E),(e=>E=e)),"undefined"==typeof window||"function"!=typeof MessageChannel){var _=null,C=null,I=function(){if(null!==_)try{var e=r();_(!0,e),_=null}catch(e){throw setTimeout(I,0),e}},M=Date.now();r=function(){return Date.now()-M},k=function(e){null!==_?setTimeout(k,0,e):(_=e,setTimeout(I,0))},S=function(e,t){C=setTimeout(e,t)},x=function(){clearTimeout(C)},P=function(){return!1},T=i=function(){}}else{var L=window.performance,N=window.Date,R=window.setTimeout,O=window.clearTimeout;if("undefined"!=typeof console){var A=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof A&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof L&&"function"==typeof L.now)r=function(){return L.now()};else{var F=N.now();r=function(){return N.now()-F}}var z=!1,D=null,K=-1,V=5,U=0;P=function(){return r()>=U},T=function(){},i=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0q(o,n))void 0!==s&&0>q(s,o)?(e[r]=s,e[a]=n,r=a):(e[r]=o,e[l]=n,r=l);else{if(!(void 0!==s&&0>q(s,n)))break e;e[r]=s,e[a]=n,r=a}}}return t}return null}function q(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var G=[],Q=[],Y=1,X=null,Z=3,J=!1,ee=!1,te=!1;function ne(e){for(var t=H(Q);null!==t;){if(null===t.callback)W(Q);else{if(!(t.startTime<=e))break;W(Q),t.sortIndex=t.expirationTime,$(G,t)}t=H(Q)}}function re(e){if(te=!1,ne(e),!ee)if(null!==H(G))ee=!0,k(ie);else{var t=H(Q);null!==t&&S(re,t.startTime-e)}}function ie(e,t){ee=!1,te&&(te=!1,x()),J=!0;var n=Z;try{for(ne(t),X=H(G);null!==X&&(!(X.expirationTime>t)||e&&!P());){var i=X.callback;if(null!==i){X.callback=null,Z=X.priorityLevel;var l=i(X.expirationTime<=t);t=r(),"function"==typeof l?X.callback=l:X===H(G)&&W(G),ne(t)}else W(G);X=H(G)}if(null!==X)var o=!0;else{var a=H(Q);null!==a&&S(re,a.startTime-t),o=!1}return o}finally{X=null,Z=n,J=!1}}function le(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}l=5,o=1,a=4,s=3,u=null,c=2,d=function(e){e.callback=null},p=function(){ee||J||(ee=!0,k(ie))},f=function(){return Z},m=function(){return H(G)},h=function(e){switch(Z){case 1:case 2:case 3:var t=3;break;default:t=Z}var n=Z;Z=t;try{return e()}finally{Z=n}},g=function(){},y=T,v=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Z;Z=e;try{return t()}finally{Z=n}},b=function(e,t,n){var i=r();if("object"==typeof n&&null!==n){var l=n.delay;l="number"==typeof l&&0i?(e.sortIndex=l,$(Q,e),null===H(G)&&e===H(Q)&&(te?x():te=!0,S(re,l-i))):(e.sortIndex=n,$(G,e),ee||J||(ee=!0,k(ie))),e},w=function(){var e=r();ne(e);var t=H(G);return t!==X&&null!==X&&null!==t&&null!==t.callback&&t.startTime<=e&&t.expirationTime{let r=(e,...t)=>{n&&(Object.is(u.current,e)||n(e,...t)),s||(u.current=e)};if("function"==typeof e){console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i(((n,...i)=>{let l=e(s?u.current:n,...i);return r(l,...t),s?n:l}))}else s||i(e),r(e,...t)}),[s,n]);return s?u.current=e:e=r,[e,c]}function u(e,t=-1/0,n=1/0){return Math.min(Math.max(e,t),n)}o=l("acw62"),o=l("acw62");const c={prefix:String(Math.round(1e10*Math.random())),current:0},d=t(o).createContext(c);let p=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);function f(e){let t=(0,o.useContext)(d);return t!==c||p||console.warn("When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server."),(0,o.useMemo)((()=>e||`react-aria${t.prefix}-${++t.current}`),[e])}function m(){let e=(0,o.useContext)(d)!==c,[t,n]=(0,o.useState)(e);return"undefined"!=typeof window&&e&&(0,o.useLayoutEffect)((()=>{n(!1)}),[]),t}function h(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{};function v(e){let[t,n]=(0,o.useState)(e),r=(0,o.useRef)(t),i=(0,o.useRef)(null);r.current=t;let l=(0,o.useRef)(null);l.current=()=>{let e=i.current.next();e.done?i.current=null:t===e.value?l.current():n(e.value)},y((()=>{i.current&&l.current()}));let a=(0,o.useCallback)((e=>{i.current=e(r.current),l.current()}),[i,l]);return[t,a]}let b=new Map;function w(e){let[t,n]=(0,o.useState)(e),r=(0,o.useRef)(null),i=f(t),l=(0,o.useCallback)((e=>{r.current=e}),[]);return b.set(i,l),y((()=>{let e=i;return()=>{b.delete(e)}}),[i]),(0,o.useEffect)((()=>{let e=r.current;e&&(r.current=null,n(e))})),i}function E(e,t){if(e===t)return e;let n=b.get(e);if(n)return n(t),t;let r=b.get(t);return r?(r(e),e):t}function k(e=[]){let t=w(),[n,r]=v(t),i=(0,o.useCallback)((()=>{r((function*(){yield t,yield document.getElementById(t)?t:void 0}))}),[t,r]);return y(i,[t,i,...e]),n}function S(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}function x(...e){let t={...e[0]};for(let n=1;n=65&&e.charCodeAt(2)<=90?t[e]=S(n,i):"className"!==e&&"UNSAFE_className"!==e||"string"!=typeof n||"string"!=typeof i?"id"===e&&n&&i?t.id=E(n,i):t[e]=void 0!==i?i:n:t[e]=g(n,i)}}return t}const P=new Set(["id"]),T=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),_=/^(data-.*)$/;function C(e,t={}){let{labelable:n,propNames:r}=t,i={};for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(P.has(t)||n&&T.has(t)||(null==r?void 0:r.has(t))||_.test(t))&&(i[t]=e[t]);return i}function I(e){if(function(){if(null==M){M=!1;try{document.createElement("div").focus({get preventScroll(){return M=!0,!0}})}catch(e){}}return M}())e.focus({preventScroll:!0});else{let t=function(e){var t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight{let n=L.get(t.target);if(n&&(n.delete(t.propertyName),0===n.size&&(t.target.removeEventListener("transitioncancel",e),L.delete(t.target)),0===L.size)){for(let e of N)e();N.clear()}};document.body.addEventListener("transitionrun",(t=>{let n=L.get(t.target);n||(n=new Set,L.set(t.target,n),t.target.addEventListener("transitioncancel",e)),n.add(t.propertyName)})),document.body.addEventListener("transitionend",e)}function O(e){requestAnimationFrame((()=>{0===L.size?e():N.add(e)}))}"undefined"!=typeof document&&("loading"!==document.readyState?R():document.addEventListener("DOMContentLoaded",R));function A(){let e=(0,o.useRef)(new Map),t=(0,o.useCallback)(((t,n,r,i)=>{let l=(null==i?void 0:i.once)?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,fn:l,options:i}),t.addEventListener(n,r,i)}),[]),n=(0,o.useCallback)(((t,n,r,i)=>{var l;let o=(null===(l=e.current.get(r))||void 0===l?void 0:l.fn)||r;t.removeEventListener(n,o,i),e.current.delete(r)}),[]),r=(0,o.useCallback)((()=>{e.current.forEach(((e,t)=>{n(e.eventTarget,e.type,t,e.options)}))}),[n]);return(0,o.useEffect)((()=>r),[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function F(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;if(n=w(n),i&&r){let e=new Set([...i.trim().split(/\s+/),n]);i=[...e].join(" ")}else i&&(i=i.trim().split(/\s+/).join(" "));return r||i||!t||(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function z(e,t){const n=(0,o.useRef)(!0);(0,o.useEffect)((()=>{n.current?n.current=!1:e()}),t)}function D(e){const{ref:t,onResize:n}=e;(0,o.useEffect)((()=>{let e=null==t?void 0:t.current;if(e){if(void 0===window.ResizeObserver)return window.addEventListener("resize",n,!1),()=>{window.removeEventListener("resize",n,!1)};{const t=new window.ResizeObserver((e=>{e.length&&n()}));return t.observe(e),()=>{e&&t.unobserve(e)}}}}),[n,t])}function K(e,t){y((()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref.current=null}}),[e,t])}function V(e){for(;e&&!U(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}function U(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}let B="undefined"!=typeof window&&window.visualViewport;function j(){let[e,t]=(0,o.useState)((()=>$()));return(0,o.useEffect)((()=>{let e=()=>{t((e=>{let t=$();return t.width===e.width&&t.height===e.height?e:t}))};return B?B.addEventListener("resize",e):window.addEventListener("resize",e),()=>{B?B.removeEventListener("resize",e):window.removeEventListener("resize",e)}}),[]),e}function $(){return{width:(null==B?void 0:B.width)||window.innerWidth,height:(null==B?void 0:B.height)||window.innerHeight}}let H=0;const W=new Map;function q(e){let[t,n]=(0,o.useState)(void 0);return y((()=>{if(!e)return;let t=W.get(e);if(t)n(t.element.id);else{let r="react-aria-description-"+H++;n(r);let i=document.createElement("div");i.id=r,i.style.display="none",i.textContent=e,document.body.appendChild(i),t={refCount:0,element:i},W.set(e,t)}return t.refCount++,()=>{0==--t.refCount&&(t.element.remove(),W.delete(e))}}),[e]),{"aria-describedby":e?t:void 0}}function G(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.brands.some((t=>e.test(t.brand))))||e.test(window.navigator.userAgent))}function Q(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function Y(){return Q(/^Mac/i)}function X(){return Q(/^iPhone/i)||Q(/^iPad/i)||Y()&&navigator.maxTouchPoints>1}function Z(){return G(/AppleWebKit/i)&&!G(/Chrome/i)}function J(e,t,n,r){let i=(0,o.useRef)(n);i.current=n;let l=null==n;(0,o.useEffect)((()=>{if(l)return;let n=e.current,o=e=>i.current.call(this,e);return n.addEventListener(t,o,r),()=>{n.removeEventListener(t,o,r)}}),[e,t,r,l])}function ee(e,t){let n=te(e,t,"left"),r=te(e,t,"top"),i=t.offsetWidth,l=t.offsetHeight,o=e.scrollLeft,a=e.scrollTop,s=o+e.offsetWidth,u=a+e.offsetHeight;n<=o?o=n:n+i>s&&(o+=n+i-s),r<=a?a=r:r+l>u&&(a+=r+l-u),e.scrollLeft=o,e.scrollTop=a}function te(e,t,n){const r="left"===n?"offsetLeft":"offsetTop";let i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);){if(t.offsetParent.contains(e)){i-=e[r];break}t=t.offsetParent}return i}function ne(e){return!(0!==e.mozInputSource||!e.isTrusted)||(G(/Android/i)&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}o=l("acw62"),o=l("acw62");class re{getStringForLocale(e,t){let n=this.strings[t];n||(n=function(e,t,n="en-US"){if(t[e])return t[e];let r=function(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}(e);if(t[r])return t[r];for(let e in t)if(e.startsWith(r+"-"))return t[e];return t[n]}(t,this.strings,this.defaultLocale),this.strings[t]=n);let r=n[e];if(!r)throw new Error(`Could not find intl message ${e} in ${t} locale`);return r}constructor(e,t="en-US"){this.strings={...e},this.defaultLocale=t}}const ie=new Map,le=new Map;class oe{format(e,t){let n=this.strings.getStringForLocale(e,this.locale);return"function"==typeof n?n(t,this):n}plural(e,t,n="cardinal"){let r=t["="+e];if(r)return"function"==typeof r?r():r;let i=this.locale+":"+n,l=ie.get(i);return l||(l=new Intl.PluralRules(this.locale,{type:n}),ie.set(i,l)),r=t[l.select(e)]||t.other,"function"==typeof r?r():r}number(e){let t=le.get(this.locale);return t||(t=new Intl.NumberFormat(this.locale),le.set(this.locale,t)),t.format(e)}select(e,t){let n=e[t]||e.other;return"function"==typeof n?n():n}constructor(e,t){this.locale=e,this.strings=t}}function ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}new Map;new Map;new Map;let se=new Map,ue=!1;try{ue="exceptZero"===new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay}catch(Wu){}let ce=!1;try{ce="unit"===new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style}catch(e){}const de={degree:{narrow:{default:"°","ja-JP":" 度","zh-TW":"度","sl-SI":" °"}}};class pe{format(e){let t="";if(t=ue||null==this.options.signDisplay?this.numberFormatter.format(e):function(e,t,n){if("auto"===t)return e.format(n);if("never"===t)return e.format(Math.abs(n));{let r=!1;if("always"===t?r=n>0||Object.is(n,0):"exceptZero"===t&&(Object.is(n,-0)||Object.is(n,0)?n=Math.abs(n):r=n>0),r){let t=e.format(-n),r=e.format(n),i=t.replace(r,"").replace(/\u200e|\u061C/,"");return 1!==[...i].length&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),t.replace(r,"!!!").replace(i,"+").replace("!!!",r)}return e.format(n)}}(this.numberFormatter,this.options.signDisplay,e),"unit"===this.options.style&&!ce){var n;let{unit:e,unitDisplay:r="short",locale:i}=this.resolvedOptions(),l=null===(n=de[e])||void 0===n?void 0:n[r];t+=l[i]||l.default}return t}formatToParts(e){return this.numberFormatter.formatToParts(e)}formatRange(e,t){if("function"==typeof this.numberFormatter.formatRange)return this.numberFormatter.formatRange(e,t);if(t= start date");return`${this.format(e)} – ${this.format(t)}`}formatRangeToParts(e,t){if("function"==typeof this.numberFormatter.formatRangeToParts)return this.numberFormatter.formatRangeToParts(e,t);if(t= start date");let n=this.numberFormatter.formatToParts(e),r=this.numberFormatter.formatToParts(t);return[...n.map((e=>({...e,source:"startRange"}))),{type:"literal",value:" – ",source:"shared"},...r.map((e=>({...e,source:"endRange"})))]}resolvedOptions(){let e=this.numberFormatter.resolvedOptions();return ue||null==this.options.signDisplay||(e={...e,signDisplay:this.options.signDisplay}),ce||"unit"!==this.options.style||(e={...e,style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay}),e}constructor(e,t={}){this.numberFormatter=function(e,t={}){let{numberingSystem:n}=t;n&&-1===e.indexOf("-u-nu-")&&(e=`${e}-u-nu-${n}`);if("unit"===t.style&&!ce){var r;let{unit:e,unitDisplay:n="short"}=t;if(!e)throw new Error('unit option must be provided with style: "unit"');if(!(null===(r=de[e])||void 0===r?void 0:r[n]))throw new Error(`Unsupported unit ${e} with unitDisplay = ${n}`);t={...t,style:"decimal"}}let i=e+(t?Object.entries(t).sort(((e,t)=>e[0](0===ve.size&&window.addEventListener("languagechange",be),ve.add(n),()=>{ve.delete(n),0===ve.size&&window.removeEventListener("languagechange",be)})),[]),e?{locale:"en-US",direction:"ltr"}:t}const Ee=t(o).createContext(null);function ke(e){let{locale:n,children:r}=e,i=we(),l=n?{locale:n,direction:he(n)?"rtl":"ltr"}:i;return t(o).createElement(Ee.Provider,{value:l},r)}function Se(){let e=we();return(0,o.useContext)(Ee)||e}const xe=new WeakMap;function Pe(e){let{locale:t}=Se(),n=(0,o.useMemo)((()=>function(e){let t=xe.get(e);return t||(t=new re(e),xe.set(e,t)),t}(e)),[e]);return(0,o.useMemo)((()=>new oe(t,n)),[t,n])}function Te(e={}){let{locale:t}=Se();return(0,o.useMemo)((()=>new pe(t,e)),[t,e])}let _e=new Map;function Ce(e){let{locale:t}=Se(),n=t+(e?Object.entries(e).sort(((e,t)=>e[0]!!t&&window.matchMedia(e).matches));return(0,o.useEffect)((()=>{if(!t)return;let n=window.matchMedia(e),i=e=>{r(e.matches)};return n.addListener(i),()=>{n.removeListener(i)}}),[t,e]),!m()&&n}function Re(e){return{UNSAFE_getDOMNode:()=>e.current}}function Oe(e){let t=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,(()=>Re(t))),t}function Ae(e,t){let n=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,(()=>function(e,t=e){return{...Re(e),focus(){t.current&&t.current.focus()}}}(n,t))),n}function Fe(e){return(0,o.useMemo)((()=>function(e){return{get current(){return e.current&&e.current.UNSAFE_getDOMNode()}}}(e)),[e])}const ze=t(o).createContext(null);function De(e){let{children:n,matchedBreakpoints:r}=e;return t(o).createElement(ze.Provider,{value:{matchedBreakpoints:r}},n)}function Ke(e){let t=Object.entries(e).sort((([,e],[,t])=>t-e)),n=t.map((([,e])=>`(min-width: ${e}px)`)),r="undefined"!=typeof window&&"function"==typeof window.matchMedia,i=()=>{let e=[];for(let r in n){let i=n[r];window.matchMedia(i).matches&&e.push(t[r][0])}return e.push("base"),e},[l,a]=(0,o.useState)((()=>r?i():["base"]));return(0,o.useEffect)((()=>{if(!r)return;let e=()=>{const e=i();a((t=>t.length!==e.length||t.some(((t,n)=>t!==e[n]))?[...e]:t))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[r]),m()?["base"]:l}function Ve(){return(0,o.useContext)(ze)}ze.displayName="BreakpointContext";const Ue={margin:["margin",Ge],marginStart:[$e("marginLeft","marginRight"),Ge],marginEnd:[$e("marginRight","marginLeft"),Ge],marginTop:["marginTop",Ge],marginBottom:["marginBottom",Ge],marginX:[["marginLeft","marginRight"],Ge],marginY:[["marginTop","marginBottom"],Ge],width:["width",Ge],height:["height",Ge],minWidth:["minWidth",Ge],minHeight:["minHeight",Ge],maxWidth:["maxWidth",Ge],maxHeight:["maxHeight",Ge],isHidden:["display",function(e){return e?"none":void 0}],alignSelf:["alignSelf",nt],justifySelf:["justifySelf",nt],position:["position",et],zIndex:["zIndex",et],top:["top",Ge],bottom:["bottom",Ge],start:[$e("left","right"),Ge],end:[$e("right","left"),Ge],left:["left",Ge],right:["right",Ge],order:["order",et],flex:["flex",function(e){return"boolean"==typeof e?e?"1":void 0:""+e}],flexGrow:["flexGrow",nt],flexShrink:["flexShrink",nt],flexBasis:["flexBasis",nt],gridArea:["gridArea",nt],gridColumn:["gridColumn",nt],gridColumnEnd:["gridColumnEnd",nt],gridColumnStart:["gridColumnStart",nt],gridRow:["gridRow",nt],gridRowEnd:["gridRowEnd",nt],gridRowStart:["gridRowStart",nt]},Be={...Ue,backgroundColor:["backgroundColor",function(e,t=5){return`var(--spectrum-alias-background-color-${e}, ${Ye(e,"background",t)})`}],borderWidth:["borderWidth",Ze],borderStartWidth:[$e("borderLeftWidth","borderRightWidth"),Ze],borderEndWidth:[$e("borderRightWidth","borderLeftWidth"),Ze],borderLeftWidth:["borderLeftWidth",Ze],borderRightWidth:["borderRightWidth",Ze],borderTopWidth:["borderTopWidth",Ze],borderBottomWidth:["borderBottomWidth",Ze],borderXWidth:[["borderLeftWidth","borderRightWidth"],Ze],borderYWidth:[["borderTopWidth","borderBottomWidth"],Ze],borderColor:["borderColor",Xe],borderStartColor:[$e("borderLeftColor","borderRightColor"),Xe],borderEndColor:[$e("borderRightColor","borderLeftColor"),Xe],borderLeftColor:["borderLeftColor",Xe],borderRightColor:["borderRightColor",Xe],borderTopColor:["borderTopColor",Xe],borderBottomColor:["borderBottomColor",Xe],borderXColor:[["borderLeftColor","borderRightColor"],Xe],borderYColor:[["borderTopColor","borderBottomColor"],Xe],borderRadius:["borderRadius",Je],borderTopStartRadius:[$e("borderTopLeftRadius","borderTopRightRadius"),Je],borderTopEndRadius:[$e("borderTopRightRadius","borderTopLeftRadius"),Je],borderBottomStartRadius:[$e("borderBottomLeftRadius","borderBottomRightRadius"),Je],borderBottomEndRadius:[$e("borderBottomRightRadius","borderBottomLeftRadius"),Je],borderTopLeftRadius:["borderTopLeftRadius",Je],borderTopRightRadius:["borderTopRightRadius",Je],borderBottomLeftRadius:["borderBottomLeftRadius",Je],borderBottomRightRadius:["borderBottomRightRadius",Je],padding:["padding",Ge],paddingStart:[$e("paddingLeft","paddingRight"),Ge],paddingEnd:[$e("paddingRight","paddingLeft"),Ge],paddingLeft:["paddingLeft",Ge],paddingRight:["paddingRight",Ge],paddingTop:["paddingTop",Ge],paddingBottom:["paddingBottom",Ge],paddingX:[["paddingLeft","paddingRight"],Ge],paddingY:[["paddingTop","paddingBottom"],Ge],overflow:["overflow",nt]},je={borderWidth:"borderStyle",borderLeftWidth:"borderLeftStyle",borderRightWidth:"borderRightStyle",borderTopWidth:"borderTopStyle",borderBottomWidth:"borderBottomStyle"};function $e(e,t){return n=>"rtl"===n?t:e}const He=/(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/,We=/^\s*\w+\(/,qe=/(static-)?size-\d+|single-line-(height|width)/g;function Ge(e){return"number"==typeof e?e+"px":He.test(e)?e:We.test(e)?e.replace(qe,"var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))"):`var(--spectrum-global-dimension-${e}, var(--spectrum-alias-${e}))`}function Qe(e,t){return Ge(e=rt(e,t))}function Ye(e,t="default",n=5){return n>5?`var(--spectrum-${e}, var(--spectrum-semantic-${e}-color-${t}))`:`var(--spectrum-legacy-color-${e}, var(--spectrum-global-color-${e}, var(--spectrum-semantic-${e}-color-${t})))`}function Xe(e,t=5){return"default"===e?"var(--spectrum-alias-border-color)":`var(--spectrum-alias-border-color-${e}, ${Ye(e,"border",t)})`}function Ze(e){return`var(--spectrum-alias-border-size-${e})`}function Je(e){return`var(--spectrum-alias-border-radius-${e})`}function et(e){return e}function tt(e,t=Ue,n={}){let{UNSAFE_className:r,UNSAFE_style:i,...l}=e,o=Ve(),{direction:a}=Se(),{matchedBreakpoints:s=(null==o?void 0:o.matchedBreakpoints)||["base"]}=n,u=function(e,t,n,r){let i={};for(let l in e){let o=t[l];if(!o||null==e[l])continue;let[a,s]=o;"function"==typeof a&&(a=a(n));let u=s(rt(e[l],r),e.colorVersion);if(Array.isArray(a))for(let e of a)i[e]=u;else i[a]=u}for(let e in je)i[e]&&(i[je[e]]="solid",i.boxSizing="border-box");return i}(e,t,a,s),c={...i,...u};l.className&&console.warn("The className prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes."),l.style&&console.warn("The style prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes.");let d={style:c,className:r};return rt(e.isHidden,s)&&(d.hidden=!0),{styleProps:d}}function nt(e){return e}function rt(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){for(let n=0;nObject.keys(n).concat(Object.keys(r)).reduce(((e,t)=>({...e,[t]:x(n[t]||{},r[t]||{})})),{})),[n,r]);return t(o).createElement(it.Provider,{value:l},i)}function at(e){let{children:n,...r}=e,i=n;return t(o).Children.toArray(n).length<=1&&"function"==typeof n&&(i=t(o).cloneElement(t(o).Children.only(n),r)),t(o).createElement(it.Provider,{value:{}},i)}function st(e,t){let[n,r]=(0,o.useState)(!0);return y((()=>{r(!(!t.current||!t.current.querySelector(e)))}),[r,e,t]),n}function ut(){return!m()&&"undefined"!=typeof window&&window.screen.width<=700}o=l("acw62"),o=l("acw62");let ct="default",dt="",pt=new WeakMap;function ft(e){X()?("default"===ct&&(dt=document.documentElement.style.webkitUserSelect,document.documentElement.style.webkitUserSelect="none"),ct="disabled"):(e instanceof HTMLElement||e instanceof SVGElement)&&(pt.set(e,e.style.userSelect),e.style.userSelect="none")}function mt(e){if(X()){if("disabled"!==ct)return;ct="restoring",setTimeout((()=>{O((()=>{"restoring"===ct&&("none"===document.documentElement.style.webkitUserSelect&&(document.documentElement.style.webkitUserSelect=dt||""),dt="",ct="default")}))}),300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&pt.has(e)){let t=pt.get(e);"none"===e.style.userSelect&&(e.style.userSelect=t),""===e.getAttribute("style")&&e.removeAttribute("style"),pt.delete(e)}}const ht=t(o).createContext(null);function gt(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:l,isDisabled:a,isPressed:s,preventFocusOnPress:u,shouldCancelOnPointerExit:c,allowTextSelectionOnPress:d,ref:p,...f}=function(e){let t=(0,o.useContext)(ht);if(t){let{register:n,...r}=t;e=x(r,e),n()}return K(t,e.ref),e}(e),m=(0,o.useRef)(null);m.current={onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:l,isDisabled:a,shouldCancelOnPointerExit:c};let[h,g]=(0,o.useState)(!1),y=(0,o.useRef)({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:v,removeAllGlobalListeners:b}=A(),w=(0,o.useMemo)((()=>{let e=y.current,t=(t,n)=>{let{onPressStart:r,onPressChange:i,isDisabled:l}=m.current;l||e.didFirePressStart||(r&&r({type:"pressstart",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}),i&&i(!0),e.didFirePressStart=!0,g(!0))},n=(t,n,r=!0)=>{let{onPressEnd:i,onPressChange:l,onPress:o,isDisabled:a}=m.current;e.didFirePressStart&&(e.ignoreClickAfterPress=!0,e.didFirePressStart=!1,i&&i({type:"pressend",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}),l&&l(!1),g(!1),o&&r&&!a&&o({type:"press",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}))},r=(e,t)=>{let{onPressUp:n,isDisabled:r}=m.current;r||n&&n({type:"pressup",pointerType:t,target:e.currentTarget,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey})},i=t=>{e.isPressed&&(e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isPressed=!1,e.isOverTarget=!1,e.activePointerId=null,e.pointerType=null,b(),d||mt(e.target))},l={onKeyDown(n){vt(n.nativeEvent,n.currentTarget)&&n.currentTarget.contains(n.target)?(St(n.target,n.key)&&n.preventDefault(),n.stopPropagation(),e.isPressed||n.repeat||(e.target=n.currentTarget,e.isPressed=!0,t(n,"keyboard"),v(document,"keyup",o,!1))):"Enter"===n.key&&yt(n.currentTarget)&&n.stopPropagation()},onKeyUp(t){vt(t.nativeEvent,t.currentTarget)&&!t.repeat&&t.currentTarget.contains(t.target)&&r(wt(e.target,t),"keyboard")},onClick(i){i&&!i.currentTarget.contains(i.target)||i&&0===i.button&&(i.stopPropagation(),a&&i.preventDefault(),e.ignoreClickAfterPress||e.ignoreEmulatedMouseEvents||"virtual"!==e.pointerType&&!ne(i.nativeEvent)||(a||u||I(i.currentTarget),t(i,"virtual"),r(i,"virtual"),n(i,"virtual")),e.ignoreEmulatedMouseEvents=!1,e.ignoreClickAfterPress=!1)}},o=t=>{if(e.isPressed&&vt(t,e.target)){St(t.target,t.key)&&t.preventDefault(),t.stopPropagation(),e.isPressed=!1;let r=t.target;n(wt(e.target,t),"keyboard",e.target.contains(r)),b(),e.target instanceof HTMLElement&&e.target.contains(r)&&(yt(e.target)||"link"===e.target.getAttribute("role"))&&e.target.click()}};if("undefined"!=typeof PointerEvent){l.onPointerDown=n=>{var r;0===n.button&&n.currentTarget.contains(n.target)&&(0===(r=n.nativeEvent).width&&0===r.height||1===r.width&&1===r.height&&0===r.pressure&&0===r.detail&&"mouse"===r.pointerType?e.pointerType="virtual":(kt(n.currentTarget)&&n.preventDefault(),e.pointerType=n.pointerType,n.stopPropagation(),e.isPressed||(e.isPressed=!0,e.isOverTarget=!0,e.activePointerId=n.pointerId,e.target=n.currentTarget,a||u||I(n.currentTarget),d||ft(e.target),t(n,e.pointerType),v(document,"pointermove",o,!1),v(document,"pointerup",s,!1),v(document,"pointercancel",c,!1))))},l.onMouseDown=e=>{e.currentTarget.contains(e.target)&&0===e.button&&(kt(e.currentTarget)&&e.preventDefault(),e.stopPropagation())},l.onPointerUp=t=>{t.currentTarget.contains(t.target)&&"virtual"!==e.pointerType&&0===t.button&&Et(t,t.currentTarget)&&r(t,e.pointerType||t.pointerType)};let o=r=>{r.pointerId===e.activePointerId&&(Et(r,e.target)?e.isOverTarget||(e.isOverTarget=!0,t(wt(e.target,r),e.pointerType)):e.isOverTarget&&(e.isOverTarget=!1,n(wt(e.target,r),e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(r)))},s=t=>{t.pointerId===e.activePointerId&&e.isPressed&&0===t.button&&(Et(t,e.target)?n(wt(e.target,t),e.pointerType):e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isPressed=!1,e.isOverTarget=!1,e.activePointerId=null,e.pointerType=null,b(),d||mt(e.target))},c=e=>{i(e)};l.onDragStart=e=>{e.currentTarget.contains(e.target)&&i(e)}}else{l.onMouseDown=n=>{0===n.button&&n.currentTarget.contains(n.target)&&(kt(n.currentTarget)&&n.preventDefault(),n.stopPropagation(),e.ignoreEmulatedMouseEvents||(e.isPressed=!0,e.isOverTarget=!0,e.target=n.currentTarget,e.pointerType=ne(n.nativeEvent)?"virtual":"mouse",a||u||I(n.currentTarget),t(n,e.pointerType),v(document,"mouseup",o,!1)))},l.onMouseEnter=n=>{n.currentTarget.contains(n.target)&&(n.stopPropagation(),e.isPressed&&!e.ignoreEmulatedMouseEvents&&(e.isOverTarget=!0,t(n,e.pointerType)))},l.onMouseLeave=t=>{t.currentTarget.contains(t.target)&&(t.stopPropagation(),e.isPressed&&!e.ignoreEmulatedMouseEvents&&(e.isOverTarget=!1,n(t,e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(t)))},l.onMouseUp=t=>{t.currentTarget.contains(t.target)&&(e.ignoreEmulatedMouseEvents||0!==t.button||r(t,e.pointerType))};let o=t=>{0===t.button&&(e.isPressed=!1,b(),e.ignoreEmulatedMouseEvents?e.ignoreEmulatedMouseEvents=!1:(Et(t,e.target)?n(wt(e.target,t),e.pointerType):e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isOverTarget=!1))};l.onTouchStart=n=>{if(!n.currentTarget.contains(n.target))return;n.stopPropagation();let r=function(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}(n.nativeEvent);r&&(e.activePointerId=r.identifier,e.ignoreEmulatedMouseEvents=!0,e.isOverTarget=!0,e.isPressed=!0,e.target=n.currentTarget,e.pointerType="touch",a||u||I(n.currentTarget),d||ft(e.target),t(n,e.pointerType),v(window,"scroll",s,!0))},l.onTouchMove=r=>{if(!r.currentTarget.contains(r.target))return;if(r.stopPropagation(),!e.isPressed)return;let l=bt(r.nativeEvent,e.activePointerId);l&&Et(l,r.currentTarget)?e.isOverTarget||(e.isOverTarget=!0,t(r,e.pointerType)):e.isOverTarget&&(e.isOverTarget=!1,n(r,e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(r))},l.onTouchEnd=t=>{if(!t.currentTarget.contains(t.target))return;if(t.stopPropagation(),!e.isPressed)return;let i=bt(t.nativeEvent,e.activePointerId);i&&Et(i,t.currentTarget)?(r(t,e.pointerType),n(t,e.pointerType)):e.isOverTarget&&n(t,e.pointerType,!1),e.isPressed=!1,e.activePointerId=null,e.isOverTarget=!1,e.ignoreEmulatedMouseEvents=!0,d||mt(e.target),b()},l.onTouchCancel=t=>{t.currentTarget.contains(t.target)&&(t.stopPropagation(),e.isPressed&&i(t))};let s=t=>{e.isPressed&&t.target.contains(e.target)&&i({currentTarget:e.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};l.onDragStart=e=>{e.currentTarget.contains(e.target)&&i(e)}}return l}),[v,a,u,b,d]);return(0,o.useEffect)((()=>()=>{d||mt(y.current.target)}),[d]),{isPressed:s||h,pressProps:x(f,w)}}function yt(e){return"A"===e.tagName&&e.hasAttribute("href")}function vt(e,t){const{key:n,code:r}=e,i=t,l=i.getAttribute("role");return!("Enter"!==n&&" "!==n&&"Spacebar"!==n&&"Space"!==r||i instanceof HTMLInputElement&&!Pt(i,n)||i instanceof HTMLTextAreaElement||i.isContentEditable||yt(i)&&("button"!==l||"Enter"===n)||"link"===l&&"Enter"!==n)}function bt(e,t){const n=e.changedTouches;for(let e=0;el.right||l.left>i.right||i.top>l.bottom||l.top>i.bottom);var i,l}function kt(e){return!(e instanceof HTMLElement&&e.draggable)}function St(e,t){return e instanceof HTMLInputElement?!Pt(e,t):!(e instanceof HTMLButtonElement)||"submit"!==e.type}ht.displayName="PressResponderContext";const xt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Pt(e,t){return"checkbox"===e.type||"radio"===e.type?" "===t:xt.has(e.type)}t(o).forwardRef((({children:e,...n},r)=>{let i=(0,o.useRef)();r=null!=r?r:i;let{pressProps:l}=gt({...n,ref:r}),a=t(o).Children.only(e);return t(o).cloneElement(a,{ref:r,...x(a.props,l)})}));const Tt=t(o).forwardRef((({children:e,...n},r)=>{let i=(0,o.useRef)(!1),l=(0,o.useContext)(ht),a=x(l||{},{...n,ref:r||(null==l?void 0:l.ref),register(){i.current=!0,l&&l.register()}});return K(l,r),(0,o.useEffect)((()=>{i.current||console.warn("A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with component.")}),[]),t(o).createElement(ht.Provider,{value:a},e)}));class _t{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(e,t){this.nativeEvent=t,this.target=t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget,this.bubbles=t.bubbles,this.cancelable=t.cancelable,this.defaultPrevented=t.defaultPrevented,this.eventPhase=t.eventPhase,this.isTrusted=t.isTrusted,this.timeStamp=t.timeStamp,this.type=e}}function Ct(e){let t=(0,o.useRef)({isFocused:!1,onBlur:e,observer:null});return t.current.onBlur=e,y((()=>{const e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]),(0,o.useCallback)((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let n=e.target,r=e=>{var r,i;t.current.isFocused=!1,n.disabled&&(null===(i=(r=t.current).onBlur)||void 0===i||i.call(r,new _t("blur",e))),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};n.addEventListener("focusout",r,{once:!0}),t.current.observer=new MutationObserver((()=>{t.current.isFocused&&n.disabled&&(t.current.observer.disconnect(),n.dispatchEvent(new FocusEvent("blur")),n.dispatchEvent(new FocusEvent("focusout",{bubbles:!0})))})),t.current.observer.observe(n,{attributes:!0,attributeFilter:["disabled"]})}}),[])}function It(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const l=(0,o.useCallback)((e=>{if(e.target===e.currentTarget)return r&&r(e),i&&i(!1),!0}),[r,i]),a=Ct(l),s=(0,o.useCallback)((e=>{e.target===e.currentTarget&&(n&&n(e),i&&i(!0),a(e))}),[i,n,a]);return{focusProps:{onFocus:!t&&(n||i||r)?s:void 0,onBlur:t||!r&&!i?null:l}}}let Mt=null,Lt=new Set,Nt=!1,Rt=!1,Ot=!1;const At={Tab:!0,Escape:!0};function Ft(e,t){for(let n of Lt)n(e,t)}function zt(e){Rt=!0,function(e){return!(e.metaKey||!Y()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key)}(e)&&(Mt="keyboard",Ft("keyboard",e))}function Dt(e){Mt="pointer","mousedown"!==e.type&&"pointerdown"!==e.type||(Rt=!0,Ft("pointer",e))}function Kt(e){ne(e)&&(Rt=!0,Mt="virtual")}function Vt(e){e.target!==window&&e.target!==document&&(Rt||Ot||(Mt="virtual",Ft("virtual",e)),Rt=!1,Ot=!1)}function Ut(){Rt=!1,Ot=!0}function Bt(){if("undefined"==typeof window||Nt)return;let e=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(){Rt=!0,e.apply(this,arguments)},document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",zt,!0),document.addEventListener("click",Kt,!0),window.addEventListener("focus",Vt,!0),window.addEventListener("blur",Ut,!1),"undefined"!=typeof PointerEvent?(document.addEventListener("pointerdown",Dt,!0),document.addEventListener("pointermove",Dt,!0),document.addEventListener("pointerup",Dt,!0)):(document.addEventListener("mousedown",Dt,!0),document.addEventListener("mousemove",Dt,!0),document.addEventListener("mouseup",Dt,!0)),Nt=!0}function jt(){return"pointer"!==Mt}function $t(){return Mt}function Ht(){Bt();let[e,t]=(0,o.useState)(Mt);return(0,o.useEffect)((()=>{let e=()=>{t(Mt)};return Lt.add(e),()=>{Lt.delete(e)}}),[]),e}function Wt(e,t,n){Bt(),(0,o.useEffect)((()=>{let t=(t,r)=>{(function(e,t,n){return!(e&&"keyboard"===t&&n instanceof KeyboardEvent&&!At[n.key])})(null==n?void 0:n.isTextInput,t,r)&&e(jt())};return Lt.add(t),()=>{Lt.delete(t)}}),t)}function qt(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:i}=e,l=(0,o.useRef)({isFocusWithin:!1}),a=(0,o.useCallback)((e=>{l.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(l.current.isFocusWithin=!1,n&&n(e),i&&i(!1))}),[n,i,l]),s=Ct(a),u=(0,o.useCallback)((e=>{l.current.isFocusWithin||(r&&r(e),i&&i(!0),l.current.isFocusWithin=!0,s(e))}),[r,i,s]);return t?{focusWithinProps:{onFocus:null,onBlur:null}}:{focusWithinProps:{onFocus:u,onBlur:a}}}"undefined"!=typeof document&&("loading"!==document.readyState?Bt():document.addEventListener("DOMContentLoaded",Bt));let Gt=!1,Qt=0;function Yt(){Gt=!0,setTimeout((()=>{Gt=!1}),50)}function Xt(e){"touch"===e.pointerType&&Yt()}function Zt(){if("undefined"!=typeof document)return"undefined"!=typeof PointerEvent?document.addEventListener("pointerup",Xt):document.addEventListener("touchend",Yt),Qt++,()=>{Qt--,Qt>0||("undefined"!=typeof PointerEvent?document.removeEventListener("pointerup",Xt):document.removeEventListener("touchend",Yt))}}function Jt(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:i}=e,[l,a]=(0,o.useState)(!1),s=(0,o.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;(0,o.useEffect)(Zt,[]);let{hoverProps:u,triggerHoverEnd:c}=(0,o.useMemo)((()=>{let e=(e,r)=>{if(s.pointerType=r,i||"touch"===r||s.isHovered||!e.currentTarget.contains(e.target))return;s.isHovered=!0;let l=e.currentTarget;s.target=l,t&&t({type:"hoverstart",target:l,pointerType:r}),n&&n(!0),a(!0)},l=(e,t)=>{if(s.pointerType="",s.target=null,"touch"===t||!s.isHovered)return;s.isHovered=!1;let i=e.currentTarget;r&&r({type:"hoverend",target:i,pointerType:t}),n&&n(!1),a(!1)},o={};return"undefined"!=typeof PointerEvent?(o.onPointerEnter=t=>{Gt&&"mouse"===t.pointerType||e(t,t.pointerType)},o.onPointerLeave=e=>{!i&&e.currentTarget.contains(e.target)&&l(e,e.pointerType)}):(o.onTouchStart=()=>{s.ignoreEmulatedMouseEvents=!0},o.onMouseEnter=t=>{s.ignoreEmulatedMouseEvents||Gt||e(t,"mouse"),s.ignoreEmulatedMouseEvents=!1},o.onMouseLeave=e=>{!i&&e.currentTarget.contains(e.target)&&l(e,"mouse")}),{hoverProps:o,triggerHoverEnd:l}}),[t,n,r,i,s]);return(0,o.useEffect)((()=>{i&&c({currentTarget:s.target},s.pointerType)}),[i]),{hoverProps:u,isHovered:l}}function en(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:i}=e,l=(0,o.useRef)({isPointerDown:!1,ignoreEmulatedMouseEvents:!1,onInteractOutside:n,onInteractOutsideStart:i}).current;l.onInteractOutside=n,l.onInteractOutsideStart=i,(0,o.useEffect)((()=>{if(r)return;let e=e=>{tn(e,t)&&l.onInteractOutside&&(l.onInteractOutsideStart&&l.onInteractOutsideStart(e),l.isPointerDown=!0)};if("undefined"!=typeof PointerEvent){let n=e=>{l.isPointerDown&&l.onInteractOutside&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("pointerup",n,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("pointerup",n,!0)}}{let n=e=>{l.ignoreEmulatedMouseEvents?l.ignoreEmulatedMouseEvents=!1:l.isPointerDown&&l.onInteractOutside&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))},r=e=>{l.ignoreEmulatedMouseEvents=!0,l.onInteractOutside&&l.isPointerDown&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))};return document.addEventListener("mousedown",e,!0),document.addEventListener("mouseup",n,!0),document.addEventListener("touchstart",e,!0),document.addEventListener("touchend",r,!0),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("mouseup",n,!0),document.removeEventListener("touchstart",e,!0),document.removeEventListener("touchend",r,!0)}}}),[t,l,r])}function tn(e,t){if(e.button>0)return!1;if(e.target){const t=e.target.ownerDocument;if(!t||!t.documentElement.contains(e.target))return!1}return t.current&&!t.current.contains(e.target)}function nn(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented:()=>n.isDefaultPrevented(),stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function rn(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:nn(e.onKeyDown),onKeyUp:nn(e.onKeyUp)}}}const ln=500;function on(e){let{isDisabled:t,onLongPressStart:n,onLongPressEnd:r,onLongPress:i,threshold:l=ln,accessibilityDescription:a}=e;const s=(0,o.useRef)(null);let{addGlobalListener:u,removeGlobalListener:c}=A(),{pressProps:d}=gt({isDisabled:t,onPressStart(e){if(("mouse"===e.pointerType||"touch"===e.pointerType)&&(n&&n({...e,type:"longpressstart"}),s.current=setTimeout((()=>{e.target.dispatchEvent(new PointerEvent("pointercancel",{bubbles:!0})),i&&i({...e,type:"longpress"}),s.current=null}),l),"touch"===e.pointerType)){let t=e=>{e.preventDefault()};u(e.target,"contextmenu",t,{once:!0}),u(window,"pointerup",(()=>{setTimeout((()=>{c(e.target,"contextmenu",t)}),30)}),{once:!0})}},onPressEnd(e){s.current&&clearTimeout(s.current),!r||"mouse"!==e.pointerType&&"touch"!==e.pointerType||r({...e,type:"longpressend"})}});return{longPressProps:x(d,q(i&&!t?a:null))}}function an(e){if("virtual"===$t()){let t=document.activeElement;O((()=>{document.activeElement===t&&document.contains(e)&&I(e)}))}else I(e)}function sn(e,t){return"#comment"!==e.nodeName&&function(e){if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;let{display:t,visibility:n}=e.style,r="none"!==t&&"hidden"!==n&&"collapse"!==n;if(r){const{getComputedStyle:t}=e.ownerDocument.defaultView;let{display:n,visibility:i}=t(e);r="none"!==n&&"hidden"!==i&&"collapse"!==i}return r}(e)&&function(e,t){return!e.hasAttribute("hidden")&&("DETAILS"!==e.nodeName||!t||"SUMMARY"===t.nodeName||e.hasAttribute("open"))}(e,t)&&(!e.parentElement||sn(e.parentElement,e))}const un=t(o).createContext(null);let cn=null;function dn(e){let{children:n,contain:r,restoreFocus:i,autoFocus:l}=e,a=(0,o.useRef)(),s=(0,o.useRef)(),u=(0,o.useRef)([]),c=(0,o.useContext)(un);var d;let p=null!==(d=null==c?void 0:c.scopeRef)&&void 0!==d?d:null,f=(0,o.useMemo)((()=>cn&&Tn.getTreeNode(cn)&&!wn(cn,p)?cn:p),[p]);y((()=>{let e=a.current.nextSibling,t=[];for(;e&&e!==s.current;)t.push(e),e=e.nextSibling;u.current=t}),[n,f]),Tn.getTreeNode(f)&&!Tn.getTreeNode(u)&&Tn.addTreeNode(u,f),Tn.getTreeNode(u).contain=r,function(e,t,n){y((()=>{if(t||n)return;let r=e.current,i=t=>{let n=t.target;vn(n,e.current)?cn=e:yn(n)||(cn=null)};return document.addEventListener("focusin",i,!1),r.forEach((e=>e.addEventListener("focusin",i,!1))),()=>{document.removeEventListener("focusin",i,!1),r.forEach((e=>e.removeEventListener("focusin",i,!1)))}}),[e,t,n])}(u,i,r),function(e,t){let n=(0,o.useRef)(),r=(0,o.useRef)(null);y((()=>{let i=e.current;if(!t)return void(r.current&&(cancelAnimationFrame(r.current),r.current=null));let l=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!gn(e))return;let n=document.activeElement,r=e.current;if(!vn(n,r))return;let i=Sn(hn(r),{tabbable:!0},r);i.currentNode=n;let l=t.shiftKey?i.previousNode():i.nextNode();l||(i.currentNode=t.shiftKey?r[r.length-1].nextElementSibling:r[0].previousElementSibling,l=t.shiftKey?i.previousNode():i.nextNode()),t.preventDefault(),l&&En(l,!0)},o=t=>{cn&&!wn(cn,e)||!vn(t.target,e.current)?gn(e)&&!bn(t.target,e)?n.current?n.current.focus():cn&&kn(cn.current):gn(e)&&(n.current=t.target):(cn=e,n.current=t.target)},a=t=>{r.current=requestAnimationFrame((()=>{gn(e)&&!bn(document.activeElement,e)&&(cn=e,document.body.contains(t.target)?(n.current=t.target,n.current.focus()):cn&&kn(cn.current))}))};return document.addEventListener("keydown",l,!1),document.addEventListener("focusin",o,!1),i.forEach((e=>e.addEventListener("focusin",o,!1))),i.forEach((e=>e.addEventListener("focusout",a,!1))),()=>{document.removeEventListener("keydown",l,!1),document.removeEventListener("focusin",o,!1),i.forEach((e=>e.removeEventListener("focusin",o,!1))),i.forEach((e=>e.removeEventListener("focusout",a,!1)))}}),[e,t]),(0,o.useEffect)((()=>()=>{r.current&&cancelAnimationFrame(r.current)}),[r])}(u,r),function(e,t,n){const r=(0,o.useRef)("undefined"!=typeof document?document.activeElement:null);y((()=>{let r=e.current;if(!t||n)return;let i=()=>{cn&&!wn(cn,e)||(cn=e)};return document.addEventListener("focusin",i,!1),r.forEach((e=>e.addEventListener("focusin",i,!1))),()=>{document.removeEventListener("focusin",i,!1),r.forEach((e=>e.removeEventListener("focusin",i,!1)))}}),[e,n]),y((()=>{if(!t)return;Tn.getTreeNode(e).nodeToRestore=r.current;let i=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey)return;let n=document.activeElement;if(!vn(n,e.current))return;let r=Tn.getTreeNode(e).nodeToRestore,i=Sn(document.body,{tabbable:!0});i.currentNode=n;let l=t.shiftKey?i.previousNode():i.nextNode();if(document.body.contains(r)&&r!==document.body||(r=null,Tn.getTreeNode(e).nodeToRestore=null),(!l||!vn(l,e.current))&&r){i.currentNode=r;do{l=t.shiftKey?i.previousNode():i.nextNode()}while(vn(l,e.current));t.preventDefault(),t.stopPropagation(),l?En(l,!0):yn(r)?En(r,!0):n.blur()}};return n||document.addEventListener("keydown",i,!0),()=>{n||document.removeEventListener("keydown",i,!0);let r=Tn.getTreeNode(e).nodeToRestore;if(t&&r&&(vn(document.activeElement,e.current)||document.activeElement===document.body&&function(e){let t=Tn.getTreeNode(cn);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(null==t?void 0:t.scopeRef)===e}(e))){let t=Tn.clone();requestAnimationFrame((()=>{if(document.activeElement===document.body){let n=t.getTreeNode(e);for(;n;){if(n.nodeToRestore&&document.body.contains(n.nodeToRestore))return void En(n.nodeToRestore);n=n.parent}for(n=t.getTreeNode(e);n;){if(n.scopeRef&&Tn.getTreeNode(n.scopeRef))return void kn(n.scopeRef.current,!0);n=n.parent}}}))}}}),[e,t,n])}(u,i,r),function(e,n){const r=t(o).useRef(n);(0,o.useEffect)((()=>{r.current&&(cn=e,vn(document.activeElement,cn.current)||kn(e.current)),r.current=!1}),[e])}(u,l),y((()=>{if(u)return()=>{let e=Tn.getTreeNode(u).parent.scopeRef;u!==cn&&!wn(u,cn)||e&&!Tn.getTreeNode(e)||(cn=e),Tn.removeTreeNode(u)}}),[u,f]);let m=function(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:l,accept:o}=t,a=r||document.activeElement,s=n[0].previousElementSibling,u=Sn(hn(n),{tabbable:i,accept:o},n);u.currentNode=vn(a,n)?a:s;let c=u.nextNode();return!c&&l&&(u.currentNode=s,c=u.nextNode()),c&&En(c,!0),c},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:l,accept:o}=t,a=r||document.activeElement,s=n[n.length-1].nextElementSibling,u=Sn(hn(n),{tabbable:i,accept:o},n);u.currentNode=vn(a,n)?a:s;let c=u.previousNode();return!c&&l&&(u.currentNode=s,c=u.previousNode()),c&&En(c,!0),c},focusFirst(t={}){let n=e.current,{tabbable:r,accept:i}=t,l=Sn(hn(n),{tabbable:r,accept:i},n);l.currentNode=n[0].previousElementSibling;let o=l.nextNode();return o&&En(o,!0),o},focusLast(t={}){let n=e.current,{tabbable:r,accept:i}=t,l=Sn(hn(n),{tabbable:r,accept:i},n);l.currentNode=n[n.length-1].nextElementSibling;let o=l.previousNode();return o&&En(o,!0),o}}}(u);return t(o).createElement(un.Provider,{value:{scopeRef:u,focusManager:m}},t(o).createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:a}),n,t(o).createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:s}))}const pn=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[contenteditable]"],fn=pn.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";pn.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const mn=pn.join(':not([hidden]):not([tabindex="-1"]),');function hn(e){return e[0].parentElement}function gn(e){let t=Tn.getTreeNode(cn);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function yn(e){return bn(e)}function vn(e,t){return t.some((t=>t.contains(e)))}function bn(e,t=null){for(let{scopeRef:n}of Tn.traverse(Tn.getTreeNode(t)))if(vn(e,n.current))return!0;return!1}function wn(e,t){var n;let r=null===(n=Tn.getTreeNode(t))||void 0===n?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function En(e,t=!1){if(null==e||t){if(null!=e)try{e.focus()}catch(e){}}else try{an(e)}catch(e){}}function kn(e,t=!0){let n=e[0].previousElementSibling,r=Sn(hn(e),{tabbable:t},e);r.currentNode=n;let i=r.nextNode();t&&!i&&(r=Sn(hn(e),{tabbable:!1},e),r.currentNode=n,i=r.nextNode()),En(i)}function Sn(e,t,n){let r=(null==t?void 0:t.tabbable)?mn:fn,i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(e){var i;return(null==t||null===(i=t.from)||void 0===i?void 0:i.contains(e))?NodeFilter.FILTER_REJECT:!e.matches(r)||!sn(e)||n&&!vn(e,n)||(null==t?void 0:t.accept)&&!t.accept(e)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT}});return(null==t?void 0:t.from)&&(i.currentNode=t.from),i}class xn{get size(){return this.fastMap.size}getTreeNode(e){return this.fastMap.get(e)}addTreeNode(e,t,n){let r=this.fastMap.get(null!=t?t:null),i=new Pn({scopeRef:e});r.addChild(i),i.parent=r,this.fastMap.set(e,i),n&&(i.nodeToRestore=n)}removeTreeNode(e){if(null===e)return;let t=this.fastMap.get(e),n=t.parent;for(let e of this.traverse())e!==t&&t.nodeToRestore&&e.nodeToRestore&&t.scopeRef.current&&vn(e.nodeToRestore,t.scopeRef.current)&&(e.nodeToRestore=t.nodeToRestore);let r=t.children;n.removeChild(t),r.length>0&&r.forEach((e=>n.addChild(e))),this.fastMap.delete(t.scopeRef)}*traverse(e=this.root){if(null!=e.scopeRef&&(yield e),e.children.length>0)for(let t of e.children)yield*this.traverse(t)}clone(){let e=new xn;for(let t of this.traverse())e.addTreeNode(t.scopeRef,t.parent.scopeRef,t.nodeToRestore);return e}constructor(){ae(this,"fastMap",new Map),this.root=new Pn({scopeRef:null}),this.fastMap.set(null,this.root)}}class Pn{addChild(e){this.children.push(e),e.parent=this}removeChild(e){this.children.splice(this.children.indexOf(e),1),e.parent=void 0}constructor(e){ae(this,"children",[]),ae(this,"contain",!1),this.scopeRef=e.scopeRef}}let Tn=new xn;function _n(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,i=(0,o.useRef)({isFocused:!1,isFocusVisible:t||jt()}),[l,a]=(0,o.useState)(!1),[s,u]=(0,o.useState)((()=>i.current.isFocused&&i.current.isFocusVisible)),c=(0,o.useCallback)((()=>u(i.current.isFocused&&i.current.isFocusVisible)),[]),d=(0,o.useCallback)((e=>{i.current.isFocused=e,a(e),c()}),[c]);Wt((e=>{i.current.isFocusVisible=e,c()}),[],{isTextInput:n});let{focusProps:p}=It({isDisabled:r,onFocusChange:d}),{focusWithinProps:f}=qt({isDisabled:!r,onFocusWithinChange:d});return{isFocused:l,isFocusVisible:i.current.isFocused&&s,focusProps:r?f:p}}function Cn(e){let{children:n,focusClass:r,focusRingClass:i}=e,{isFocused:l,isFocusVisible:a,focusProps:s}=_n(e),u=t(o).Children.only(n);return t(o).cloneElement(u,x(u.props,{...s,className:g({[r||""]:l,[i||""]:a})}))}let In=t(o).createContext(null);t(o).forwardRef((function(e,n){let{children:r,...i}=e,l={...i,ref:n};return t(o).createElement(In.Provider,{value:l},r)}));function Mn(e,t){let{focusProps:n}=It(e),{keyboardProps:r}=rn(e),i=x(n,r),l=function(e){let t=(0,o.useContext)(In)||{};K(t,e);let{ref:n,...r}=t;return r}(t),a=e.isDisabled?{}:l,s=(0,o.useRef)(e.autoFocus);return(0,o.useEffect)((()=>{s.current&&t.current&&an(t.current),s.current=!1}),[t]),{focusableProps:x({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},a)}}o=l("acw62");const Ln=(0,(o=l("acw62")).forwardRef)((function(e,n){e=lt(e,"text");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("span",{...C(i),...l,ref:a},r)}));(0,o.forwardRef)((function(e,n){e=lt(e,"heading");let{children:r,level:i=3,...l}=e,{styleProps:a}=tt(l),s=Oe(n),u=`h${i}`;return t(o).createElement(u,{...C(l),...a,ref:s},r)}));(0,o.forwardRef)((function(e,n){e=lt(e,"keyboard");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("kbd",{...C(i),...l,dir:"ltr",ref:a},r)}));function Nn(e,t){let n,{elementType:r="button",isDisabled:i,onPress:l,onPressStart:o,onPressEnd:a,onPressChange:s,preventFocusOnPress:u,allowFocusWhenDisabled:c,onClick:d,href:p,target:f,rel:m,type:h="button"}=e;n="button"===r?{type:h,disabled:i}:{role:"button",tabIndex:i?void 0:0,href:"a"===r&&i?void 0:p,target:"a"===r?f:void 0,type:"input"===r?h:void 0,disabled:"input"===r?i:void 0,"aria-disabled":i&&"input"!==r?i:void 0,rel:"a"===r?m:void 0};let{pressProps:g,isPressed:y}=gt({onPressStart:o,onPressEnd:a,onPressChange:s,onPress:l,isDisabled:i,preventFocusOnPress:u,ref:t}),{focusableProps:v}=Mn(e,t);c&&(v.tabIndex=i?-1:v.tabIndex);let b=x(v,g,C(e,{labelable:!0}));return{isPressed:y,buttonProps:x(n,b,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:e=>{d&&(d(e),console.warn("onClick is deprecated, please use onPress"))}})}}function Rn(e,t,n){const{isSelected:r}=t,{isPressed:i,buttonProps:l}=Nn({...e,onPress:S(t.toggle,e.onPress)},n);return{isPressed:i,buttonProps:x(l,{"aria-pressed":r})}}o=l("acw62"),o=l("acw62");const On={border:0,clip:"rect(0 0 0 0)",clipPath:"inset(50%)",height:1,margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:1,whiteSpace:"nowrap"};function An(e={}){let{style:t,isFocusable:n}=e,[r,i]=(0,o.useState)(!1),{focusWithinProps:l}=qt({isDisabled:!n,onFocusWithinChange:e=>i(e)});return{visuallyHiddenProps:{...l,style:(0,o.useMemo)((()=>r?t:t?{...On,...t}:On),[r])}}}function Fn(e){let{children:n,elementType:r="div",isFocusable:i,style:l,...a}=e,{visuallyHiddenProps:s}=An(e);return t(o).createElement(r,x(a,s),n)}function zn(e){return e&&e.__esModule?e.default:e}const Dn={top:"top",bottom:"top",left:"left",right:"left"},Kn={top:"bottom",bottom:"top",left:"right",right:"left"},Vn={top:"left",left:"top"},Un={top:"height",left:"width"},Bn={};let jn="undefined"!=typeof window&&window.visualViewport;function $n(e,t,n,r,i){let l=r.scroll[e],o=r[Un[e]],a=t-i-l,s=t+i-l+n;return a<0?-a:s>o?Math.max(o-s,-a):0}function Hn(e){if(Bn[e])return Bn[e];let[t,n]=e.split(" "),r=Dn[t]||"right",i=Vn[r];Dn[n]||(n="center");let l=Un[r],o=Un[i];return Bn[e]={placement:t,crossPlacement:n,axis:r,crossAxis:i,size:l,crossSize:o},Bn[e]}function Wn(e,t,n,r,i,l,o,a){let{placement:s,crossPlacement:u,axis:c,crossAxis:d,size:p,crossSize:f}=r,m={};m[d]=e[d],"center"===u?m[d]+=(e[f]-n[f])/2:u!==d&&(m[d]+=e[f]-n[f]),m[d]+=l;let h=e[d]+e[f]/2-n[f],g=e[d]+e[f]/2;if(m[d]=Math.min(Math.max(h,m[d]),g),s===c){const n=a?o[p]:t[p];m[Kn[c]]=Math.floor(n-e[c]+i)}else m[c]=Math.floor(e[c]+e[p]+i);return m}function qn(e,t,n,r,i,l){let{placement:o,axis:a,size:s}=l;return o===a?Math.max(0,n[a]-e[a]-e.scroll[a]+t[a]-r[a]-r[Kn[a]]-i):Math.max(0,e[s]+e[a]+e.scroll[a]-t[a]-n[a]-n[s]-r[a]-r[Kn[a]]-i)}function Gn(e,t,n,r,i,l,o,a,s,u,c,d,p){let f=Hn(e),{size:m,crossAxis:h,crossSize:g,placement:y,crossPlacement:v}=f,b=Wn(t,a,n,f,u,c,s,d),w=u,E=qn(a,s,t,i,l+u,f);if(o&&r[m]>E){let e=Hn(`${Kn[y]} ${v}`),r=Wn(t,a,n,e,u,c,s,d);qn(a,s,t,i,l+u,e)>E&&(f=e,b=r,w=u)}let k=$n(h,b[h],n[g],a,l);b[h]+=k;let S=function(e,t,n,r,i,l){return null!=e.top?Math.max(0,t.height+t.top+t.scroll.top-(n.top+e.top)-(i.top+i.bottom+l)):Math.max(0,r.top+n.top-(t.top+t.scroll.top)-(i.top+i.bottom+l))}(b,a,s,t,i,l);p&&p{!1!==p&&f&&r.current&&n.current&&i.current&&u&&v(Qn({placement:tr(l,t),overlayNode:r.current,targetNode:n.current,scrollNode:i.current,padding:a,shouldFlip:s,boundaryElement:u,offset:c,crossOffset:d,maxHeight:h}))}),b);var E;y(w,b),y((()=>(window.addEventListener("resize",E,!1),()=>{window.removeEventListener("resize",E,!1)})),[E=w]),D({ref:r,onResize:w});let k=(0,o.useRef)(!1);y((()=>{let e,t=()=>{k.current=!0,clearTimeout(e),e=setTimeout((()=>{k.current=!1}),500),w()};return null==Jn||Jn.addEventListener("resize",t),()=>{null==Jn||Jn.removeEventListener("resize",t)}}),[w]);let S=(0,o.useCallback)((()=>{k.current||m()}),[m,k]);return function(e){let{triggerRef:t,isOpen:n,onClose:r}=e;(0,o.useEffect)((()=>{if(!n||null===r)return;let e=e=>{let n=e.target;if(!t.current||n instanceof Node&&!n.contains(t.current))return;let i=r||Zn.get(t.current);i&&i()};return window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("scroll",e,!0)}}),[n,r,t])}({triggerRef:n,isOpen:f,onClose:m&&S}),{overlayProps:{style:{position:"absolute",zIndex:1e5,...g.position,maxHeight:g.maxHeight}},placement:g.placement,arrowProps:{style:{left:g.arrowOffsetLeft,top:g.arrowOffsetTop}},updatePosition:w}}function tr(e,t){return"rtl"===t?e.replace("start","right").replace("end","left"):e.replace("start","left").replace("end","right")}const nr=[];function rr(e,t){let{onClose:n,shouldCloseOnBlur:r,isOpen:i,isDismissable:l=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:s}=e;(0,o.useEffect)((()=>(i&&nr.push(t),()=>{let e=nr.indexOf(t);e>=0&&nr.splice(e,1)})),[i,t]);let u=()=>{nr[nr.length-1]===t&&n&&n()};en({ref:t,onInteractOutside:l?e=>{s&&!s(e.target)||(nr[nr.length-1]===t&&(e.stopPropagation(),e.preventDefault()),u())}:null,onInteractOutsideStart:e=>{s&&!s(e.target)||nr[nr.length-1]===t&&(e.stopPropagation(),e.preventDefault())}});let{focusWithinProps:c}=qt({isDisabled:!r,onBlurWithin:e=>{e.relatedTarget&&bn(e.relatedTarget,cn)||(s&&!s(e.relatedTarget)||n())}});return{overlayProps:{onKeyDown:e=>{"Escape"!==e.key||a||(e.stopPropagation(),e.preventDefault(),u())},...c},underlayProps:{onPointerDown:e=>{e.target===e.currentTarget&&e.preventDefault()}}}}function ir(e,t,n){let r,{type:i}=e,{isOpen:l}=t;(0,o.useEffect)((()=>{n&&n.current&&Zn.set(n.current,t.close)})),"menu"===i?r=!0:"listbox"===i&&(r="listbox");let a=w();return{triggerProps:{"aria-haspopup":r,"aria-expanded":l,"aria-controls":l?a:null,onPress:t.toggle},overlayProps:{id:a}}}const lr="undefined"!=typeof window&&window.visualViewport,or=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let ar,sr=0;function ur(e={}){let{isDisabled:t}=e;y((()=>{if(!t)return sr++,1===sr&&(ar=X()?function(){let e,t=0,n=n=>{e=V(n.target),e===document.documentElement&&e===document.body||(t=n.changedTouches[0].pageY)},r=n=>{if(e===document.documentElement||e===document.body)return void n.preventDefault();let r=n.changedTouches[0].pageY,i=e.scrollTop,l=e.scrollHeight-e.clientHeight;(i<=0&&r>t||i>=l&&r{let t=e.target;fr(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame((()=>{t.style.transform=""})))},l=e=>{let t=e.target;fr(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame((()=>{t.style.transform="",lr&&(lr.height{pr(t)})):lr.addEventListener("resize",(()=>pr(t)),{once:!0}))})))},o=()=>{window.scrollTo(0,0)},a=window.pageXOffset,s=window.pageYOffset,u=S(cr(document.documentElement,"paddingRight",window.innerWidth-document.documentElement.clientWidth+"px"),cr(document.documentElement,"overflow","hidden"),cr(document.body,"marginTop",`-${s}px`));window.scrollTo(0,0);let c=S(dr(document,"touchstart",n,{passive:!1,capture:!0}),dr(document,"touchmove",r,{passive:!1,capture:!0}),dr(document,"touchend",i,{passive:!1,capture:!0}),dr(document,"focus",l,!0),dr(window,"scroll",o));return()=>{u(),c(),window.scrollTo(a,s)}}():S(cr(document.documentElement,"paddingRight",window.innerWidth-document.documentElement.clientWidth+"px"),cr(document.documentElement,"overflow","hidden"))),()=>{sr--,0===sr&&ar()}}),[t])}function cr(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function dr(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function pr(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=V(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;r>n+e.clientHeight&&(t.scrollTop+=r-n)}e=t.parentElement}}function fr(e){return e instanceof HTMLInputElement&&!or.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}const mr=t(o).createContext(null);function hr(e){let{children:n}=e,r=(0,o.useContext)(mr),[i,l]=(0,o.useState)(0),a=(0,o.useMemo)((()=>({parent:r,modalCount:i,addModal(){l((e=>e+1)),r&&r.addModal()},removeModal(){l((e=>e-1)),r&&r.removeModal()}})),[r,i]);return t(o).createElement(mr.Provider,{value:a},n)}function gr(){let e=(0,o.useContext)(mr);return{modalProviderProps:{"aria-hidden":!!(e&&e.modalCount>0)||null}}}var yr;function vr(e){let{onDismiss:n,...r}=e,i=F(r,Pe(zn(yr)).format("dismiss"));return t(o).createElement(Fn,null,t(o).createElement("button",{...i,tabIndex:-1,onClick:()=>{n&&n()}}))}yr={"ar-AE":{dismiss:"تجاهل"},"bg-BG":{dismiss:"Отхвърляне"},"cs-CZ":{dismiss:"Odstranit"},"da-DK":{dismiss:"Luk"},"de-DE":{dismiss:"Schließen"},"el-GR":{dismiss:"Απόρριψη"},"en-US":{dismiss:"Dismiss"},"es-ES":{dismiss:"Descartar"},"et-EE":{dismiss:"Lõpeta"},"fi-FI":{dismiss:"Hylkää"},"fr-FR":{dismiss:"Rejeter"},"he-IL":{dismiss:"התעלם"},"hr-HR":{dismiss:"Odbaci"},"hu-HU":{dismiss:"Elutasítás"},"it-IT":{dismiss:"Ignora"},"ja-JP":{dismiss:"閉じる"},"ko-KR":{dismiss:"무시"},"lt-LT":{dismiss:"Atmesti"},"lv-LV":{dismiss:"Nerādīt"},"nb-NO":{dismiss:"Lukk"},"nl-NL":{dismiss:"Negeren"},"pl-PL":{dismiss:"Zignoruj"},"pt-BR":{dismiss:"Descartar"},"pt-PT":{dismiss:"Dispensar"},"ro-RO":{dismiss:"Revocare"},"ru-RU":{dismiss:"Пропустить"},"sk-SK":{dismiss:"Zrušiť"},"sl-SI":{dismiss:"Opusti"},"sr-SP":{dismiss:"Odbaci"},"sv-SE":{dismiss:"Avvisa"},"tr-TR":{dismiss:"Kapat"},"uk-UA":{dismiss:"Скасувати"},"zh-CN":{dismiss:"取消"},"zh-TW":{dismiss:"關閉"}};let br=new WeakMap,wr=[];function Er(e,t=document.body){let n=new Set(e),r=new Set,i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>((t instanceof HTMLElement||t instanceof SVGElement)&&"true"===t.dataset.liveAnnouncer&&n.add(t),n.has(t)||r.has(t.parentElement)&&"row"!==t.parentElement.getAttribute("role")?NodeFilter.FILTER_REJECT:e.some((e=>t.contains(e)))?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT)}),l=e=>{var t;let n=null!==(t=br.get(e))&&void 0!==t?t:0;"true"===e.getAttribute("aria-hidden")&&0===n||(0===n&&e.setAttribute("aria-hidden","true"),r.add(e),br.set(e,n+1))};wr.length&&wr[wr.length-1].disconnect();let o=i.nextNode();for(;null!=o;)l(o),o=i.nextNode();let a=new MutationObserver((e=>{for(let t of e)if("childList"===t.type&&0!==t.addedNodes.length&&![...n,...r].some((e=>e.contains(t.target))))for(let e of t.addedNodes)(e instanceof HTMLElement||e instanceof SVGElement)&&"true"===e.dataset.liveAnnouncer?n.add(e):e instanceof Element&&l(e)}));a.observe(t,{childList:!0,subtree:!0});let s={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return wr.push(s),()=>{a.disconnect();for(let e of r){let t=br.get(e);1===t?(e.removeAttribute("aria-hidden"),br.delete(e)):br.set(e,t-1)}s===wr[wr.length-1]?(wr.pop(),wr.length&&wr[wr.length-1].observe()):wr.splice(wr.indexOf(s),1)}}function kr(e,t){let{triggerRef:n,popoverRef:r,isNonModal:i,isKeyboardDismissDisabled:l,...a}=e,{overlayProps:s,underlayProps:u}=rr({isOpen:t.isOpen,onClose:t.close,shouldCloseOnBlur:!0,isDismissable:!i,isKeyboardDismissDisabled:l},r),{overlayProps:c,arrowProps:d,placement:p}=er({...a,targetRef:n,overlayRef:r,isOpen:t.isOpen,onClose:null}),[f,m]=(0,o.useState)(!1);return y((()=>{!i&&p&&m(!0)}),[i,p]),ur({isDisabled:i||!f}),y((()=>{if(t.isOpen&&!i&&r.current)return Er([r.current])}),[i,t.isOpen,r]),{popoverProps:x(s,c),arrowProps:d,underlayProps:u,placement:p}}const Sr=t(o).createContext(null);function xr(e){let n=m(),{portalContainer:r=(n?null:document.body)}=e,[i,l]=(0,o.useState)(!1),s=(0,o.useMemo)((()=>({contain:i,setContain:l})),[i,l]);if(!r)return null;let u=t(o).createElement(Sr.Provider,{value:s},t(o).createElement(dn,{restoreFocus:!0,contain:i},e.children));return t(a).createPortal(u,r)}function Pr(e,t,n){let{overlayProps:r,underlayProps:i}=rr({...e,isOpen:t.isOpen,onClose:t.close},n);return ur({isDisabled:!t.isOpen}),function(){let e=(0,o.useContext)(Sr),t=null==e?void 0:e.setContain;y((()=>{null==t||t(!0)}),[t])}(),(0,o.useEffect)((()=>{if(t.isOpen)return Er([n.current])}),[t.isOpen,n]),{modalProps:x(r),underlayProps:i}}o=l("acw62");function Tr(e){return e&&e.__esModule?e.default:e}function _r(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Cr,Ir={};_r(Ir,"spectrum",(()=>Cr),(e=>Cr=e)),Cr="spectrum_b37d53";var Mr,Lr,Nr,Rr={};_r(Rr,"spectrum",(()=>Mr),(e=>Mr=e)),_r(Rr,"spectrum-Body",(()=>Lr),(e=>Lr=e)),_r(Rr,"spectrum-Body--italic",(()=>Nr),(e=>Nr=e)),Mr="spectrum_2a241c",Lr="spectrum-Body_2a241c",Nr="spectrum-Body--italic_2a241c";var Or;Or=JSON.parse('{"name":"@react-spectrum/provider","version":"3.6.1","description":"Spectrum UI components in React","license":"Apache-2.0","main":"dist/main.js","module":"dist/module.js","types":"dist/types.d.ts","source":"src/index.ts","files":["dist","src"],"sideEffects":["*.css"],"targets":{"main":{"includeNodeModules":["@adobe/spectrum-css-temp"]},"module":{"includeNodeModules":["@adobe/spectrum-css-temp"]}},"repository":{"type":"git","url":"https://github.com/adobe/react-spectrum"},"dependencies":{"@react-aria/i18n":"^3.6.3","@react-aria/overlays":"^3.12.1","@react-aria/utils":"^3.14.2","@react-spectrum/utils":"^3.8.1","@react-types/provider":"^3.5.5","@react-types/shared":"^3.16.0","@swc/helpers":"^0.4.14","clsx":"^1.1.1"},"devDependencies":{"@adobe/spectrum-css-temp":"3.0.0-alpha.1"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"},"publishConfig":{"access":"public"}}');const Ar=t(o).createContext(null);Ar.displayName="ProviderContext";const Fr={S:640,M:768,L:1024,XL:1280,XXL:1536};let zr=t(o).forwardRef((function(e,n){let r=Kr(),i=r&&r.colorScheme,l=r&&r.breakpoints,{theme:a=r&&r.theme,defaultColorScheme:s}=e;if(!a)throw new Error("theme not found, the parent provider must have a theme provided");let u=function(e,t){let n=Ne("(prefers-color-scheme: dark)"),r=Ne("(prefers-color-scheme: light)");return e.dark&&n?"dark":e.light&&r?"light":e.dark&&"dark"===t?"dark":e.light&&"light"===t?"light":e.dark?e.light?"light":"dark":"light"}(a,s),c=function(e){return Ne("(any-pointer: fine)")&&e.medium?"medium":e.large?"large":"medium"}(a),{locale:d}=Se(),p=!!a[i],{colorScheme:f=(p?i:u),scale:m=(r?r.scale:c),locale:h=(r?d:null),breakpoints:g=(r?l:Fr),children:y,isQuiet:v,isEmphasized:b,isDisabled:w,isRequired:E,isReadOnly:k,validationState:S,...x}=e,P={version:Or.version,theme:a,breakpoints:g,colorScheme:f,scale:m,isQuiet:v,isEmphasized:b,isDisabled:w,isRequired:E,isReadOnly:k,validationState:S},T=Ke(g),_={};Object.entries(P).forEach((([e,t])=>void 0!==t&&(_[e]=t)));let I=Object.assign({},r,_),M=y,L=C(x),{styleProps:N}=tt(x,void 0,{matchedBreakpoints:T});return(!r||e.locale||a!==r.theme||f!==r.colorScheme||m!==r.scale||Object.keys(L).length>0||x.UNSAFE_className||Object.keys(N.style).length>0)&&(M=t(o).createElement(Dr,{...e,UNSAFE_style:{isolation:r?void 0:"isolate",...N.style},ref:n},M)),t(o).createElement(Ar.Provider,{value:I},t(o).createElement(ke,{locale:h},t(o).createElement(De,{matchedBreakpoints:T},t(o).createElement(hr,null,M))))}));const Dr=t(o).forwardRef((function(e,n){let{children:r,...i}=e,{locale:l,direction:a}=Se(),{theme:s,colorScheme:u,scale:c}=Kr(),{modalProviderProps:d}=gr(),{styleProps:p}=tt(i),f=Oe(n),m=Object.keys(s[u])[0],h=Object.keys(s[c])[0],y=g(p.className,Tr(Ir).spectrum,Tr(Rr).spectrum,Object.values(s[u]),Object.values(s[c]),s.global?Object.values(s.global):null,{"react-spectrum-provider":Ie,spectrum:Ie,[m]:Ie,[h]:Ie});var v,b;let w={...p.style,colorScheme:null!==(b=null!==(v=e.colorScheme)&&void 0!==v?v:u)&&void 0!==b?b:Object.keys(s).filter((e=>"light"===e||"dark"===e)).join(" ")},E=(0,o.useRef)(!1);return(0,o.useEffect)((()=>{if(a&&f.current){let e=f.current.parentElement.closest("[dir]"),t=e&&e.getAttribute("dir");t&&t!==a&&!E.current&&(console.warn(`Language directions cannot be nested. ${a} inside ${t}.`),E.current=!0)}}),[a,f,E]),t(o).createElement("div",{...C(i),...p,...d,className:y,style:w,lang:l,dir:a,ref:f},r)}));function Kr(){return(0,o.useContext)(Ar)}function Vr(e){let t=Kr();return t?Object.assign({},{isQuiet:t.isQuiet,isEmphasized:t.isEmphasized,isDisabled:t.isDisabled,isRequired:t.isRequired,isReadOnly:t.isReadOnly,validationState:t.validationState},e):e}var Ur,Br={};Br=function(e){return e&&e.__esModule?e:{default:e}},Br.__esModule=!0,Br.default=Br,Ur=function(e){return Xi.default.createElement(Gi,e,Xi.default.createElement(jr.CornerTriangle,null))};var jr={};Object.defineProperty(jr,"__esModule",{value:!0}),jr.CornerTriangle=Gr;var $r,Hr=($r=l("acw62"))&&$r.__esModule?$r:{default:$r};function Wr(){return Wr=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Gr(e){var t=e.scale,n=void 0===t?"M":t,r=qr(e,["scale"]);return Hr.default.createElement("svg",Wr({},r,r),"L"===n&&Hr.default.createElement("path",{d:"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"}),"M"===n&&Hr.default.createElement("path",{d:"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"}))}Gr.displayName="CornerTriangle";o=l("acw62");function Qr(e){return e&&e.__esModule?e.default:e}function Yr(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Xr,Zr,Jr,ei,ti,ni,ri,ii,li,oi,ai,si,ui,ci,di,pi,fi,mi,hi,gi,yi,vi,bi,wi,Ei,ki,Si,xi,Pi,Ti,_i,Ci,Ii,Mi,Li,Ni,Ri,Oi,Ai,Fi,zi,Di,Ki,Vi,Ui,Bi,ji,$i,Hi={};Yr(Hi,"spectrum-Icon",(()=>Xr),(e=>Xr=e)),Yr(Hi,"spectrum-UIIcon",(()=>Zr),(e=>Zr=e)),Yr(Hi,"spectrum-Icon--sizeXXS",(()=>Jr),(e=>Jr=e)),Yr(Hi,"spectrum-Icon--sizeXS",(()=>ei),(e=>ei=e)),Yr(Hi,"spectrum-Icon--sizeS",(()=>ti),(e=>ti=e)),Yr(Hi,"spectrum-Icon--sizeM",(()=>ni),(e=>ni=e)),Yr(Hi,"spectrum-Icon--sizeL",(()=>ri),(e=>ri=e)),Yr(Hi,"spectrum-Icon--sizeXL",(()=>ii),(e=>ii=e)),Yr(Hi,"spectrum-Icon--sizeXXL",(()=>li),(e=>li=e)),Yr(Hi,"spectrum--medium",(()=>oi),(e=>oi=e)),Yr(Hi,"spectrum-UIIcon--large",(()=>ai),(e=>ai=e)),Yr(Hi,"spectrum-UIIcon--medium",(()=>si),(e=>si=e)),Yr(Hi,"spectrum--large",(()=>ui),(e=>ui=e)),Yr(Hi,"spectrum-UIIcon-AlertMedium",(()=>ci),(e=>ci=e)),Yr(Hi,"spectrum-UIIcon-AlertSmall",(()=>di),(e=>di=e)),Yr(Hi,"spectrum-UIIcon-ArrowDownSmall",(()=>pi),(e=>pi=e)),Yr(Hi,"spectrum-UIIcon-ArrowLeftMedium",(()=>fi),(e=>fi=e)),Yr(Hi,"spectrum-UIIcon-Asterisk",(()=>mi),(e=>mi=e)),Yr(Hi,"spectrum-UIIcon-CheckmarkMedium",(()=>hi),(e=>hi=e)),Yr(Hi,"spectrum-UIIcon-CheckmarkSmall",(()=>gi),(e=>gi=e)),Yr(Hi,"spectrum-UIIcon-ChevronDownMedium",(()=>yi),(e=>yi=e)),Yr(Hi,"spectrum-UIIcon-ChevronDownSmall",(()=>vi),(e=>vi=e)),Yr(Hi,"spectrum-UIIcon-ChevronLeftLarge",(()=>bi),(e=>bi=e)),Yr(Hi,"spectrum-UIIcon-ChevronLeftMedium",(()=>wi),(e=>wi=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightLarge",(()=>Ei),(e=>Ei=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightMedium",(()=>ki),(e=>ki=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightSmall",(()=>Si),(e=>Si=e)),Yr(Hi,"spectrum-UIIcon-ChevronUpSmall",(()=>xi),(e=>xi=e)),Yr(Hi,"spectrum-UIIcon-CornerTriangle",(()=>Pi),(e=>Pi=e)),Yr(Hi,"spectrum-UIIcon-CrossLarge",(()=>Ti),(e=>Ti=e)),Yr(Hi,"spectrum-UIIcon-CrossMedium",(()=>_i),(e=>_i=e)),Yr(Hi,"spectrum-UIIcon-CrossSmall",(()=>Ci),(e=>Ci=e)),Yr(Hi,"spectrum-UIIcon-DashSmall",(()=>Ii),(e=>Ii=e)),Yr(Hi,"spectrum-UIIcon-DoubleGripper",(()=>Mi),(e=>Mi=e)),Yr(Hi,"spectrum-UIIcon-FolderBreadcrumb",(()=>Li),(e=>Li=e)),Yr(Hi,"spectrum-UIIcon-HelpMedium",(()=>Ni),(e=>Ni=e)),Yr(Hi,"spectrum-UIIcon-HelpSmall",(()=>Ri),(e=>Ri=e)),Yr(Hi,"spectrum-UIIcon-InfoMedium",(()=>Oi),(e=>Oi=e)),Yr(Hi,"spectrum-UIIcon-InfoSmall",(()=>Ai),(e=>Ai=e)),Yr(Hi,"spectrum-UIIcon-ListGripper",(()=>Fi),(e=>Fi=e)),Yr(Hi,"spectrum-UIIcon-Magnifier",(()=>zi),(e=>zi=e)),Yr(Hi,"spectrum-UIIcon-SkipLeft",(()=>Di),(e=>Di=e)),Yr(Hi,"spectrum-UIIcon-SkipRight",(()=>Ki),(e=>Ki=e)),Yr(Hi,"spectrum-UIIcon-Star",(()=>Vi),(e=>Vi=e)),Yr(Hi,"spectrum-UIIcon-StarOutline",(()=>Ui),(e=>Ui=e)),Yr(Hi,"spectrum-UIIcon-SuccessMedium",(()=>Bi),(e=>Bi=e)),Yr(Hi,"spectrum-UIIcon-SuccessSmall",(()=>ji),(e=>ji=e)),Yr(Hi,"spectrum-UIIcon-TripleGripper",(()=>$i),(e=>$i=e)),Xr="spectrum-Icon_368b34",Zr="spectrum-UIIcon_368b34",Jr="spectrum-Icon--sizeXXS_368b34",ei="spectrum-Icon--sizeXS_368b34",ti="spectrum-Icon--sizeS_368b34",ni="spectrum-Icon--sizeM_368b34",ri="spectrum-Icon--sizeL_368b34",ii="spectrum-Icon--sizeXL_368b34",li="spectrum-Icon--sizeXXL_368b34",oi="spectrum--medium_368b34",ai="spectrum-UIIcon--large_368b34",si="spectrum-UIIcon--medium_368b34",ui="spectrum--large_368b34",ci="spectrum-UIIcon-AlertMedium_368b34",di="spectrum-UIIcon-AlertSmall_368b34",pi="spectrum-UIIcon-ArrowDownSmall_368b34",fi="spectrum-UIIcon-ArrowLeftMedium_368b34",mi="spectrum-UIIcon-Asterisk_368b34",hi="spectrum-UIIcon-CheckmarkMedium_368b34",gi="spectrum-UIIcon-CheckmarkSmall_368b34",yi="spectrum-UIIcon-ChevronDownMedium_368b34",vi="spectrum-UIIcon-ChevronDownSmall_368b34",bi="spectrum-UIIcon-ChevronLeftLarge_368b34",wi="spectrum-UIIcon-ChevronLeftMedium_368b34",Ei="spectrum-UIIcon-ChevronRightLarge_368b34",ki="spectrum-UIIcon-ChevronRightMedium_368b34",Si="spectrum-UIIcon-ChevronRightSmall_368b34",xi="spectrum-UIIcon-ChevronUpSmall_368b34",Pi="spectrum-UIIcon-CornerTriangle_368b34",Ti="spectrum-UIIcon-CrossLarge_368b34",_i="spectrum-UIIcon-CrossMedium_368b34",Ci="spectrum-UIIcon-CrossSmall_368b34",Ii="spectrum-UIIcon-DashSmall_368b34",Mi="spectrum-UIIcon-DoubleGripper_368b34",Li="spectrum-UIIcon-FolderBreadcrumb_368b34",Ni="spectrum-UIIcon-HelpMedium_368b34",Ri="spectrum-UIIcon-HelpSmall_368b34",Oi="spectrum-UIIcon-InfoMedium_368b34",Ai="spectrum-UIIcon-InfoSmall_368b34",Fi="spectrum-UIIcon-ListGripper_368b34",zi="spectrum-UIIcon-Magnifier_368b34",Di="spectrum-UIIcon-SkipLeft_368b34",Ki="spectrum-UIIcon-SkipRight_368b34",Vi="spectrum-UIIcon-Star_368b34",Ui="spectrum-UIIcon-StarOutline_368b34",Bi="spectrum-UIIcon-SuccessMedium_368b34",ji="spectrum-UIIcon-SuccessSmall_368b34",$i="spectrum-UIIcon-TripleGripper_368b34";const Wi={...Ue,color:["color",function(e){return`var(--spectrum-semantic-${e}-color-icon)`}]};function qi(e){e=lt(e,"icon");let{children:n,size:r,"aria-label":i,"aria-hidden":l,...a}=e,{styleProps:s}=tt(a,Wi),u=Kr(),c="M";null!==u&&(c="large"===u.scale?"L":"M"),l||(l=void 0);let d=r||c;return t(o).cloneElement(n,{...C(a),...s,focusable:"false","aria-label":i,"aria-hidden":!i||(l||void 0),role:"img",className:Me(Qr(Hi),n.props.className,"spectrum-Icon",`spectrum-Icon--size${d}`,s.className)})}function Gi(e){e=lt(e,"icon");let{children:n,"aria-label":r,"aria-hidden":i,...l}=e,{styleProps:a}=tt(l),s=Kr(),u="M";return null!==s&&(u="large"===s.scale?"L":"M"),i||(i=void 0),t(o).cloneElement(n,{...C(l),...a,scale:u,focusable:"false","aria-label":r,"aria-hidden":!r||(i||void 0),role:"img",className:Me(Qr(Hi),n.props.className,"spectrum-Icon",{[`spectrum-UIIcon-${n.type.displayName}`]:n.type.displayName},a.className)})}function Qi(e){e=lt(e,"illustration");let{children:n,"aria-label":r,"aria-labelledby":i,"aria-hidden":l,...a}=e,{styleProps:s}=tt(a),u=r||i;return l||(l=void 0),t(o).cloneElement(n,{...C(a),...s,focusable:"false","aria-label":r,"aria-labelledby":i,"aria-hidden":l,role:u?"img":void 0})}var Yi,Xi=Br(l("acw62"));Yi=function(e){return rl.default.createElement(Gi,e,rl.default.createElement(Zi.CrossSmall,null))};var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.CrossSmall=nl;var Ji=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function el(){return el=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function nl(e){var t=e.scale,n=void 0===t?"M":t,r=tl(e,["scale"]);return Ji.default.createElement("svg",el({},r,r),"L"===n&&Ji.default.createElement("path",{d:"M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z"}),"M"===n&&Ji.default.createElement("path",{d:"M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z"}))}nl.displayName="CrossSmall";var rl=Br(l("acw62"));function il(e={}){let{isReadOnly:t}=e,[n,r]=s(e.isSelected,e.defaultSelected||!1,e.onChange);return{isSelected:n,setSelected:function(e){t||r(e)},toggle:function(){t||r(!n)}}}function ll(e){return e&&e.__esModule?e.default:e}function ol(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var al,sl,ul,cl,dl,pl,fl,ml,hl,gl,yl,vl,bl,wl,El,kl,Sl,xl,Pl,Tl,_l,Cl,Il,Ml,Ll,Nl,Rl,Ol,Al,Fl={};ol(Fl,"spectrum-Button",(()=>al),(e=>al=e)),ol(Fl,"spectrum-ActionButton",(()=>sl),(e=>sl=e)),ol(Fl,"spectrum-LogicButton",(()=>ul),(e=>ul=e)),ol(Fl,"spectrum-FieldButton",(()=>cl),(e=>cl=e)),ol(Fl,"spectrum-ClearButton",(()=>dl),(e=>dl=e)),ol(Fl,"focus-ring",(()=>pl),(e=>pl=e)),ol(Fl,"spectrum-FieldButton--quiet",(()=>fl),(e=>fl=e)),ol(Fl,"spectrum-Icon",(()=>ml),(e=>ml=e)),ol(Fl,"is-hovered",(()=>hl),(e=>hl=e)),ol(Fl,"spectrum-Button-label",(()=>gl),(e=>gl=e)),ol(Fl,"spectrum-Button--iconOnly",(()=>yl),(e=>yl=e)),ol(Fl,"spectrum-ActionButton-label",(()=>vl),(e=>vl=e)),ol(Fl,"spectrum-ActionButton-hold",(()=>bl),(e=>bl=e)),ol(Fl,"spectrum-ActionButton--quiet",(()=>wl),(e=>wl=e)),ol(Fl,"is-disabled",(()=>El),(e=>El=e)),ol(Fl,"is-open",(()=>kl),(e=>kl=e)),ol(Fl,"spectrum-ClearButton--small",(()=>Sl),(e=>Sl=e)),ol(Fl,"is-active",(()=>xl),(e=>xl=e)),ol(Fl,"is-selected",(()=>Pl),(e=>Pl=e)),ol(Fl,"spectrum-ActionButton--emphasized",(()=>Tl),(e=>Tl=e)),ol(Fl,"spectrum-ActionButton--staticWhite",(()=>_l),(e=>_l=e)),ol(Fl,"spectrum-ActionButton--staticBlack",(()=>Cl),(e=>Cl=e)),ol(Fl,"spectrum-ActionButton--staticColor",(()=>Il),(e=>Il=e)),ol(Fl,"spectrum-LogicButton--and",(()=>Ml),(e=>Ml=e)),ol(Fl,"spectrum-LogicButton--or",(()=>Ll),(e=>Ll=e)),ol(Fl,"is-focused",(()=>Nl),(e=>Nl=e)),ol(Fl,"is-placeholder",(()=>Rl),(e=>Rl=e)),ol(Fl,"spectrum-FieldButton--invalid",(()=>Ol),(e=>Ol=e)),ol(Fl,"spectrum-Button--overBackground",(()=>Al),(e=>Al=e)),al="spectrum-Button_e2d99e",sl="spectrum-ActionButton_e2d99e",ul="spectrum-LogicButton_e2d99e",cl="spectrum-FieldButton_e2d99e",dl="spectrum-ClearButton_e2d99e",pl="focus-ring_e2d99e",fl="spectrum-FieldButton--quiet_e2d99e",ml="spectrum-Icon_e2d99e",hl="is-hovered_e2d99e",gl="spectrum-Button-label_e2d99e",yl="spectrum-Button--iconOnly_e2d99e",vl="spectrum-ActionButton-label_e2d99e",bl="spectrum-ActionButton-hold_e2d99e",wl="spectrum-ActionButton--quiet_e2d99e",El="is-disabled_e2d99e",kl="is-open_e2d99e",Sl="spectrum-ClearButton--small_e2d99e",xl="is-active_e2d99e",Pl="is-selected_e2d99e",Tl="spectrum-ActionButton--emphasized_e2d99e",_l="spectrum-ActionButton--staticWhite_e2d99e",Cl="spectrum-ActionButton--staticBlack_e2d99e",Il="spectrum-ActionButton--staticColor_e2d99e",Ml="spectrum-LogicButton--and_e2d99e",Ll="spectrum-LogicButton--or_e2d99e",Nl="is-focused_e2d99e",Rl="is-placeholder_e2d99e",Ol="spectrum-FieldButton--invalid_e2d99e",Al="spectrum-Button--overBackground_e2d99e";t(o).forwardRef((function(e,n){e=lt(e=Vr(e),"button");let{elementType:r="button",children:i,variant:l,style:a=("accent"===l||"cta"===l?"fill":"outline"),staticColor:s,isDisabled:u,autoFocus:c,...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn(e,p),{hoverProps:h,isHovered:g}=Jt({isDisabled:u}),{styleProps:y}=tt(d),v=st(`.${ll(Fl)["spectrum-Button-label"]}`,p),b=st(`.${ll(Fl)["spectrum-Icon"]}`,p);return"cta"===l?l="accent":"overBackground"===l&&(l="primary",s="white"),t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:c},t(o).createElement(r,{...y,...x(f,h),ref:p,"data-variant":l,"data-style":a,"data-static-color":s||void 0,className:Me(ll(Fl),"spectrum-Button",{"spectrum-Button--iconOnly":b&&!v,"is-disabled":u,"is-active":m,"is-hovered":g},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-Button-label")}}},"string"==typeof i?t(o).createElement(Ln,null,i):i)))}));let zl=t(o).forwardRef((function(e,n){e=lt(e=Vr(e),"actionButton");let{isQuiet:r,isDisabled:i,staticColor:l,children:a,autoFocus:s,holdAffordance:u,...c}=e,d=Ae(n),{buttonProps:p,isPressed:f}=Nn(e,d),{hoverProps:m,isHovered:h}=Jt({isDisabled:i}),{styleProps:g}=tt(c),y=t(o).Children.toArray(e.children).every((e=>!t(o).isValidElement(e)));return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:s},t(o).createElement("button",{...g,...x(p,m),ref:d,className:Me(ll(Fl),"spectrum-ActionButton",{"spectrum-ActionButton--quiet":r,"spectrum-ActionButton--staticColor":!!l,"spectrum-ActionButton--staticWhite":"white"===l,"spectrum-ActionButton--staticBlack":"black"===l,"is-active":f,"is-disabled":i,"is-hovered":h},g.className)},u&&t(o).createElement(Ur,{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-hold")}),t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-label")}}},"string"==typeof a||y?t(o).createElement(Ln,null,a):a)))}));let Dl=t(o).forwardRef((function(e,n){e=lt(e,"button");let{isQuiet:r,isDisabled:i,validationState:l,children:a,autoFocus:s,isActive:u,focusRingClass:c,...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn(e,p),{hoverProps:h,isHovered:g}=Jt({isDisabled:i}),{styleProps:y}=tt(d);return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring",c),autoFocus:s},t(o).createElement("button",{...x(f,h),ref:p,className:Me(ll(Fl),"spectrum-FieldButton",{"spectrum-FieldButton--quiet":r,"is-active":u||m,"is-disabled":i,"spectrum-FieldButton--invalid":"invalid"===l,"is-hovered":g},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")}}},a)))}));t(o).forwardRef((function(e,n){e=Vr(e);let{variant:r,children:i,isDisabled:l,autoFocus:a,...s}=e,u=Ae(n),{buttonProps:c,isPressed:d}=Nn(e,u),{hoverProps:p,isHovered:f}=Jt({isDisabled:l}),{styleProps:m}=tt(s);return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:a},t(o).createElement("button",{...m,...x(c,p),ref:u,className:Me(ll(Fl),"spectrum-LogicButton",{[`spectrum-LogicButton--${r}`]:r,"is-disabled":l,"is-active":d,"is-hovered":f},m.className)},t(o).createElement("span",{className:Me(ll(Fl),"spectrum-Button-label")},i)))}));t(o).forwardRef((function(e,n){let{children:r=t(o).createElement(Yi,{UNSAFE_className:ll(Fl)["spectrum-Icon"]}),focusClassName:i,variant:l,autoFocus:a,isDisabled:s,preventFocus:u,elementType:c=(u?"div":"button"),...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn({...e,elementType:c},p),{hoverProps:h,isHovered:g}=Jt({isDisabled:s}),{styleProps:y}=tt(d);u&&delete f.tabIndex;let v=c;return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring",i),autoFocus:a},t(o).createElement(v,{...y,...x(f,h),ref:p,className:Me(ll(Fl),"spectrum-ClearButton",{[`spectrum-ClearButton--${l}`]:l,"is-disabled":s,"is-active":m,"is-hovered":g},y.className)},r))}));t(o).forwardRef((function(e,n){e=Vr(e);let{isQuiet:r,isDisabled:i,isEmphasized:l,staticColor:a,children:s,autoFocus:u,...c}=e,d=Ae(n),p=il(e),{buttonProps:f,isPressed:m}=Rn(e,p,d),{hoverProps:h,isHovered:g}=Jt({isDisabled:i}),{styleProps:y}=tt(c),v=t(o).Children.toArray(e.children).every((e=>!t(o).isValidElement(e)));return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:u},t(o).createElement("button",{...y,...x(f,h),ref:d,className:Me(ll(Fl),"spectrum-ActionButton",{"spectrum-ActionButton--quiet":r,"spectrum-ActionButton--emphasized":l,"spectrum-ActionButton--staticColor":!!a,"spectrum-ActionButton--staticWhite":"white"===a,"spectrum-ActionButton--staticBlack":"black"===a,"is-active":m,"is-disabled":i,"is-hovered":g,"is-selected":p.isSelected},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-label")}}},"string"==typeof s||v?t(o).createElement(Ln,null,s):s)))}));var Kl;Kl=function(e){return Hl.default.createElement(Gi,e,Hl.default.createElement(Vl.FolderBreadcrumb,null))};var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0}),Vl.FolderBreadcrumb=$l;var Ul=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Bl(){return Bl=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function $l(e){var t=e.scale,n=void 0===t?"M":t,r=jl(e,["scale"]);return Ul.default.createElement("svg",Bl({},r,r),"L"===n&&Ul.default.createElement("path",{d:"M19.5 6l-9.166.004-1.668-1.7A.998.998 0 0 0 7.946 4H3a1 1 0 0 0-1 1v13a.5.5 0 0 0 .5.5h17a.5.5 0 0 0 .5-.5V6.5a.5.5 0 0 0-.5-.5zm-16-.5h4.237l1.964 2H3.5zm11.544 6.044l-3.5 3.5a.77.77 0 0 1-1.088 0l-3.5-3.5a.77.77 0 0 1 1.088-1.088L11 13.41l2.956-2.955a.77.77 0 0 1 1.088 1.088z"}),"M"===n&&Ul.default.createElement("path",{d:"M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z"}))}$l.displayName="FolderBreadcrumb";var Hl=Br(l("acw62"));o=l("acw62");function Wl(e,t){if(null==e)return{};var n,r,i={},l=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function ql(e,t){return ql=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ql(e,t)}function Gl(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,ql(e,t)}o=l("acw62");var Ql={disabled:!1},Yl=t(o=l("acw62")).createContext(null),Xl=function(e){return e.scrollTop},Zl="unmounted",Jl="exited",eo="entering",to="entered",no="exiting",ro=function(e){function n(t,n){var r;r=e.call(this,t,n)||this;var i,l=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?l?(i=Jl,r.appearStatus=eo):i=to:i=t.unmountOnExit||t.mountOnEnter?Zl:Jl,r.state={status:i},r.nextCallback=null,r}Gl(n,e),n.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Zl?{status:Jl}:null};var r=n.prototype;return r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==eo&&n!==to&&(t=eo):n!==eo&&n!==to||(t=no)}this.updateStatus(!1,t)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},r.updateStatus=function(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),n===eo){if(this.props.unmountOnExit||this.props.mountOnEnter){var r=this.props.nodeRef?this.props.nodeRef.current:t(a).findDOMNode(this);r&&Xl(r)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Jl&&this.setState({status:Zl})},r.performEnter=function(e){var n=this,r=this.props.enter,i=this.context?this.context.isMounting:e,l=this.props.nodeRef?[i]:[t(a).findDOMNode(this),i],o=l[0],s=l[1],u=this.getTimeouts(),c=i?u.appear:u.enter;!e&&!r||Ql.disabled?this.safeSetState({status:to},(function(){n.props.onEntered(o)})):(this.props.onEnter(o,s),this.safeSetState({status:eo},(function(){n.props.onEntering(o,s),n.onTransitionEnd(c,(function(){n.safeSetState({status:to},(function(){n.props.onEntered(o,s)}))}))})))},r.performExit=function(){var e=this,n=this.props.exit,r=this.getTimeouts(),i=this.props.nodeRef?void 0:t(a).findDOMNode(this);n&&!Ql.disabled?(this.props.onExit(i),this.safeSetState({status:no},(function(){e.props.onExiting(i),e.onTransitionEnd(r.exit,(function(){e.safeSetState({status:Jl},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:Jl},(function(){e.props.onExited(i)}))},r.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},r.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},r.onTransitionEnd=function(e,n){this.setNextCallback(n);var r=this.props.nodeRef?this.props.nodeRef.current:t(a).findDOMNode(this),i=null==e&&!this.props.addEndListener;if(r&&!i){if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[r,this.nextCallback],o=l[0],s=l[1];this.props.addEndListener(o,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},r.render=function(){var e=this.state.status;if(e===Zl)return null;var n=this.props,r=n.children,i=(n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef,Wl(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return t(o).createElement(Yl.Provider,{value:null},"function"==typeof r?r(e,i):t(o).cloneElement(t(o).Children.only(r),i))},n}(t(o).Component);function io(){}ro.contextType=Yl,ro.propTypes={},ro.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:io,onEntering:io,onEntered:io,onExit:io,onExiting:io,onExited:io},ro.UNMOUNTED=Zl,ro.EXITED=Jl,ro.ENTERING=eo,ro.ENTERED=to,ro.EXITING=no;var lo=ro;function oo(e){return e&&e.__esModule?e.default:e}function ao(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const so={entering:!1,entered:!0};function uo(e){return t(o).createElement(lo,{timeout:{enter:0,exit:350},...e},(n=>t(o).Children.map(e.children,(e=>e&&t(o).cloneElement(e,{isOpen:!!so[n]})))))}let co=t(o).forwardRef((function(e,n){let{children:r,isOpen:i,container:l,onEnter:a,onEntering:s,onEntered:u,onExit:c,onExiting:d,onExited:p}=e,[f,m]=(0,o.useState)(!i),h=(0,o.useCallback)((()=>{m(!1),u&&u()}),[u]),g=(0,o.useCallback)((()=>{m(!0),p&&p()}),[p]);return i||!f?t(o).createElement(xr,{portalContainer:l},t(o).createElement(zr,{ref:n,UNSAFE_style:{background:"transparent",isolation:"isolate"},isDisabled:!1},t(o).createElement(uo,{in:i,appear:!0,onExit:c,onExiting:d,onExited:g,onEnter:a,onEntering:s,onEntered:h},r))):null}));var po,fo,mo,ho,go,yo,vo,bo,wo,Eo={};ao(Eo,"spectrum-Popover",(()=>po),(e=>po=e)),ao(Eo,"react-spectrum-Popover",(()=>fo),(e=>fo=e)),ao(Eo,"spectrum-Dialog-content",(()=>mo),(e=>mo=e)),ao(Eo,"spectrum-Modal-wrapper",(()=>ho),(e=>ho=e)),ao(Eo,"react-spectrum-Modal-wrapper",(()=>go),(e=>go=e)),ao(Eo,"spectrum-Modal",(()=>yo),(e=>yo=e)),ao(Eo,"react-spectrum-Modal",(()=>vo),(e=>vo=e)),ao(Eo,"spectrum-Tray",(()=>bo),(e=>bo=e)),ao(Eo,"react-spectrum-Tray",(()=>wo),(e=>wo=e)),po="spectrum-Popover_38efea",fo="react-spectrum-Popover_38efea",mo="spectrum-Dialog-content_38efea",ho="spectrum-Modal-wrapper_38efea",go="react-spectrum-Modal-wrapper_38efea",yo="spectrum-Modal_38efea",vo="react-spectrum-Modal_38efea",bo="spectrum-Tray_38efea",wo="react-spectrum-Tray_38efea";var ko,So,xo,Po,To,_o,Co,Io,Mo,Lo,No={};ao(No,"spectrum-Popover",(()=>ko),(e=>ko=e)),ao(No,"is-open",(()=>So),(e=>So=e)),ao(No,"spectrum-Popover--bottom",(()=>xo),(e=>xo=e)),ao(No,"spectrum-Popover--top",(()=>Po),(e=>Po=e)),ao(No,"spectrum-Popover--right",(()=>To),(e=>To=e)),ao(No,"spectrum-Popover--left",(()=>_o),(e=>_o=e)),ao(No,"spectrum-Popover-tip",(()=>Co),(e=>Co=e)),ao(No,"spectrum-Popover-tip-triangle",(()=>Io),(e=>Io=e)),ao(No,"spectrum-Popover--dialog",(()=>Mo),(e=>Mo=e)),ao(No,"spectrum-Popover--withTip",(()=>Lo),(e=>Lo=e)),ko="spectrum-Popover_6115b8",So="is-open_6115b8",xo="spectrum-Popover--bottom_6115b8",Po="spectrum-Popover--top_6115b8",To="spectrum-Popover--right_6115b8",_o="spectrum-Popover--left_6115b8",Co="spectrum-Popover-tip_6115b8",Io="spectrum-Popover-tip-triangle_6115b8",Mo="spectrum-Popover--dialog_6115b8",Lo="spectrum-Popover--withTip_6115b8";var Ro,Oo,Ao,Fo={};function zo({isOpen:e,isTransparent:n}){return t(o).createElement("div",{className:Me(oo(Fo),"spectrum-Underlay",{"is-open":e,"spectrum-Underlay--transparent":n})})}ao(Fo,"spectrum-Underlay",(()=>Ro),(e=>Ro=e)),ao(Fo,"is-open",(()=>Oo),(e=>Oo=e)),ao(Fo,"spectrum-Underlay--transparent",(()=>Ao),(e=>Ao=e)),Ro="spectrum-Underlay_eb7615",Oo="is-open_eb7615",Ao="spectrum-Underlay--transparent_eb7615";let Do={left:"right",right:"right",top:"bottom",bottom:"bottom"};const Ko=(0,o.forwardRef)(((e,n)=>{let{children:r,isOpen:i,hideArrow:l,isNonModal:a,state:s}=e,{styleProps:u}=tt(e),{popoverProps:c,arrowProps:d,underlayProps:p,placement:f}=kr({...e,popoverRef:n,maxHeight:null},s);return t(o).createElement(t(o).Fragment,null,!a&&t(o).createElement(zo,{isTransparent:!0,...p,isOpen:i}),t(o).createElement("div",{...u,...c,style:{...u.style,...c.style},ref:n,className:Me(oo(No),"spectrum-Popover",`spectrum-Popover--${f}`,{"spectrum-Popover--withTip":!l,"is-open":i},Me(oo(Eo),"spectrum-Popover","react-spectrum-Popover"),u.className),role:"presentation","data-testid":"popover"},!a&&t(o).createElement(vr,{onDismiss:s.close}),r,l?null:t(o).createElement(Uo,{arrowProps:d,direction:Do[f]}),t(o).createElement(vr,{onDismiss:s.close})))}));let Vo=Math.sqrt(2);function Uo(e){let[n,r]=(0,o.useState)(20),[i,l]=(0,o.useState)(1),a=(0,o.useRef)();y((()=>{if(a.current){let e=window.getComputedStyle(a.current).getPropertyValue("--spectrum-popover-tip-size");""!==e&&r(parseInt(e,10)/2);let t=window.getComputedStyle(a.current).getPropertyValue("--spectrum-popover-tip-borderWidth");""!==t&&l(parseInt(t,10))}}),[a]);let s="top"===e.direction||"bottom"===e.direction,u="left"===e.direction||"top"===e.direction,c=i*Vo,d=c/2,p=2*n+2*c,f=n+c,m=u?f:0,h=u?d:f-d,g=p/2,v=p-d,b=s?["M",d,m,"L",g,h,"L",v,m]:["M",m,d,"L",h,g,"L",m,v],w=e.arrowProps;return t(o).createElement("svg",{xmlns:"http://www.w3.org/svg/2000",width:Math.ceil(s?p:f),height:Math.ceil(s?f:p),style:e.style,className:Me(oo(No),"spectrum-Popover-tip"),ref:a,...w},t(o).createElement("path",{className:Me(oo(No),"spectrum-Popover-tip-triangle"),d:b.join(" ")}))}let Bo=(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(Ko,{ref:a,...e},r))}));var jo,$o,Ho,Wo,qo,Go,Qo={};ao(Qo,"spectrum-Modal",(()=>jo),(e=>jo=e)),ao(Qo,"is-open",(()=>$o),(e=>$o=e)),ao(Qo,"spectrum-Modal-wrapper",(()=>Ho),(e=>Ho=e)),ao(Qo,"spectrum-Modal--responsive",(()=>Wo),(e=>Wo=e)),ao(Qo,"spectrum-Modal--fullscreen",(()=>qo),(e=>qo=e)),ao(Qo,"spectrum-Modal--fullscreenTakeover",(()=>Go),(e=>Go=e)),jo="spectrum-Modal_f81956",$o="is-open_f81956",Ho="spectrum-Modal-wrapper_f81956",Wo="spectrum-Modal--responsive_f81956",qo="spectrum-Modal--fullscreen_f81956",Go="spectrum-Modal--fullscreenTakeover_f81956";let Yo={fullscreen:"fullscreen",fullscreenTakeover:"fullscreenTakeover"},Xo=(0,o.forwardRef)((function(e,n){let{type:r,children:i,state:l,isOpen:a}=e,s=Yo[r],{styleProps:u}=tt(e),{modalProps:c,underlayProps:d}=Pr(e,l,n),p=Me(oo(Qo),"spectrum-Modal-wrapper",Me(oo(Eo),"spectrum-Modal-wrapper","react-spectrum-Modal-wrapper")),f=Me(oo(Qo),"spectrum-Modal",{"is-open":a},Me(oo(Eo),"spectrum-Modal","react-spectrum-Modal"),{[`spectrum-Modal--${s}`]:s},u.className),m={"--spectrum-visual-viewport-height":j().height+"px"};return t(o).createElement(t(o).Fragment,null,t(o).createElement(zo,{...d,isOpen:a}),t(o).createElement("div",{className:p,style:m},t(o).createElement("div",{...u,...c,ref:n,className:f,"data-testid":"modal"},i)))}));(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(Xo,{...e,ref:a},r))}));var Zo,Jo,ea,ta,na={};ao(na,"spectrum-Tray",(()=>Zo),(e=>Zo=e)),ao(na,"is-open",(()=>Jo),(e=>Jo=e)),ao(na,"spectrum-Tray-wrapper",(()=>ea),(e=>ea=e)),ao(na,"spectrum-Tray--fixedHeight",(()=>ta),(e=>ta=e)),Zo="spectrum-Tray_23bf66",Jo="is-open_23bf66",ea="spectrum-Tray-wrapper_23bf66",ta="spectrum-Tray--fixedHeight_23bf66";let ra=(0,o.forwardRef)((function(e,n){let{children:r,isOpen:i,isFixedHeight:l,state:a}=e,{styleProps:s}=tt(e),{modalProps:u,underlayProps:c}=Pr({...e,isDismissable:!0},a,n),d={"--spectrum-visual-viewport-height":j().height+"px"},p=Me(oo(na),"spectrum-Tray-wrapper"),f=Me(oo(na),"spectrum-Tray",{"is-open":i,"spectrum-Tray--fixedHeight":l},Me(oo(Eo),"spectrum-Tray","react-spectrum-Tray"),s.className);return t(o).createElement(t(o).Fragment,null,t(o).createElement(zo,{...c,isOpen:i}),t(o).createElement("div",{className:p,style:d},t(o).createElement("div",{...s,...u,className:f,ref:n,"data-testid":"tray"},t(o).createElement(vr,{onDismiss:a.close}),r,t(o).createElement(vr,{onDismiss:a.close}))))})),ia=(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(ra,{...e,ref:a},r))}));o=l("acw62"),o=l("acw62");function la(e){return Y()||X()?e.altKey:e.ctrlKey}function oa(e){return Y()?e.metaKey:e.ctrlKey}function aa(e){let{keyboardDelegate:t,selectionManager:n,onTypeSelect:r}=e,i=(0,o.useRef)({search:"",timeout:null}).current;return{typeSelectProps:{onKeyDownCapture:t.getKeyForSearch?e=>{let l=function(e){return 1!==e.length&&/^[A-Z]/i.test(e)?"":e}(e.key);if(!l||e.ctrlKey||e.metaKey)return;" "===l&&i.search.trim().length>0&&(e.preventDefault(),"continuePropagation"in e||e.stopPropagation()),i.search+=l;let o=t.getKeyForSearch(i.search,n.focusedKey);null==o&&(o=t.getKeyForSearch(i.search)),null!=o&&(n.setFocusedKey(o),r&&r(o)),clearTimeout(i.timeout),i.timeout=setTimeout((()=>{i.search=""}),1e3)}:null}}}function sa(e){let{selectionManager:t,keyboardDelegate:n,ref:r,autoFocus:i=!1,shouldFocusWrap:l=!1,disallowEmptySelection:a=!1,disallowSelectAll:s=!1,selectOnFocus:u="replace"===t.selectionBehavior,disallowTypeAhead:c=!1,shouldUseVirtualFocus:d,allowsTabNavigation:p=!1,isVirtualized:f,scrollRef:m=r}=e,{direction:h}=Se(),g=(0,o.useRef)({top:0,left:0});J(m,"scroll",f?null:()=>{g.current={top:m.current.scrollTop,left:m.current.scrollLeft}});const y=(0,o.useRef)(i);(0,o.useEffect)((()=>{if(y.current){let e=null;"first"===i&&(e=n.getFirstKey()),"last"===i&&(e=n.getLastKey());let l=t.selectedKeys;l.size&&(e=l.values().next().value),t.setFocused(!0),t.setFocusedKey(e),null!=e||d||an(r.current)}y.current=!1}),[]),(0,o.useEffect)((()=>{if(!f&&t.focusedKey&&(null==m?void 0:m.current)){let e=m.current.querySelector(`[data-key="${t.focusedKey}"]`);e&&ee(m.current,e)}}),[f,m,t.focusedKey]);let v,b={onKeyDown:e=>{if(e.altKey&&"Tab"===e.key&&e.preventDefault(),!r.current.contains(e.target))return;const i=(n,r)=>{null!=n&&(t.setFocusedKey(n,r),e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(n):u&&!la(e)&&t.replaceSelection(n))};switch(e.key){case"ArrowDown":if(n.getKeyBelow){var o,c;e.preventDefault();let r=null!=t.focusedKey?n.getKeyBelow(t.focusedKey):null===(o=n.getFirstKey)||void 0===o?void 0:o.call(n);null==r&&l&&(r=null===(c=n.getFirstKey)||void 0===c?void 0:c.call(n,t.focusedKey)),i(r)}break;case"ArrowUp":if(n.getKeyAbove){var d,f;e.preventDefault();let r=null!=t.focusedKey?n.getKeyAbove(t.focusedKey):null===(d=n.getLastKey)||void 0===d?void 0:d.call(n);null==r&&l&&(r=null===(f=n.getLastKey)||void 0===f?void 0:f.call(n,t.focusedKey)),i(r)}break;case"ArrowLeft":if(n.getKeyLeftOf){e.preventDefault(),i(n.getKeyLeftOf(t.focusedKey),"rtl"===h?"first":"last")}break;case"ArrowRight":if(n.getKeyRightOf){e.preventDefault(),i(n.getKeyRightOf(t.focusedKey),"rtl"===h?"last":"first")}break;case"Home":if(n.getFirstKey){e.preventDefault();let r=n.getFirstKey(t.focusedKey,oa(e));t.setFocusedKey(r),oa(e)&&e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(r):u&&t.replaceSelection(r)}break;case"End":if(n.getLastKey){e.preventDefault();let r=n.getLastKey(t.focusedKey,oa(e));t.setFocusedKey(r),oa(e)&&e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(r):u&&t.replaceSelection(r)}break;case"PageDown":if(n.getKeyPageBelow){e.preventDefault(),i(n.getKeyPageBelow(t.focusedKey))}break;case"PageUp":if(n.getKeyPageAbove){e.preventDefault(),i(n.getKeyPageAbove(t.focusedKey))}break;case"a":oa(e)&&"multiple"===t.selectionMode&&!0!==s&&(e.preventDefault(),t.selectAll());break;case"Escape":e.preventDefault(),a||t.clearSelection();break;case"Tab":if(!p){if(e.shiftKey)r.current.focus();else{let e,t,n=Sn(r.current,{tabbable:!0});do{t=n.lastChild(),t&&(e=t)}while(t);e&&!e.contains(document.activeElement)&&I(e)}break}}},onFocus:e=>{if(t.isFocused)e.currentTarget.contains(e.target)||t.setFocused(!1);else if(e.currentTarget.contains(e.target))if(t.setFocused(!0),null==t.focusedKey){let l=e=>{null!=e&&(t.setFocusedKey(e),u&&t.replaceSelection(e))},o=e.relatedTarget;var r,i;o&&e.currentTarget.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING?l(null!==(r=t.lastSelectedKey)&&void 0!==r?r:n.getLastKey()):l(null!==(i=t.firstSelectedKey)&&void 0!==i?i:n.getFirstKey())}else if(!f){m.current.scrollTop=g.current.top,m.current.scrollLeft=g.current.left;let e=m.current.querySelector(`[data-key="${t.focusedKey}"]`);e&&(I(e),ee(m.current,e))}},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||t.setFocused(!1)},onMouseDown(e){m.current===e.target&&e.preventDefault()}},{typeSelectProps:w}=aa({keyboardDelegate:n,selectionManager:t});return c||(b=x(w,b)),d||(v=null==t.focusedKey?0:-1),{collectionProps:{...b,tabIndex:v}}}function ua(e){let{selectionManager:t,key:n,ref:r,shouldSelectOnPressUp:i,isVirtualized:l,shouldUseVirtualFocus:a,focus:s,isDisabled:u,onAction:c,allowsDifferentPressOrigin:d}=e,p=e=>{if("keyboard"===e.pointerType&&la(e))t.toggleSelection(n);else{if("none"===t.selectionMode)return;"single"===t.selectionMode?t.isSelected(n)&&!t.disallowEmptySelection?t.toggleSelection(n):t.replaceSelection(n):e&&e.shiftKey?t.extendSelection(n):"toggle"===t.selectionBehavior||e&&(oa(e)||"touch"===e.pointerType||"virtual"===e.pointerType)?t.toggleSelection(n):t.replaceSelection(n)}};(0,o.useEffect)((()=>{n===t.focusedKey&&t.isFocused&&!a&&document.activeElement!==r.current&&(s?s():an(r.current))}),[r,n,t.focusedKey,t.childFocusStrategy,t.isFocused,a]),u=u||t.isDisabled(n);let f={};a||u?u&&(f.onMouseDown=e=>{e.preventDefault()}):f={tabIndex:n===t.focusedKey?0:-1,onFocus(e){e.target===r.current&&t.setFocusedKey(n)}};let m=!u&&t.canSelectItem(n),h=c&&!u,g=h&&("replace"===t.selectionBehavior?!m:t.isEmpty),y=h&&m&&"replace"===t.selectionBehavior,v=g||y,b=(0,o.useRef)(null),w=v&&m,E=(0,o.useRef)(!1),k=(0,o.useRef)(!1),S={};i?(S.onPressStart=e=>{b.current=e.pointerType,E.current=w,"keyboard"!==e.pointerType||v&&!da()||p(e)},d?(S.onPressUp=e=>{"keyboard"!==e.pointerType&&p(e)},S.onPress=g?()=>c():null):S.onPress=e=>{if(g||y&&"mouse"!==e.pointerType){if("keyboard"===e.pointerType&&!ca())return;c()}else"keyboard"!==e.pointerType&&p(e)}):(S.onPressStart=e=>{b.current=e.pointerType,E.current=w,k.current=g,("mouse"===e.pointerType&&!g||"keyboard"===e.pointerType&&(!c||da()))&&p(e)},S.onPress=e=>{("touch"===e.pointerType||"pen"===e.pointerType||"virtual"===e.pointerType||"keyboard"===e.pointerType&&v&&ca()||"mouse"===e.pointerType&&k.current)&&(v?c():p(e))}),l||(f["data-key"]=n),S.preventFocusOnPress=a;let{pressProps:P,isPressed:T}=gt(S),_=y?e=>{"mouse"===b.current&&(e.stopPropagation(),e.preventDefault(),c())}:void 0,{longPressProps:C}=on({isDisabled:!w,onLongPress(e){"touch"===e.pointerType&&(p(e),t.setSelectionBehavior("toggle"))}});return{itemProps:x(f,m||g?P:{},w?C:{},{onDoubleClick:_,onDragStartCapture:e=>{"touch"===b.current&&E.current&&e.preventDefault()}}),isPressed:T,isSelected:t.isSelected(n),isDisabled:u,allowsSelection:m,hasAction:v}}function ca(){let e=window.event;return"Enter"===(null==e?void 0:e.key)}function da(){let e=window.event;return" "===(null==e?void 0:e.key)||"Space"===(null==e?void 0:e.code)}class pa{getKeyBelow(e){for(e=this.collection.getKeyAfter(e);null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyAfter(e)}}getKeyAbove(e){for(e=this.collection.getKeyBefore(e);null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyBefore(e)}}getFirstKey(){let e=this.collection.getFirstKey();for(;null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyAfter(e)}}getLastKey(){let e=this.collection.getLastKey();for(;null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyBefore(e)}}getItem(e){return this.ref.current.querySelector(`[data-key="${e}"]`)}getKeyPageAbove(e){let t=this.ref.current,n=this.getItem(e);if(!n)return null;let r=Math.max(0,n.offsetTop+n.offsetHeight-t.offsetHeight);for(;n&&n.offsetTop>r;)e=this.getKeyAbove(e),n=this.getItem(e);return e}getKeyPageBelow(e){let t=this.ref.current,n=this.getItem(e);if(!n)return null;let r=Math.min(t.scrollHeight,n.offsetTop-n.offsetHeight+t.offsetHeight);for(;n&&n.offsetTopl||new pa(n,"selection"===g?new Set:r,i,h)),[l,n,r,i,h,g]),{collectionProps:v}=sa({ref:i,selectionManager:t,keyboardDelegate:y,autoFocus:a,shouldFocusWrap:s,disallowEmptySelection:c,selectOnFocus:d,disallowTypeAhead:p,shouldUseVirtualFocus:f,allowsTabNavigation:m,isVirtualized:u,scrollRef:i});return{listProps:v}}o=l("acw62");function ma(e){return null}function ha(e){return null!=e.hasChildItems?e.hasChildItems:!!e.childItems||!!(e.title&&t(o).Children.count(e.children)>0)}ma.getCollectionNode=function*(e,n){let{childItems:r,title:i,children:l}=e,a=e.title||e.children,s=e.textValue||("string"==typeof a?a:"")||e["aria-label"]||"";s||(null==n?void 0:n.suppressTextValueWarning)||console.warn(" with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop."),yield{type:"item",props:e,rendered:a,textValue:s,"aria-label":e["aria-label"],hasChildNodes:ha(e),*childNodes(){if(r)for(let e of r)yield{type:"item",value:e};else if(i){let e=[];t(o).Children.forEach(l,(t=>{e.push({type:"item",element:t})})),yield*e}}}};let ga=ma;function ya(e){return null}ya.getCollectionNode=function*(e){let{children:n,title:r,items:i}=e;yield{type:"section",props:e,hasChildNodes:!0,rendered:r,"aria-label":e["aria-label"],*childNodes(){if("function"==typeof n){if(!i)throw new Error("props.children was a function but props.items is missing");for(let e of i)yield{type:"item",value:e,renderer:n}}else{let e=[];t(o).Children.forEach(n,(t=>{e.push({type:"item",element:t})})),yield*e}}}};class va{build(e,t){return this.context=t,ba((()=>this.iterateCollection(e)))}*iterateCollection(e){let{children:n,items:r}=e;if("function"==typeof n){if(!r)throw new Error("props.children was a function but props.items is missing");for(let t of e.items)yield*this.getFullNode({value:t},{renderer:n})}else{let e=[];t(o).Children.forEach(n,(t=>{e.push(t)}));let r=0;for(let t of e){let e=this.getFullNode({element:t,index:r},{});for(let t of e)r++,yield t}}}getKey(e,t,n,r){if(null!=e.key)return e.key;if("cell"===t.type&&null!=t.key)return`${r}${t.key}`;let i=t.value;if(null!=i){var l;let e=null!==(l=i.key)&&void 0!==l?l:i.id;if(null==e)throw new Error("No key found for item");return e}return r?`${r}.${t.index}`:`$.${t.index}`}getChildState(e,t){return{renderer:t.renderer||e.renderer}}*getFullNode(e,n,r,i){let l=e.element;if(!l&&e.value&&n&&n.renderer){let t=this.cache.get(e.value);if(t&&(!t.shouldInvalidate||!t.shouldInvalidate(this.context)))return t.index=e.index,t.parentKey=i?i.key:null,void(yield t);l=n.renderer(e.value)}if(t(o).isValidElement(l)){let t=l.type;if("function"!=typeof t&&"function"!=typeof t.getCollectionNode){let e="function"==typeof l.type?l.type.name:l.type;throw new Error(`Unknown element <${e}> in collection.`)}let o=t.getCollectionNode(l.props,this.context),a=e.index,s=o.next();for(;!s.done&&s.value;){let t=s.value;e.index=a;let u=t.key;u||(u=t.element?null:this.getKey(l,e,n,r));let c=[...this.getFullNode({...t,key:u,index:a,wrapper:wa(e.wrapper,t.wrapper)},this.getChildState(n,t),r?`${r}${l.key}`:l.key,i)];for(let n of c){if(n.value=t.value||e.value,n.value&&this.cache.set(n.value,n),e.type&&n.type!==e.type)throw new Error(`Unsupported type <${Ea(n.type)}> in <${Ea(i.type)}>. Only <${Ea(e.type)}> is supported.`);a++,yield n}s=o.next(c)}return}if(null==e.key)return;let a=this,s={type:e.type,props:e.props,key:e.key,parentKey:i?i.key:null,value:e.value,level:i?i.level+1:0,index:e.index,rendered:e.rendered,textValue:e.textValue,"aria-label":e["aria-label"],wrapper:e.wrapper,shouldInvalidate:e.shouldInvalidate,hasChildNodes:e.hasChildNodes,childNodes:ba((function*(){if(!e.hasChildNodes)return;let t=0;for(let r of e.childNodes()){null!=r.key&&(r.key=`${s.key}${r.key}`),r.index=t;let e=a.getFullNode(r,a.getChildState(n,r),s.key,s);for(let n of e)t++,yield n}}))};yield s}constructor(){ae(this,"cache",new WeakMap)}}function ba(e){let t=[],n=null;return{*[Symbol.iterator](){for(let e of t)yield e;n||(n=e());for(let e of n)t.push(e),yield e}}}function wa(e,t){return e&&t?n=>e(t(n)):e||(t||void 0)}function Ea(e){return e[0].toUpperCase()+e.slice(1)}function ka(e,t,n,r=[]){let i=(0,o.useMemo)((()=>new va),[]),l=(0,o.useRef)(null);return(0,o.useMemo)((()=>{let r=i.build(e,n);return l.current=t(r,l.current),l.current}),[i,e.children,e.items,n,...r])}const Sa=new WeakMap;function xa(e){let t=Sa.get(e);if(null!=t)return t;t=0;for(let n of e)"section"===n.type?t+=xa(n.childNodes):t++;return Sa.set(e,t),t}function Pa(e){return e&&e.__esModule?e.default:e}var Ta;function _a(e,t,n){let{type:r="menu",isDisabled:i,trigger:l="press"}=e,o=w(),{triggerProps:a,overlayProps:s}=ir({type:r},t,n),u=Pe(Pa(Ta)),{longPressProps:c}=on({isDisabled:i||"longPress"!==l,accessibilityDescription:u.format("longPressMessage"),onLongPressStart(){t.close()},onLongPress(){t.open("first")}}),d={onPressStart(e){"touch"===e.pointerType||"keyboard"===e.pointerType||i||t.toggle("virtual"===e.pointerType?"first":null)},onPress(e){"touch"!==e.pointerType||i||t.toggle()}};return delete a.onPress,{menuTriggerProps:{...a,..."press"===l?d:c,id:o,onKeyDown:e=>{if(!i&&("longPress"!==l||e.altKey)&&n&&n.current)switch(e.key){case"Enter":case" ":if("longPress"===l)return;case"ArrowDown":"continuePropagation"in e||e.stopPropagation(),e.preventDefault(),t.toggle("first");break;case"ArrowUp":"continuePropagation"in e||e.stopPropagation(),e.preventDefault(),t.toggle("last")}}},menuProps:{...s,"aria-labelledby":o,autoFocus:t.focusStrategy||!0,onClose:t.close}}}Ta={"ar-AE":{longPressMessage:"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة"},"bg-BG":{longPressMessage:"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто"},"cs-CZ":{longPressMessage:"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku"},"da-DK":{longPressMessage:"Langt tryk eller tryk på Alt + pil ned for at åbne menuen"},"de-DE":{longPressMessage:"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen"},"el-GR":{longPressMessage:"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού"},"en-US":{longPressMessage:"Long press or press Alt + ArrowDown to open menu"},"es-ES":{longPressMessage:"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú"},"et-EE":{longPressMessage:"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool"},"fi-FI":{longPressMessage:"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli"},"fr-FR":{longPressMessage:"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu."},"he-IL":{longPressMessage:"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט"},"hr-HR":{longPressMessage:"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika"},"hu-HU":{longPressMessage:"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához"},"it-IT":{longPressMessage:"Premere a lungo o premere Alt + Freccia giù per aprire il menu"},"ja-JP":{longPressMessage:"長押しまたは Alt+下矢印キーでメニューを開く"},"ko-KR":{longPressMessage:"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기"},"lt-LT":{longPressMessage:"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“."},"lv-LV":{longPressMessage:"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa"},"nb-NO":{longPressMessage:"Langt trykk eller trykk Alt + PilNed for å åpne menyen"},"nl-NL":{longPressMessage:"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen"},"pl-PL":{longPressMessage:"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu"},"pt-BR":{longPressMessage:"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu"},"pt-PT":{longPressMessage:"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu"},"ro-RO":{longPressMessage:"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul"},"ru-RU":{longPressMessage:"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню"},"sk-SK":{longPressMessage:"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol"},"sl-SI":{longPressMessage:"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol"},"sr-SP":{longPressMessage:"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni"},"sv-SE":{longPressMessage:"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn"},"tr-TR":{longPressMessage:"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın"},"uk-UA":{longPressMessage:"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню"},"zh-CN":{longPressMessage:"长按或按 Alt + 向下方向键以打开菜单"},"zh-TW":{longPressMessage:"長按或按 Alt+向下鍵以開啟功能表"}};const Ca=new WeakMap;function Ia(e,t,n){let{shouldFocusWrap:r=!0,...i}=e;e["aria-label"]||e["aria-labelledby"]||console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let l=C(e,{labelable:!0}),{listProps:o}=fa({...i,ref:n,selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys,shouldFocusWrap:r});return Ca.set(t,{onClose:e.onClose,onAction:e.onAction}),{menuProps:x(l,{role:"menu",...o})}}function Ma(e,t,n){let{key:r,closeOnSelect:i,isVirtualized:l}=e;var o;let a=null!==(o=e.isDisabled)&&void 0!==o?o:t.disabledKeys.has(r);var s;let u=null!==(s=e.isSelected)&&void 0!==s?s:t.selectionManager.isSelected(r),c=t.selectionManager.focusedKey===r,d=Ca.get(t),p=e.onClose||d.onClose,f=e.onAction||d.onAction,m="menuitem";"single"===t.selectionManager.selectionMode?m="menuitemradio":"multiple"===t.selectionManager.selectionMode&&(m="menuitemcheckbox");let h=k(),g=k(),y=k(),v={"aria-disabled":a,role:m,"aria-label":e["aria-label"],"aria-labelledby":h,"aria-describedby":[g,y].filter(Boolean).join(" ")||void 0};"none"!==t.selectionManager.selectionMode&&(v["aria-checked"]=u),l&&(v["aria-posinset"]=t.collection.getItem(r).index,v["aria-setsize"]=xa(t.collection));let{itemProps:b}=ua({selectionManager:t.selectionManager,key:r,ref:n,shouldSelectOnPressUp:!0,allowsDifferentPressOrigin:!0}),{pressProps:w,isPressed:E}=gt({onPressStart:e=>{"keyboard"===e.pointerType&&f&&f(r)},onPressUp:e=>{"keyboard"!==e.pointerType&&(f&&f(r),p&&(null!=i?i:"multiple"!==t.selectionManager.selectionMode)&&p())},isDisabled:a}),{hoverProps:S}=Jt({isDisabled:a,onHoverStart(){jt()||(t.selectionManager.setFocused(!0),t.selectionManager.setFocusedKey(r))}});return{menuItemProps:{...v,...x(b,w,S,{onKeyDown:e=>{if(!e.repeat)switch(e.key){case" ":!a&&"none"===t.selectionManager.selectionMode&&!1!==i&&p&&p();break;case"Enter":!a&&!1!==i&&p&&p()}}})},labelProps:{id:h},descriptionProps:{id:g},keyboardShortcutProps:{id:y},isFocused:c,isSelected:u,isPressed:E,isDisabled:a}}function La(e){let{heading:t,"aria-label":n}=e,r=w();return{itemProps:{role:"presentation"},headingProps:t?{id:r,"aria-hidden":!0}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":t?r:void 0}}}function Na(e){let[t,n]=s(e.isOpen,e.defaultOpen||!1,e.onOpenChange);return{isOpen:t,setOpen:n,open(){n(!0)},close(){n(!1)},toggle(){n(!t)}}}o=l("acw62");function Ra(e){let t=Na(e),[n,r]=(0,o.useState)(null);return{focusStrategy:n,...t,open(e=null){r(e),t.open()},toggle(e=null){r(e),t.toggle()}}}o=l("acw62"),o=l("acw62");class Oa extends Set{constructor(e,t,n){super(e),e instanceof Oa?(this.anchorKey=t||e.anchorKey,this.currentKey=n||e.currentKey):(this.anchorKey=t,this.currentKey=n)}}function Aa(e){let{selectionMode:t="none",disallowEmptySelection:n,allowDuplicateSelectionEvents:r,selectionBehavior:i="toggle",disabledBehavior:l="all"}=e,a=(0,o.useRef)(!1),[,u]=(0,o.useState)(!1),c=(0,o.useRef)(null),d=(0,o.useRef)(null),[,p]=(0,o.useState)(null),f=(0,o.useMemo)((()=>Fa(e.selectedKeys)),[e.selectedKeys]),m=(0,o.useMemo)((()=>Fa(e.defaultSelectedKeys,new Oa)),[e.defaultSelectedKeys]),[h,g]=s(f,m,e.onSelectionChange),y=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),[v,b]=(0,o.useState)(i);"replace"===i&&"toggle"===v&&"object"==typeof h&&0===h.size&&b("replace");let w=(0,o.useRef)(i);return(0,o.useEffect)((()=>{i!==w.current&&(b(i),w.current=i)}),[i]),{selectionMode:t,disallowEmptySelection:n,selectionBehavior:v,setSelectionBehavior:b,get isFocused(){return a.current},setFocused(e){a.current=e,u(e)},get focusedKey(){return c.current},get childFocusStrategy(){return d.current},setFocusedKey(e,t="first"){c.current=e,d.current=t,p(e)},selectedKeys:h,setSelectedKeys(e){!r&&function(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}(e,h)||g(e)},disabledKeys:y,disabledBehavior:l}}function Fa(e,t){return e?"all"===e?"all":new Oa(e):t}class za{get selectionMode(){return this.state.selectionMode}get disallowEmptySelection(){return this.state.disallowEmptySelection}get selectionBehavior(){return this.state.selectionBehavior}setSelectionBehavior(e){this.state.setSelectionBehavior(e)}get isFocused(){return this.state.isFocused}setFocused(e){this.state.setFocused(e)}get focusedKey(){return this.state.focusedKey}get childFocusStrategy(){return this.state.childFocusStrategy}setFocusedKey(e,t){(null==e||this.collection.getItem(e))&&this.state.setFocusedKey(e,t)}get selectedKeys(){return"all"===this.state.selectedKeys?new Set(this.getSelectAllKeys()):this.state.selectedKeys}get rawSelection(){return this.state.selectedKeys}isSelected(e){return"none"!==this.state.selectionMode&&(e=this.getKey(e),"all"===this.state.selectedKeys?this.canSelectItem(e):this.state.selectedKeys.has(e))}get isEmpty(){return"all"!==this.state.selectedKeys&&0===this.state.selectedKeys.size}get isSelectAll(){if(this.isEmpty)return!1;if("all"===this.state.selectedKeys)return!0;if(null!=this._isSelectAll)return this._isSelectAll;let e=this.getSelectAllKeys(),t=this.state.selectedKeys;return this._isSelectAll=e.every((e=>t.has(e))),this._isSelectAll}get firstSelectedKey(){let e=null;for(let t of this.state.selectedKeys){let n=this.collection.getItem(t);(!e||(null==n?void 0:n.index)e.index)&&(e=n)}return null==e?void 0:e.key}get disabledKeys(){return this.state.disabledKeys}get disabledBehavior(){return this.state.disabledBehavior}extendSelection(e){if("none"===this.selectionMode)return;if("single"===this.selectionMode)return void this.replaceSelection(e);let t;if(e=this.getKey(e),"all"===this.state.selectedKeys)t=new Oa([e],e,e);else{let n=this.state.selectedKeys,r=n.anchorKey||e;t=new Oa(n,r,e);for(let i of this.getKeyRange(r,n.currentKey||e))t.delete(i);for(let n of this.getKeyRange(e,r))this.canSelectItem(n)&&t.add(n)}this.state.setSelectedKeys(t)}getKeyRange(e,t){let n=this.collection.getItem(e),r=this.collection.getItem(t);return n&&r?n.index<=r.index?this.getKeyRangeInternal(e,t):this.getKeyRangeInternal(t,e):[]}getKeyRangeInternal(e,t){let n=[],r=e;for(;r;){let e=this.collection.getItem(r);if((e&&"item"===e.type||"cell"===e.type&&this.allowsCellSelection)&&n.push(r),r===t)return n;r=this.collection.getKeyAfter(r)}return[]}getKey(e){let t=this.collection.getItem(e);if(!t)return e;if("cell"===t.type&&this.allowsCellSelection)return e;for(;"item"!==t.type&&null!=t.parentKey;)t=this.collection.getItem(t.parentKey);return t&&"item"===t.type?t.key:null}toggleSelection(e){if("none"===this.selectionMode)return;if("single"===this.selectionMode&&!this.isSelected(e))return void this.replaceSelection(e);if(null==(e=this.getKey(e)))return;let t=new Oa("all"===this.state.selectedKeys?this.getSelectAllKeys():this.state.selectedKeys);t.has(e)?t.delete(e):this.canSelectItem(e)&&(t.add(e),t.anchorKey=e,t.currentKey=e),this.disallowEmptySelection&&0===t.size||this.state.setSelectedKeys(t)}replaceSelection(e){if("none"===this.selectionMode)return;if(null==(e=this.getKey(e)))return;let t=this.canSelectItem(e)?new Oa([e],e,e):new Oa;this.state.setSelectedKeys(t)}setSelectedKeys(e){if("none"===this.selectionMode)return;let t=new Oa;for(let n of e)if(n=this.getKey(n),null!=n&&(t.add(n),"single"===this.selectionMode))break;this.state.setSelectedKeys(t)}getSelectAllKeys(){let e=[],t=n=>{for(;n;){if(this.canSelectItem(n)){let r=this.collection.getItem(n);"item"===r.type&&e.push(n),r.hasChildNodes&&(this.allowsCellSelection||"item"!==r.type)&&t([...r.childNodes][0].key)}n=this.collection.getKeyAfter(n)}};return t(this.collection.getFirstKey()),e}selectAll(){"multiple"===this.selectionMode&&this.state.setSelectedKeys("all")}clearSelection(){!this.disallowEmptySelection&&("all"===this.state.selectedKeys||this.state.selectedKeys.size>0)&&this.state.setSelectedKeys(new Oa)}toggleSelectAll(){this.isSelectAll?this.clearSelection():this.selectAll()}select(e,t){"none"!==this.selectionMode&&("single"===this.selectionMode?this.isSelected(e)&&!this.disallowEmptySelection?this.toggleSelection(e):this.replaceSelection(e):"toggle"===this.selectionBehavior||t&&("touch"===t.pointerType||"virtual"===t.pointerType)?this.toggleSelection(e):this.replaceSelection(e))}isSelectionEqual(e){if(e===this.state.selectedKeys)return!0;let t=this.selectedKeys;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;for(let n of t)if(!e.has(n))return!1;return!0}canSelectItem(e){if("none"===this.state.selectionMode||this.state.disabledKeys.has(e))return!1;let t=this.collection.getItem(e);return!(!t||"cell"===t.type&&!this.allowsCellSelection)}isDisabled(e){return this.state.disabledKeys.has(e)&&"all"===this.state.disabledBehavior}constructor(e,t,n){var r;this.collection=e,this.state=t,this.allowsCellSelection=null!==(r=null==n?void 0:n.allowsCellSelection)&&void 0!==r&&r,this._isSelectAll=null}}let Da=Symbol.iterator;class Ka{*[Da](){yield*this.iterable}get size(){return this.keyMap.size}getKeys(){return this.keyMap.keys()}getKeyBefore(e){let t=this.keyMap.get(e);return t?t.prevKey:null}getKeyAfter(e){let t=this.keyMap.get(e);return t?t.nextKey:null}getFirstKey(){return this.firstKey}getLastKey(){return this.lastKey}getItem(e){return this.keyMap.get(e)}at(e){const t=[...this.getKeys()];return this.getItem(t[e])}constructor(e,{expandedKeys:t}={}){ae(this,"keyMap",new Map),this.iterable=e,t=t||new Set;let n,r=e=>{if(this.keyMap.set(e.key,e),e.childNodes&&("section"===e.type||t.has(e.key)))for(let t of e.childNodes)r(t)};for(let t of e)r(t);let i=0;for(let[e,t]of this.keyMap)n?(n.nextKey=e,t.prevKey=n.key):(this.firstKey=e,t.prevKey=void 0),"item"===t.type&&(t.index=i++),n=t,n.nextKey=void 0;this.lastKey=null==n?void 0:n.key}}function Va(e){let[t,n]=s(e.expandedKeys?new Set(e.expandedKeys):void 0,e.defaultExpandedKeys?new Set(e.defaultExpandedKeys):new Set,e.onExpandedChange),r=Aa(e),i=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),l=ka(e,(e=>new Ka(e,{expandedKeys:t})),null,[t]);(0,o.useEffect)((()=>{null==r.focusedKey||l.getItem(r.focusedKey)||r.setFocusedKey(null)}),[l,r.focusedKey]);return{collection:l,expandedKeys:t,disabledKeys:i,toggleKey:e=>{n(function(e,t){let n=new Set(e);n.has(t)?n.delete(t):n.add(t);return n}(t,e))},selectionManager:new za(l,r)}}var Ua;Ua=function(e){return qa.default.createElement(Gi,e,qa.default.createElement(Ba.CheckmarkMedium,null))};var Ba={};Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.CheckmarkMedium=Wa;var ja=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function $a(){return $a=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Wa(e){var t=e.scale,n=void 0===t?"M":t,r=Ha(e,["scale"]);return ja.default.createElement("svg",$a({},r,r),"L"===n&&ja.default.createElement("path",{d:"M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z"}),"M"===n&&ja.default.createElement("path",{d:"M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z"}))}Wa.displayName="CheckmarkMedium";var qa=Br(l("acw62"));o=l("acw62");function Ga(e){return e&&e.__esModule?e.default:e}function Qa(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const Ya={...Ue,autoFlow:["gridAutoFlow",nt],autoColumns:["gridAutoColumns",Xa],autoRows:["gridAutoRows",Xa],areas:["gridTemplateAreas",function(e){return e.map((e=>`"${e}"`)).join("\n")}],columns:["gridTemplateColumns",Za],rows:["gridTemplateRows",Za],gap:["gap",Ge],rowGap:["rowGap",Ge],columnGap:["columnGap",Ge],justifyItems:["justifyItems",nt],justifyContent:["justifyContent",nt],alignItems:["alignItems",nt],alignContent:["alignContent",nt]};function Xa(e){return/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(e)?e:Ge(e)}function Za(e){return Array.isArray(e)?e.map(Xa).join(" "):Xa(e)}const Ja=(0,o.forwardRef)((function(e,n){let{children:r,...i}=e,{styleProps:l}=tt(i,Ya);l.style.display="grid";let a=Oe(n);return t(o).createElement("div",{...C(i),...l,ref:a},r)}));var es,ts,ns,rs={};Qa(rs,"flex-container",(()=>es),(e=>es=e)),Qa(rs,"flex",(()=>ts),(e=>ts=e)),Qa(rs,"flex-gap",(()=>ns),(e=>ns=e)),es="flex-container_e15493",ts="flex_e15493",ns="flex-gap_e15493";const is={direction:["flexDirection",nt],wrap:["flexWrap",function(e){return"boolean"==typeof e?e?"wrap":"nowrap":e}],justifyContent:["justifyContent",ls],alignItems:["alignItems",ls],alignContent:["alignContent",ls]};function ls(e){return"start"===e?"flex-start":"end"===e?"flex-end":e}let os=null;const as=(0,o.forwardRef)((function(e,n){let{children:r,...i}=e,l=Ve(),a=(null==l?void 0:l.matchedBreakpoints)||["base"],{styleProps:s}=tt(i),{styleProps:u}=tt(i,is),c=Oe(n),d=m();if((e.gap||e.rowGap||e.columnGap)&&(d||!function(){if(null!=os)return os;if("undefined"==typeof document)return!1;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),os=1===e.scrollHeight,e.parentNode.removeChild(e),os}())){let n={...u.style,"--column-gap":null!=e.columnGap?Qe(e.columnGap,a):void 0,"--row-gap":null!=e.rowGap?Qe(e.rowGap,a):void 0,"--gap":null!=e.gap?Qe(e.gap,a):void 0};return t(o).createElement("div",{...C(i),...s,className:Me(Ga(rs),"flex-container",s.className),ref:c},t(o).createElement("div",{className:Me(Ga(rs),"flex","flex-gap"),style:n},r))}let p={...s.style,...u.style};return null!=e.gap&&(p.gap=Qe(e.gap,a)),null!=e.columnGap&&(p.columnGap=Qe(e.columnGap,a)),null!=e.rowGap&&(p.rowGap=Qe(e.rowGap,a)),t(o).createElement("div",{...C(i),className:Me(Ga(rs),"flex",s.className),style:p,ref:c},r)}));function ss(e){let t,n=C(e,{labelable:!0});return"vertical"===e.orientation&&(t="vertical"),"hr"!==e.elementType?{separatorProps:{...n,role:"separator","aria-orientation":t}}:{separatorProps:n}}var us;us=function(e){return fs.default.createElement(qi,e,fs.default.createElement(cs.A4uMore,null))};var cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.A4uMore=function(e){var t=ps({},e);return ds.default.createElement("svg",ps({viewBox:"0 0 36 36"},t,t),ds.default.createElement("circle",{fillRule:"evenodd",cx:"17.8",cy:"18.2",r:"3.4"}),ds.default.createElement("circle",{fillRule:"evenodd",cx:"29.5",cy:"18.2",r:"3.4"}),ds.default.createElement("circle",{fillRule:"evenodd",cx:"6.1",cy:"18.2",r:"3.4"}))};var ds=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function ps(){return ps=Object.assign||function(e){for(var t=1;tys),(e=>ys=e)),hs(Us,"spectrum-Menu",(()=>vs),(e=>vs=e)),hs(Us,"spectrum-Menu-sectionHeading",(()=>bs),(e=>bs=e)),hs(Us,"spectrum-Menu-checkmark",(()=>ws),(e=>ws=e)),hs(Us,"spectrum-Menu-item",(()=>Es),(e=>Es=e)),hs(Us,"is-selected",(()=>ks),(e=>ks=e)),hs(Us,"spectrum-Icon",(()=>Ss),(e=>Ss=e)),hs(Us,"spectrum-Menu-itemLabel",(()=>xs),(e=>xs=e)),hs(Us,"spectrum-Menu-itemIcon",(()=>Ps),(e=>Ps=e)),hs(Us,"spectrum-Menu-itemLabel--wrapping",(()=>Ts),(e=>Ts=e)),hs(Us,"spectrum-Menu-divider",(()=>_s),(e=>_s=e)),hs(Us,"spectrum-Menu-itemGrid",(()=>Cs),(e=>Cs=e)),hs(Us,"is-selectable",(()=>Is),(e=>Is=e)),hs(Us,"spectrum-Menu-end",(()=>Ms),(e=>Ms=e)),hs(Us,"spectrum-Menu-icon",(()=>Ls),(e=>Ls=e)),hs(Us,"spectrum-Menu-description",(()=>Ns),(e=>Ns=e)),hs(Us,"spectrum-Menu-keyboard",(()=>Rs),(e=>Rs=e)),hs(Us,"focus-ring",(()=>Os),(e=>Os=e)),hs(Us,"is-focused",(()=>As),(e=>As=e)),hs(Us,"is-hovered",(()=>Fs),(e=>Fs=e)),hs(Us,"is-highlighted",(()=>zs),(e=>zs=e)),hs(Us,"is-open",(()=>Ds),(e=>Ds=e)),hs(Us,"is-active",(()=>Ks),(e=>Ks=e)),hs(Us,"is-disabled",(()=>Vs),(e=>Vs=e)),ys="spectrum-Menu-popover_7ea47c",vs="spectrum-Menu_7ea47c",bs="spectrum-Menu-sectionHeading_7ea47c",ws="spectrum-Menu-checkmark_7ea47c",Es="spectrum-Menu-item_7ea47c",ks="is-selected_7ea47c",Ss="spectrum-Icon_7ea47c",xs="spectrum-Menu-itemLabel_7ea47c",Ps="spectrum-Menu-itemIcon_7ea47c",Ts="spectrum-Menu-itemLabel--wrapping_7ea47c",_s="spectrum-Menu-divider_7ea47c",Cs="spectrum-Menu-itemGrid_7ea47c",Is="is-selectable_7ea47c",Ms="spectrum-Menu-end_7ea47c",Ls="spectrum-Menu-icon_7ea47c",Ns="spectrum-Menu-description_7ea47c",Rs="spectrum-Menu-keyboard_7ea47c",Os="focus-ring_7ea47c",As="is-focused_7ea47c",Fs="is-hovered_7ea47c",zs="is-highlighted_7ea47c",Ds="is-open_7ea47c",Ks="is-active_7ea47c",Vs="is-disabled_7ea47c";let Bs=(0,o.forwardRef)((function(e,n){let r,i=(0,o.useRef)(),l=Oe(n)||i,a=(0,o.useRef)(),{children:s,align:u="start",shouldFlip:c=!0,direction:d="bottom",closeOnSelect:p,trigger:f="press"}=e,[m,h]=t(o).Children.toArray(s),g=Ra(e),{menuTriggerProps:y,menuProps:v}=_a({trigger:f},g,l);switch(d){case"left":case"right":case"start":case"end":r=`${d} ${"end"===u?"bottom":"top"}`;break;default:r=`${d} ${u}`}let b,w=ut(),E={...v,ref:a,onClose:g.close,closeOnSelect:p,autoFocus:g.focusStrategy||!0,UNSAFE_style:w?{width:"100%",maxHeight:"inherit"}:void 0,UNSAFE_className:Me(ms(Us),{"spectrum-Menu-popover":!w})};return b=w?t(o).createElement(ia,{state:g},h):t(o).createElement(Bo,{state:g,triggerRef:l,scrollRef:a,placement:r,hideArrow:!0,shouldFlip:c},h),t(o).createElement(o.Fragment,null,t(o).createElement(ot,{slots:{actionButton:{holdAffordance:"longPress"===f}}},t(o).createElement(Tt,{...y,ref:l,isPressed:g.isOpen},m)),t(o).createElement(gs.Provider,{value:E},b))}));function js(e){let{item:n,state:r,isVirtualized:i,onAction:l}=e,{onClose:a,closeOnSelect:s}=(0,o.useContext)(gs),{rendered:u,key:c}=n,d=r.selectionManager.isSelected(c),p=r.disabledKeys.has(c),f=(0,o.useRef)(),{menuItemProps:m,labelProps:h,descriptionProps:g,keyboardShortcutProps:y}=Ma({isSelected:d,isDisabled:p,"aria-label":n["aria-label"],key:c,onClose:a,closeOnSelect:s,isVirtualized:i,onAction:l},r,f),{hoverProps:v,isHovered:b}=Jt({isDisabled:p}),w="string"==typeof u?t(o).createElement(Ln,null,u):u;return t(o).createElement(Cn,{focusRingClass:Me(ms(Us),"focus-ring")},t(o).createElement("li",{...x(m,v),ref:f,className:Me(ms(Us),"spectrum-Menu-item",{"is-disabled":p,"is-selected":d,"is-selectable":"none"!==r.selectionManager.selectionMode,"is-hovered":b})},t(o).createElement(Ja,{UNSAFE_className:Me(ms(Us),"spectrum-Menu-itemGrid")},t(o).createElement(at,null,t(o).createElement(ot,{slots:{text:{UNSAFE_className:ms(Us)["spectrum-Menu-itemLabel"],...h},end:{UNSAFE_className:ms(Us)["spectrum-Menu-end"],...g},icon:{UNSAFE_className:ms(Us)["spectrum-Menu-icon"],size:"S"},description:{UNSAFE_className:ms(Us)["spectrum-Menu-description"],...g},keyboard:{UNSAFE_className:ms(Us)["spectrum-Menu-keyboard"],...y}}},w,d&&t(o).createElement(Ua,{slot:"checkmark",UNSAFE_className:Me(ms(Us),"spectrum-Menu-checkmark")}))))))}function $s(e){let{item:n,state:r,onAction:i}=e,{itemProps:l,headingProps:a,groupProps:s}=La({heading:n.rendered,"aria-label":n["aria-label"]}),{separatorProps:u}=ss({elementType:"li"});return t(o).createElement(o.Fragment,null,n.key!==r.collection.getFirstKey()&&t(o).createElement("li",{...u,className:Me(ms(Us),"spectrum-Menu-divider")}),t(o).createElement("li",l,n.rendered&&t(o).createElement("span",{...a,className:Me(ms(Us),"spectrum-Menu-sectionHeading")},n.rendered),t(o).createElement("ul",{...s,className:Me(ms(Us),"spectrum-Menu")},[...n.childNodes].map((e=>{let n=t(o).createElement(js,{key:e.key,item:e,state:r,onAction:i});return e.wrapper&&(n=e.wrapper(n)),n})))))}const Hs=t(o).forwardRef((function(e,n){let r=(0,o.useContext)(gs),i={...x(r,e)},l=Oe(n),a=Va(i),{menuProps:s}=Ia(i,a,l),{styleProps:u}=tt(i);return K(r,l),t(o).createElement("ul",{...s,...u,ref:l,className:Me(ms(Us),"spectrum-Menu",u.className)},[...a.collection].map((e=>{if("section"===e.type)return t(o).createElement($s,{key:e.key,item:e,state:a,onAction:i.onAction});let n=t(o).createElement(js,{key:e.key,item:e,state:a,onAction:i.onAction});return e.wrapper&&(n=e.wrapper(n)),n})))}));var Ws;Ws={"ar-AE":{moreActions:"المزيد من الإجراءات"},"bg-BG":{moreActions:"Повече действия"},"cs-CZ":{moreActions:"Další akce"},"da-DK":{moreActions:"Flere handlinger"},"de-DE":{moreActions:"Mehr Aktionen"},"el-GR":{moreActions:"Περισσότερες ενέργειες"},"en-US":{moreActions:"More actions"},"es-ES":{moreActions:"Más acciones"},"et-EE":{moreActions:"Veel toiminguid"},"fi-FI":{moreActions:"Lisää toimintoja"},"fr-FR":{moreActions:"Autres actions"},"he-IL":{moreActions:"פעולות נוספות"},"hr-HR":{moreActions:"Dodatne radnje"},"hu-HU":{moreActions:"További lehetőségek"},"it-IT":{moreActions:"Altre azioni"},"ja-JP":{moreActions:"その他のアクション"},"ko-KR":{moreActions:"기타 작업"},"lt-LT":{moreActions:"Daugiau veiksmų"},"lv-LV":{moreActions:"Citas darbības"},"nb-NO":{moreActions:"Flere handlinger"},"nl-NL":{moreActions:"Meer handelingen"},"pl-PL":{moreActions:"Więcej akcji"},"pt-BR":{moreActions:"Mais ações"},"pt-PT":{moreActions:"Mais ações"},"ro-RO":{moreActions:"Mai multe acțiuni"},"ru-RU":{moreActions:"Дополнительные действия"},"sk-SK":{moreActions:"Ďalšie akcie"},"sl-SI":{moreActions:"Več možnosti"},"sr-SP":{moreActions:"Dodatne radnje"},"sv-SE":{moreActions:"Fler åtgärder"},"tr-TR":{moreActions:"Daha fazla eylem"},"uk-UA":{moreActions:"Більше дій"},"zh-CN":{moreActions:"更多操作"},"zh-TW":{moreActions:"更多動作"}};(0,o.forwardRef)((function(e,n){e=lt(e,"actionMenu");let r=Pe(ms(Ws)),i=C(e,{labelable:!0});return void 0===i["aria-label"]&&(i["aria-label"]=r.format("moreActions")),t(o).createElement(Bs,{isOpen:e.isOpen,defaultOpen:e.defaultOpen,onOpenChange:e.onOpenChange,align:e.align,direction:e.direction,shouldFlip:e.shouldFlip},t(o).createElement(zl,{ref:n,...e,...i},t(o).createElement(us,null)),t(o).createElement(Hs,{children:e.children,items:e.items,disabledKeys:e.disabledKeys,onAction:e.onAction}))}));o=l("acw62");function qs(e,t){let n,{elementType:r="a",onPress:i,onPressStart:l,onPressEnd:o,onClick:a,isDisabled:s,...u}=e;"a"!==r&&(n={role:"link",tabIndex:s?void 0:0});let{focusableProps:c}=Mn(e,t),{pressProps:d,isPressed:p}=gt({onPress:i,onPressStart:l,onPressEnd:o,isDisabled:s,ref:t}),f=C(u,{labelable:!0}),m=x(c,d);return{isPressed:p,linkProps:x(f,{...m,...n,"aria-disabled":s||void 0,onClick:e=>{d.onClick(e),a&&(a(e),console.warn("onClick is deprecated, please use onPress"))}})}}function Gs(e){return e&&e.__esModule?e.default:e}function Qs(e,t){let{isCurrent:n,isDisabled:r,"aria-current":i,elementType:l="a",...o}=e,{linkProps:a}=qs({isDisabled:r||n,elementType:l,...o},t),s={};return/^h[1-6]$/.test(l)||(s=a),n&&(s["aria-current"]=i||"page",s.tabIndex=e.autoFocus?-1:void 0),{itemProps:{"aria-disabled":r,...s}}}var Ys,Xs;function Zs(e){let{"aria-label":t,...n}=e,r=Pe(Gs(Ys));return{navProps:{...C(n,{labelable:!0}),"aria-label":t||r.format("breadcrumbs")}}}Ys={"ar-AE":{breadcrumbs:"عناصر الواجهة"},"bg-BG":{breadcrumbs:"Трохи хляб"},"cs-CZ":{breadcrumbs:"Popis cesty"},"da-DK":{breadcrumbs:"Brødkrummer"},"de-DE":{breadcrumbs:"Breadcrumbs"},"el-GR":{breadcrumbs:"Πλοηγήσεις breadcrumb"},"en-US":{breadcrumbs:"Breadcrumbs"},"es-ES":{breadcrumbs:"Migas de pan"},"et-EE":{breadcrumbs:"Lingiread"},"fi-FI":{breadcrumbs:"Navigointilinkit"},"fr-FR":{breadcrumbs:"Chemin de navigation"},"he-IL":{breadcrumbs:"שבילי ניווט"},"hr-HR":{breadcrumbs:"Navigacijski putovi"},"hu-HU":{breadcrumbs:"Morzsamenü"},"it-IT":{breadcrumbs:"Breadcrumb"},"ja-JP":{breadcrumbs:"パンくずリスト"},"ko-KR":{breadcrumbs:"탐색 표시"},"lt-LT":{breadcrumbs:"Naršymo kelias"},"lv-LV":{breadcrumbs:"Atpakaļceļi"},"nb-NO":{breadcrumbs:"Navigasjonsstier"},"nl-NL":{breadcrumbs:"Broodkruimels"},"pl-PL":{breadcrumbs:"Struktura nawigacyjna"},"pt-BR":{breadcrumbs:"Caminho detalhado"},"pt-PT":{breadcrumbs:"Categorias"},"ro-RO":{breadcrumbs:"Miez de pâine"},"ru-RU":{breadcrumbs:"Навигация"},"sk-SK":{breadcrumbs:"Navigačné prvky Breadcrumbs"},"sl-SI":{breadcrumbs:"Drobtine"},"sr-SP":{breadcrumbs:"Putanje navigacije"},"sv-SE":{breadcrumbs:"Sökvägar"},"tr-TR":{breadcrumbs:"İçerik haritaları"},"uk-UA":{breadcrumbs:"Навігаційна стежка"},"zh-CN":{breadcrumbs:"导航栏"},"zh-TW":{breadcrumbs:"導覽列"}},Xs=function(e){return iu.default.createElement(Gi,e,iu.default.createElement(Js.ChevronRightSmall,null))};var Js={};Object.defineProperty(Js,"__esModule",{value:!0}),Js.ChevronRightSmall=ru;var eu=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function tu(){return tu=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ru(e){var t=e.scale,n=void 0===t?"M":t,r=nu(e,["scale"]);return eu.default.createElement("svg",tu({},r,r),"L"===n&&eu.default.createElement("path",{d:"M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z"}),"M"===n&&eu.default.createElement("path",{d:"M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z"}))}ru.displayName="ChevronRightSmall";var iu=Br(l("acw62"));function lu(e){return e&&e.__esModule?e.default:e}function ou(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var au,su,uu,cu,du,pu,fu,mu,hu,gu,yu,vu,bu,wu,Eu,ku,Su={};function xu(e){let{children:n,isCurrent:r,isDisabled:i}=e,{direction:l}=Se(),a=(0,o.useRef)(),{itemProps:s}=Qs({...e,elementType:"string"==typeof n?"span":"a"},a),{hoverProps:u,isHovered:c}=Jt(e),d=t(o).cloneElement(Le(n),{...x(s,u),ref:a,className:Me(lu(Su),"spectrum-Breadcrumbs-itemLink",{"is-disabled":!r&&i,"is-hovered":c})});return t(o).createElement(o.Fragment,null,t(o).createElement(Cn,{focusRingClass:Me(lu(Su),"focus-ring")},d),!1===r&&t(o).createElement(Xs,{UNSAFE_className:Me(lu(Su),"spectrum-Breadcrumbs-itemSeparator",{"is-reversed":"rtl"===l})}))}ou(Su,"spectrum-Breadcrumbs",(()=>au),(e=>au=e)),ou(Su,"spectrum-Breadcrumbs-itemSeparator",(()=>su),(e=>su=e)),ou(Su,"is-reversed",(()=>uu),(e=>uu=e)),ou(Su,"spectrum-Breadcrumbs-item",(()=>cu),(e=>cu=e)),ou(Su,"spectrum-ActionButton",(()=>du),(e=>du=e)),ou(Su,"spectrum-Breadcrumbs-itemLink",(()=>pu),(e=>pu=e)),ou(Su,"is-hovered",(()=>fu),(e=>fu=e)),ou(Su,"focus-ring",(()=>mu),(e=>mu=e)),ou(Su,"is-dragged",(()=>hu),(e=>hu=e)),ou(Su,"spectrum-Breadcrumbs--small",(()=>gu),(e=>gu=e)),ou(Su,"spectrum-Breadcrumbs--medium",(()=>yu),(e=>yu=e)),ou(Su,"spectrum-Breadcrumbs--multiline",(()=>vu),(e=>vu=e)),ou(Su,"spectrum-Heading--pageTitle",(()=>bu),(e=>bu=e)),ou(Su,"is-disabled",(()=>wu),(e=>wu=e)),ou(Su,"is-selected",(()=>Eu),(e=>Eu=e)),ou(Su,"spectrum-Breadcrumb",(()=>ku),(e=>ku=e)),au="spectrum-Breadcrumbs_3fe6e8",su="spectrum-Breadcrumbs-itemSeparator_3fe6e8",uu="is-reversed_3fe6e8",cu="spectrum-Breadcrumbs-item_3fe6e8",du="spectrum-ActionButton_3fe6e8",pu="spectrum-Breadcrumbs-itemLink_3fe6e8",fu="is-hovered_3fe6e8",mu="focus-ring_3fe6e8",hu="is-dragged_3fe6e8",gu="spectrum-Breadcrumbs--small_3fe6e8",yu="spectrum-Breadcrumbs--medium_3fe6e8",vu="spectrum-Breadcrumbs--multiline_3fe6e8",bu="spectrum-Heading--pageTitle_3fe6e8",wu="is-disabled_3fe6e8",Eu="is-selected_3fe6e8",ku="spectrum-Breadcrumb_3fe6e8";let Pu=t(o).forwardRef((function(e,n){e=Vr(e);let{size:r="L",isMultiline:i,children:l,showRoot:a,isDisabled:s,onAction:u,autoFocusCurrent:c,...d}=e,p=[];t(o).Children.forEach(l,(e=>{t(o).isValidElement(e)&&p.push(e)}));let f=Oe(n),m=(0,o.useRef)(null),[h,g]=v(p.length),{navProps:b}=Zs(e),{styleProps:w}=tt(d),E=(0,o.useCallback)((()=>{let e=e=>{let t=m.current;if(!t)return;let n=Array.from(t.children),r=t.offsetWidth,l=p.length>e,o=0,s=0,u=4;if(a&&(o+=n.shift().offsetWidth,s++),l&&(o+=n.shift().offsetWidth,u--),a&&o>=r&&s--,i)n.pop(),s++;else if(n.length>0){let e=n.pop();e.style.overflow="visible",o+=e.offsetWidth,o1&&(yield e(t))}))}),[p.length,g,a,i]);D({ref:f,onResize:E}),y(E,[l]);let k=p;if(p.length>h){var S;let e=null!==(S=p[p.length-1].key)&&void 0!==S?S:p.length-1,n=t=>{t!==e&&u&&u(t)};k=[t(o).createElement(xu,{key:"menu"},t(o).createElement(Bs,null,t(o).createElement(zl,{"aria-label":"…",isQuiet:!0,isDisabled:s},t(o).createElement(Kl,null)),t(o).createElement(Hs,{selectionMode:"single",selectedKeys:[e],onAction:n},p)))];let r=[...p],i=h;a&&h>1&&(k.unshift(r.shift()),i--),k.push(...r.slice(-i))}let x=k.length-1,P=k.map(((e,n)=>{let r=n===x;var i;let l=null!==(i=e.key)&&void 0!==i?i:n;return t(o).createElement("li",{key:n,className:Me(lu(Su),"spectrum-Breadcrumbs-item")},t(o).createElement(xu,{key:l,isCurrent:r,isDisabled:s,onPress:()=>{u&&u(l)},autoFocus:r&&c},e.props.children))}));return t(o).createElement("nav",{...w,...b,ref:f},t(o).createElement("ul",{ref:m,className:Me(lu(Su),"spectrum-Breadcrumbs",{"spectrum-Breadcrumbs--small":"S"===r,"spectrum-Breadcrumbs--medium":"M"===r,"spectrum-Breadcrumbs--multiline":i,"spectrum-Breadcrumbs--showRoot":a,"is-disabled":s},w.className)},P))}));function Tu(e){return e&&e.__esModule?e.default:e}function _u(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Cu,Iu={};_u(Iu,"spectrum--darkest",(()=>Cu),(e=>Cu=e)),Cu="spectrum--darkest_256eeb";var Mu,Lu,Nu,Ru,Ou,Au,Fu,zu={};_u(zu,"spectrum",(()=>Mu),(e=>Mu=e)),_u(zu,"spectrum--medium",(()=>Lu),(e=>Lu=e)),_u(zu,"spectrum--large",(()=>Nu),(e=>Nu=e)),_u(zu,"spectrum--darkest",(()=>Ru),(e=>Ru=e)),_u(zu,"spectrum--dark",(()=>Ou),(e=>Ou=e)),_u(zu,"spectrum--light",(()=>Au),(e=>Au=e)),_u(zu,"spectrum--lightest",(()=>Fu),(e=>Fu=e)),Mu="spectrum_9e130c",Lu="spectrum--medium_9e130c",Nu="spectrum--large_9e130c",Ru="spectrum--darkest_9e130c",Ou="spectrum--dark_9e130c",Au="spectrum--light_9e130c",Fu="spectrum--lightest_9e130c";var Du,Ku={};_u(Ku,"spectrum--large",(()=>Du),(e=>Du=e)),Du="spectrum--large_c40598";var Vu,Uu={};_u(Uu,"spectrum--light",(()=>Vu),(e=>Vu=e)),Vu="spectrum--light_a40724";var Bu,ju={};_u(ju,"spectrum--medium",(()=>Bu),(e=>Bu=e)),Bu="spectrum--medium_4b172c";let $u={global:Tu(zu),light:Tu(Uu),dark:Tu(Iu),medium:Tu(ju),large:Tu(Ku)};o=l("acw62");function Hu(e){return e&&e.__esModule?e.default:e}var Wu,qu,Gu,Qu,Yu,Xu={};Wu=Xu,qu="spectrum-Image-img",Gu=()=>Yu,Qu=e=>Yu=e,Object.defineProperty(Wu,qu,{get:Gu,set:Qu,enumerable:!0,configurable:!0}),Yu="spectrum-Image-img_fdc794";const Zu=t(o).forwardRef((function(e,n){let r=e.alt;e=Vr(e=lt(e,"image"));let{objectFit:i,src:l,alt:a,...s}=e,{styleProps:u}=tt(s),c=Oe(n);return null==a&&console.warn('The `alt` prop was not provided to an image. Add `alt` text for screen readers, or set `alt=""` prop to indicate that the image is decorative or redundant with displayed text and should not be announced by screen readers.'),t(o).createElement("div",{...C(e),...u,className:Me(Hu(Xu),u.className),style:{...u.style,overflow:"hidden"},ref:c},t(o).createElement("img",{src:l,alt:r||a,style:{objectFit:i},className:Me(Hu(Xu),"spectrum-Image-img")}))}));o=l("acw62");class Ju{shouldInvalidate(e,t){return e.width!==t.width||e.height!==t.height}validate(e){}getInitialLayoutInfo(e){return e}getFinalLayoutInfo(e){return e}}class ec{copy(){let e=new ec(this.type,this.key,this.rect.copy());return e.estimatedSize=this.estimatedSize,e.opacity=this.opacity,e.transform=this.transform,e.parentKey=this.parentKey,e.isSticky=this.isSticky,e.zIndex=this.zIndex,e.allowOverflow=this.allowOverflow,e}constructor(e,t,n){this.type=e,this.key=t,this.parentKey=null,this.rect=n,this.estimatedSize=!1,this.isSticky=!1,this.opacity=1,this.transform=null,this.zIndex=0,this.allowOverflow=!1}}class tc{copy(){return new tc(this.x,this.y)}equals(e){return this.x===e.x&&this.y===e.y}isOrigin(){return 0===this.x&&0===this.y}constructor(e=0,t=0){this.x=e,this.y=t}}class nc{get maxX(){return this.x+this.width}get maxY(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new tc(this.x,this.y)}get topRight(){return new tc(this.maxX,this.y)}get bottomLeft(){return new tc(this.x,this.maxY)}get bottomRight(){return new tc(this.maxX,this.maxY)}intersects(e){return this.x<=e.x+e.width&&e.x<=this.x+this.width&&this.y<=e.y+e.height&&e.y<=this.y+this.height}containsRect(e){return this.x<=e.x&&this.y<=e.y&&this.maxX>=e.maxX&&this.maxY>=e.maxY}containsPoint(e){return this.x<=e.x&&this.y<=e.y&&this.maxX>=e.x&&this.maxY>=e.y}getCornerInRect(e){for(let t of["topLeft","topRight","bottomLeft","bottomRight"])if(e.containsPoint(this[t]))return t;return null}equals(e){return e.x===this.x&&e.y===this.y&&e.width===this.width&&e.height===this.height}pointEquals(e){return this.x===e.x&&this.y===e.y}sizeEquals(e){return this.width===e.width&&this.height===e.height}union(e){let t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),r=Math.max(this.maxX,e.maxX)-t,i=Math.max(this.maxY,e.maxY)-n;return new nc(t,n,r,i)}intersection(e){if(!this.intersects(e))return new nc(0,0,0,0);let t=Math.max(this.x,e.x),n=Math.max(this.y,e.y);return new nc(t,n,Math.min(this.maxX,e.maxX)-t,Math.min(this.maxY,e.maxY)-n)}copy(){return new nc(this.x,this.y,this.width,this.height)}constructor(e=0,t=0,n=0,r=0){this.x=e,this.y=t,this.width=n,this.height=r}}class rc{copy(){return new rc(this.width,this.height)}equals(e){return this.width===e.width&&this.height===e.height}get area(){return this.width*this.height}constructor(e=0,t=0){this.width=e,this.height=t}}let ic=0;class lc{prepareForReuse(){this.content=null,this.rendered=null,this.layoutInfo=null}constructor(e){this.virtualizer=e,this.key=++ic}}let oc,ac="undefined"!=typeof window?window.performance:null,sc=ac&&(ac.now||ac.webkitNow||ac.msNow||ac.mozNow),uc=sc?sc.bind(ac):function(){return Date.now?Date.now():(new Date).getTime()};function cc(e){return Math.sin(e*Math.PI/2)}function dc(e,t){let n=new Set;for(let r of e.keys())t.has(r)||n.add(r);return n}class pc{addSample(e){this.count++,this.value+=(e-this.value)/this.count}constructor(){ae(this,"count",0),ae(this,"value",0)}}class fc{setVisibleRect(e){let t=performance.now()-this.startTime;t<500&&(this.averageTime.addSample(t),e.x!==this.visibleRect.x&&t>0&&(this.velocity.x=(e.x-this.visibleRect.x)/t),e.y!==this.visibleRect.y&&t>0&&(this.velocity.y=(e.y-this.visibleRect.y)/t)),this.startTime=performance.now(),this.visibleRect=e}collectMetrics(){let e=performance.now()-this.startTime;if(e<500&&this.averagePerf.addSample(e),this.visibleRect.height>0){let e=Math.abs(this.velocity.y*(this.averageTime.value+this.averagePerf.value));this.overscanY.addSample(e)}if(this.visibleRect.width>0){let e=Math.abs(this.velocity.x*(this.averageTime.value+this.averagePerf.value));this.overscanX.addSample(e)}}getOverscannedRect(){let e=this.visibleRect.copy(),t=100*Math.round(Math.min(2*this.visibleRect.height,this.overscanY.value)/100);this.velocity.y>0?(e.y-=.2*t,e.height+=t+.2*t):(e.y-=t,e.height+=t+.2*t);let n=100*Math.round(Math.min(2*this.visibleRect.width,this.overscanX.value)/100);return this.velocity.x>0?(e.x-=.2*n,e.width+=n+.2*n):(e.x-=n,e.width+=n+.2*n),e}constructor(){ae(this,"startTime",0),ae(this,"averagePerf",new pc),ae(this,"averageTime",new pc),ae(this,"velocity",new tc(5,5)),ae(this,"overscanX",new pc),ae(this,"overscanY",new pc),ae(this,"visibleRect",new nc)}}class mc{constructor(){ae(this,"level",0),ae(this,"actions",[]),ae(this,"animated",!0),ae(this,"initialMap",new Map),ae(this,"finalMap",new Map),ae(this,"initialLayoutInfo",new Map),ae(this,"finalLayoutInfo",new Map),ae(this,"removed",new Map),ae(this,"toRemove",new Map)}}class hc{_setContentSize(e){this._contentSize=e,this.delegate.setContentSize(e)}_setContentOffset(e){let t=new nc(e.x,e.y,this._visibleRect.width,this._visibleRect.height);this.delegate.setVisibleRect(t)}get contentSize(){return this._contentSize}get visibleRect(){return this._visibleRect}set visibleRect(e){this._setVisibleRect(e)}_setVisibleRect(e,t=!1){let n=this._visibleRect;if(e.equals(n))return;this.shouldOverscan&&this._overscanManager.setVisibleRect(e);let r=this.layout&&this.layout.shouldInvalidate(e,this._visibleRect);this._resetAnimatedContentOffset(),this._visibleRect=e,r?this.relayout({offsetChanged:!e.pointEquals(n),sizeChanged:!e.sizeEquals(n)}):this.updateSubviews(t)}get collection(){return this._collection}set collection(e){this._setData(e)}_setData(e){e!==this._collection&&(this._collection?this._runTransaction((()=>{this._collection=e}),this.transitionDuration>0):(this._collection=e,this.reloadData()))}reloadData(){this.relayout({contentChanged:!0})}getItem(e){return this._collection?this._collection.getItem(e):null}get persistedKeys(){return this._persistedKeys}set persistedKeys(e){(function(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0})(e,this._persistedKeys)||(this._persistedKeys=e,this.updateSubviews())}isPersistedKey(e){if(this._persistedKeys.has(e))return!0;for(let t of this._persistedKeys)for(;null!=t;){let n=this.layout.getLayoutInfo(t);if(!n)break;if(t=n.parentKey,t===e)return!0}return!1}get layout(){return this._layout}set layout(e){this.setLayout(e)}setLayout(e,t=!1){if(e===this._layout)return;let n=()=>{this._layout&&(this._layout.virtualizer=null),e.virtualizer=this,this._layout=e};t?this._runTransaction(n):(n(),this.relayout())}_getReuseType(e,t){if("item"===e.type&&t){let n=this.delegate.getType?this.delegate.getType(t):"item";return{type:n,reuseType:"item"===n?"item":e.type+"_"+n}}return{type:e.type,reuseType:e.type}}getReusableView(e){let t=this.getItem(e.key),{reuseType:n}=this._getReuseType(e,t);this._reusableViews[n]||(this._reusableViews[n]=[]);let r=this._reusableViews[n],i=r.length>0?r.pop():new lc(this);return i.viewType=n,this._animatedContentOffset.isOrigin()||((e=e.copy()).rect.x+=this._animatedContentOffset.x,e.rect.y+=this._animatedContentOffset.y),i.layoutInfo=e,this._renderView(i),i}_renderView(e){let{type:t,key:n}=e.layoutInfo;e.content=this.getItem(n),e.rendered=this._renderContent(t,e.content)}_renderContent(e,t){let n=this._renderedContent.get(t);if(null!=n)return n;let r=this.delegate.renderView(e,t);return t&&this._renderedContent.set(t,r),r}get visibleViews(){return Array.from(this._visibleViews.values())}getView(e){return this._visibleViews.get(e)||null}getViewsOfType(e){return this.visibleViews.filter((t=>t.layoutInfo&&t.layoutInfo.type===e))}keyForView(e){return e&&e.layoutInfo?e.layoutInfo.key:null}keyAtPoint(e){let t=new nc(e.x,e.y,1,1),n=this.layout.getVisibleLayoutInfos(t);for(let e of n)if(e.rect.intersects(t))return e.key;return null}willUnmount(){cancelAnimationFrame(this._relayoutRaf)}relayout(e={}){this._scrollAnimation||"undefined"==typeof requestAnimationFrame||(this._invalidationContext?Object.assign(this._invalidationContext,e):(this._invalidationContext=e,this._relayoutRaf=requestAnimationFrame((()=>{this._relayoutRaf=null,this.relayoutNow()}))))}relayoutNow(e=this._invalidationContext||{}){if(this._relayoutRaf&&(cancelAnimationFrame(this._relayoutRaf),this._relayoutRaf=null,e={...this._invalidationContext,...e}),this._invalidationContext=null,!this.layout||!this._collection||this._scrollAnimation)return;let t=this._getScrollAnchor();"function"==typeof e.beforeLayout&&e.beforeLayout(),this.layout.validate(e),this._setContentSize(this.layout.getContentSize()),"function"==typeof e.afterLayout&&e.afterLayout();let n=this.getVisibleRect(),r=this._restoreScrollAnchor(t,e),i=e.contentChanged?0:r.x,l=e.contentChanged?0:r.y;i=Math.max(0,Math.min(this.contentSize.width-n.width,i)),l=Math.max(0,Math.min(this.contentSize.height-n.height,l));let o=!1;if(i!==n.x||l!==n.y?e.animated||!this._animatedContentOffset.isOrigin()?(this._animatedContentOffset.x+=n.x-i,this._animatedContentOffset.y+=n.y-l,o=this.updateSubviews(e.contentChanged)):this._setContentOffset(new tc(i,l)):o=this.updateSubviews(e.contentChanged),e.transaction&&e.animated||this._applyLayoutInfos(),e.animated&&o){return this._enableTransitions(),void setTimeout((()=>{if(this._disableTransitions(),!this._animatedContentOffset.isOrigin()){let{x:e,y:t}=this.getVisibleRect();this._resetAnimatedContentOffset(),this._setContentOffset(new tc(e,t))}"function"==typeof e.afterAnimation&&e.afterAnimation()}),this.transitionDuration+100)}"function"==typeof e.afterAnimation&&e.afterAnimation()}_correctItemOrder(){if(!this._isScrolling&&!this._transaction)for(let e of this._visibleLayoutInfos.keys()){let t=this._visibleViews.get(e);this._children.delete(t),this._children.add(t)}}_enableTransitions(){this.delegate.beginAnimations()}_disableTransitions(){this.delegate.endAnimations()}_getScrollAnchor(){if(!this.anchorScrollPosition)return null;let e=this.getVisibleRect();if(this.delegate.getScrollAnchor){let t=this.delegate.getScrollAnchor(e);if(null!=t){let n=this.layout.getLayoutInfo(t),r=n.rect.getCornerInRect(e);if(r){return{key:n.key,layoutInfo:n,corner:r,offset:n.rect[r].y-e.y}}}}if(0===e.y&&!this.anchorScrollPositionAtTop)return null;let t=null;for(let[n,r]of this._visibleViews){let i=r.layoutInfo;if(i&&i.rect.area>0){let r=i.rect.getCornerInRect(e);if(r){let l=i.rect[r].y-e.y;(!t||l0||n.size>0||this._hasLayoutUpdates());return a&&requestAnimationFrame((()=>{this._transaction&&requestAnimationFrame((()=>this._applyLayoutInfos()))})),a}afterRender(){this.shouldOverscan&&this._overscanManager.collectMetrics()}_flushVisibleViews(){let e=new Map([[null,[]]]);for(let o of this._children){var t,n,r,i,l;null==(null===(t=o.layoutInfo)||void 0===t?void 0:t.parentKey)||e.has(o.layoutInfo.parentKey)||e.set(o.layoutInfo.parentKey,[]),null===(n=e.get(null===(r=o.layoutInfo)||void 0===r?void 0:r.parentKey))||void 0===n||n.push(o),e.has(null===(i=o.layoutInfo)||void 0===i?void 0:i.key)||e.set(null===(l=o.layoutInfo)||void 0===l?void 0:l.key,[])}let o=(t,n)=>n.map((n=>{let r=e.get(n.layoutInfo.key);return this.delegate.renderWrapper(t,n,r,(e=>o(n,e)))})),a=o(null,e.get(null));this.delegate.setVisibleViews(a)}_applyLayoutInfo(e,t){return e.layoutInfo!==t&&(e.layoutInfo=t,!0)}_applyLayoutInfos(){let e=!1;for(let t of this._visibleViews.values()){let n=t.layoutInfo;if(null!=(null==n?void 0:n.key)){let r=this.layout.getLayoutInfo(n.key);this._applyLayoutInfo(t,r)&&(e=!0)}}if(this._transaction){for(let t of this._transaction.toRemove.values()){let n=t.layoutInfo;if(null!=(null==n?void 0:n.key)){let r=this.layout.getLayoutInfo(n.key);this._applyLayoutInfo(t,r)&&(e=!0)}}for(let t of this._transaction.removed.values()){let n=t.layoutInfo,r=this._transaction.finalLayoutInfo.get(n.key)||n;r=this.layout.getFinalLayoutInfo(r.copy()),this._applyLayoutInfo(t,r)&&(e=!0)}}e&&this._flushVisibleViews()}_hasLayoutUpdates(){if(!this._transaction)return!1;for(let e of this._visibleViews.values()){let t=e.layoutInfo;if(!t)return!0;let n=this.layout.getLayoutInfo(t.key);if(!t.rect.equals(n.rect)||t.opacity!==n.opacity||t.transform!==n.transform)return!0}return!1}reuseView(e){e.prepareForReuse(),this._reusableViews[e.viewType].push(e)}removeViews(e){for(let t of e)this._children.delete(t)}updateItemSize(e,t){if(!this.layout.updateItemSize)return;if(this._scrollAnimation)return void this._sizeUpdateQueue.set(e,t);this.layout.updateItemSize(e,t)&&this.relayout()}startScrolling(){this._isScrolling=!0}endScrolling(){this._isScrolling=!1,this._correctItemOrder(),this._flushVisibleViews()}_resetAnimatedContentOffset(){this._animatedContentOffset.isOrigin()||(this._animatedContentOffset=new tc(0,0),this._applyLayoutInfos())}scrollToItem(e,t){if(null==e)return;let n=this.layout.getLayoutInfo(e);if(!n)return;let{duration:r=300,shouldScrollX:i=!0,shouldScrollY:l=!0,offsetX:o=0,offsetY:a=0}=t,s=this.visibleRect.x,u=this.visibleRect.y,c=n.rect.x-o,d=n.rect.y-a,p=s+this.visibleRect.width,f=u+this.visibleRect.height;return i&&(c<=s||0===p?s=c:n.rect.maxX>p&&(s+=n.rect.maxX-p)),l&&(d<=u||0===f?u=d:n.rect.maxY>f&&(u+=n.rect.maxY-f)),this.scrollTo(new tc(s,u),r)}scrollTo(e,t=300){return this._scrollAnimation&&(this._scrollAnimation.cancel(),this._scrollAnimation=null),t<=0||this.visibleRect.pointEquals(e)?(this._setContentOffset(e),Promise.resolve()):(this.startScrolling(),this._scrollAnimation=function(e,t,n,r,i){let l,o=!1,a=new Promise((a=>{let s=uc(),u=t.x-e.x,c=t.y-e.y;l=requestAnimationFrame((function d(p){null==oc&&(oc=p>1e12!=uc()>1e12),oc&&(p=uc());let f=p-s;f>n?(i(t),a()):!1===i(new tc(e.x+u*r(f/n),e.y+c*r(f/n)))||o||(l=requestAnimationFrame(d))}))}));return a.cancel=function(){o=!0,cancelAnimationFrame(l)},a}(this.visibleRect,e,t,cc,(e=>{this._setContentOffset(e)})),this._scrollAnimation.then((()=>{this._scrollAnimation=null;for(let[e,t]of this._sizeUpdateQueue)this.updateItemSize(e,t);this._sizeUpdateQueue.clear(),this.relayout(),this._processTransactionQueue(),this.endScrolling()})),this._scrollAnimation)}_runTransaction(e,t){this._startTransaction(),this._nextTransaction&&this._nextTransaction.actions.push(e),this._endTransaction(t)}_startTransaction(){this._nextTransaction||(this._nextTransaction=new mc),this._nextTransaction.level++}_endTransaction(e){return!!this._nextTransaction&&(null!=e&&(this._nextTransaction.animated=e),!(--this._nextTransaction.level>0)&&(0===this._nextTransaction.actions.length?(this._nextTransaction=null,!1):(null==this._nextTransaction.animated&&(this._nextTransaction.animated=!0),this._transactionQueue.push(this._nextTransaction),this._nextTransaction=null,this._processTransactionQueue(),!0)))}_processTransactionQueue(){if(this._transaction||this._scrollAnimation)return;let e=this._transactionQueue.shift();e&&this._performTransaction(e)}_getContentRect(){return new nc(0,0,this.contentSize.width,this.contentSize.height)}_performTransaction(e){this._transaction=e,this.relayoutNow({transaction:e,animated:e.animated,beforeLayout:()=>{e.animated&&(e.initialMap=this._getLayoutInfoMap(this._getContentRect(),!0));for(let t of e.actions)t()},afterLayout:()=>{e.animated?(e.finalMap=this._getLayoutInfoMap(this._getContentRect()),this._setupTransactionAnimations(e)):this._transaction=null},afterAnimation:()=>{if(e.toRemove.size>0||e.removed.size>0)for(let t of function*(...e){for(let t of e)yield*t}(e.toRemove.values(),e.removed.values()))this._children.delete(t),this.reuseView(t);this._transaction=null,this._correctItemOrder(),this._flushVisibleViews(),this._processTransactionQueue()}})}_setupTransactionAnimations(e){let{initialMap:t,finalMap:n}=e;for(let[r,i]of t)n.has(r)?e.initialLayoutInfo.set(r,i):e.finalLayoutInfo.set(i.key,i);for(let[r,i]of n)if(!t.has(r)){let t=this.layout.getInitialLayoutInfo(i.copy());e.initialLayoutInfo.set(r,t)}for(let[t,r]of this._visibleViews)!n.has(t)&&r.layoutInfo.rect.width>0&&(e.removed.set(t,r),this._visibleViews.delete(t),r.layoutInfo&&(e.finalLayoutInfo.has(r.layoutInfo.key)||e.finalLayoutInfo.set(r.layoutInfo.key,r.layoutInfo)))}constructor(e={}){var t;this._contentSize=new rc,this._visibleRect=new nc,this._reusableViews={},this._visibleLayoutInfos=new Map,this._visibleViews=new Map,this._renderedContent=new WeakMap,this._children=new Set,this._invalidationContext=null,this._overscanManager=new fc,this._persistedKeys=new Set,this._scrollAnimation=null,this._isScrolling=!1,this._sizeUpdateQueue=new Map,this._animatedContentOffset=new tc(0,0),this._transaction=null,this._nextTransaction=null,this._transactionQueue=[],this.transitionDuration=null!==(t=e.transitionDuration)&&void 0!==t?t:500,this.anchorScrollPosition=e.anchorScrollPosition||!1,this.anchorScrollPositionAtTop=e.anchorScrollPositionAtTop||!1,this.shouldOverscan=!1!==e.shouldOverscan;for(let t of["delegate","size","layout","collection"])e[t]&&(this[t]=e[t])}}function gc(e){let[t,n]=(0,o.useState)([]),[r,i]=(0,o.useState)(new rc),[l,a]=(0,o.useState)(!1),[s,u]=(0,o.useState)(!1),c=(0,o.useMemo)((()=>new hc),[]);c.delegate={setVisibleViews:n,setVisibleRect(t){c.visibleRect=t,e.onVisibleRectChange(t)},setContentSize:i,renderView:e.renderView,renderWrapper:e.renderWrapper,beginAnimations:()=>a(!0),endAnimations:()=>a(!1),getScrollAnchor:e.getScrollAnchor},c.layout=e.layout,c.collection=e.collection,c.transitionDuration=e.transitionDuration,y((()=>{c.afterRender()})),(0,o.useEffect)((()=>()=>c.willUnmount()),[]);let d=(0,o.useCallback)((e=>{c.visibleRect=e}),[c]),p=(0,o.useCallback)((()=>{c.startScrolling(),u(!0)}),[c]),f=(0,o.useCallback)((()=>{c.endScrolling(),u(!1)}),[c]);return(0,o.useMemo)((()=>({virtualizer:c,visibleViews:t,setVisibleRect:d,contentSize:r,isAnimating:l,isScrolling:s,startScrolling:p,endScrolling:f})),[c,t,d,r,l,s,p,f])}o=l("acw62");let yc=null;function vc(e,t="assertive",n=7e3){yc||(yc=new bc),yc.announce(e,t,n)}class bc{createLog(e){let t=document.createElement("div");return t.setAttribute("role","log"),t.setAttribute("aria-live",e),t.setAttribute("aria-relevant","additions"),t}destroy(){this.node&&(document.body.removeChild(this.node),this.node=null)}announce(e,t="assertive",n=7e3){if(!this.node)return;let r=document.createElement("div");r.textContent=e,"assertive"===t?this.assertiveLog.appendChild(r):this.politeLog.appendChild(r),""!==e&&setTimeout((()=>{r.remove()}),n)}clear(e){this.node&&(e&&"assertive"!==e||(this.assertiveLog.innerHTML=""),e&&"polite"!==e||(this.politeLog.innerHTML=""))}constructor(){this.node=document.createElement("div"),this.node.dataset.liveAnnouncer="true",Object.assign(this.node.style,{border:0,clip:"rect(0 0 0 0)",clipPath:"inset(50%)",height:1,margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:1,whiteSpace:"nowrap"}),this.assertiveLog=this.createLog("assertive"),this.node.appendChild(this.assertiveLog),this.politeLog=this.createLog("polite"),this.node.appendChild(this.politeLog),document.body.prepend(this.node)}}function wc(e){return e&&e.__esModule?e.default:e}new WeakMap;var Ec;function kc(e,t){let{getRowText:n=(e=>{var n;return null===(n=t.collection.getItem(e))||void 0===n?void 0:n.textValue})}=e,r=Pe(wc(Ec)),i=t.selectionManager.rawSelection,l=(0,o.useRef)(i);z((()=>{var e;if(!t.selectionManager.isFocused)return void(l.current=i);let o=Sc(i,l.current),a=Sc(l.current,i),s="replace"===t.selectionManager.selectionBehavior,u=[];if(1===t.selectionManager.selectedKeys.size&&s){if(t.collection.getItem(t.selectionManager.selectedKeys.keys().next().value)){let e=n(t.selectionManager.selectedKeys.keys().next().value);e&&u.push(r.format("selectedItem",{item:e}))}}else if(1===o.size&&0===a.size){let e=n(o.keys().next().value);e&&u.push(r.format("selectedItem",{item:e}))}else if(1===a.size&&0===o.size&&t.collection.getItem(a.keys().next().value)){let e=n(a.keys().next().value);e&&u.push(r.format("deselectedItem",{item:e}))}"multiple"===t.selectionManager.selectionMode&&(0===u.length||"all"===i||i.size>1||"all"===l.current||(null===(e=l.current)||void 0===e?void 0:e.size)>1)&&u.push("all"===i?r.format("selectedAll"):r.format("selectedCount",{count:i.size})),u.length>0&&vc(u.join(" ")),l.current=i}),[i])}function Sc(e,t){let n=new Set;if("all"===e||"all"===t)return n;for(let r of e.keys())t.has(r)||n.add(r);return n}function xc(e){let t=Pe(wc(Ec)),n=Ht(),r=("pointer"===n||"virtual"===n||null==n)&&"undefined"!=typeof window&&"ontouchstart"in window;return q((0,o.useMemo)((()=>{let n,i=e.selectionManager.selectionMode,l=e.selectionManager.selectionBehavior;return r&&(n=t.format("longPressToSelect")),"replace"===l&&"none"!==i&&e.hasItemActions?n:void 0}),[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,r]))}function Pc(e,t){let{key:n}=e,r=t.selectionManager,i=w(),l=!t.selectionManager.canSelectItem(n),o=t.selectionManager.isSelected(n);return{checkboxProps:{id:i,"aria-label":Pe(wc(Ec)).format("select"),isSelected:o,isDisabled:l,onChange:()=>r.select(n)}}}Ec={"ar-AE":{deselectedItem:e=>`${e.item} غير المحدد`,longPressToSelect:"اضغط مطولًا للدخول إلى وضع التحديد.",select:"تحديد",selectedAll:"جميع العناصر المحددة.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"لم يتم تحديد عناصر",one:()=>`${t.number(e.count)} عنصر محدد`,other:()=>`${t.number(e.count)} عنصر محدد`})}.`,selectedItem:e=>`${e.item} المحدد`},"bg-BG":{deselectedItem:e=>`${e.item} не е избран.`,longPressToSelect:"Натиснете и задръжте за да влезете в избирателен режим.",select:"Изберете",selectedAll:"Всички елементи са избрани.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Няма избрани елементи",one:()=>`${t.number(e.count)} избран елемент`,other:()=>`${t.number(e.count)} избрани елементи`})}.`,selectedItem:e=>`${e.item} избран.`},"cs-CZ":{deselectedItem:e=>`Položka ${e.item} není vybrána.`,longPressToSelect:"Dlouhým stisknutím přejdete do režimu výběru.",select:"Vybrat",selectedAll:"Vybrány všechny položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nevybrány žádné položky",one:()=>`Vybrána ${t.number(e.count)} položka`,other:()=>`Vybráno ${t.number(e.count)} položek`})}.`,selectedItem:e=>`Vybrána položka ${e.item}.`},"da-DK":{deselectedItem:e=>`${e.item} ikke valgt.`,longPressToSelect:"Lav et langt tryk for at aktivere valgtilstand.",select:"Vælg",selectedAll:"Alle elementer valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer valgt",one:()=>`${t.number(e.count)} element valgt`,other:()=>`${t.number(e.count)} elementer valgt`})}.`,selectedItem:e=>`${e.item} valgt.`},"de-DE":{deselectedItem:e=>`${e.item} nicht ausgewählt.`,longPressToSelect:"Gedrückt halten, um Auswahlmodus zu öffnen.",select:"Auswählen",selectedAll:"Alle Elemente ausgewählt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Keine Elemente ausgewählt",one:()=>`${t.number(e.count)} Element ausgewählt`,other:()=>`${t.number(e.count)} Elemente ausgewählt`})}.`,selectedItem:e=>`${e.item} ausgewählt.`},"el-GR":{deselectedItem:e=>`Δεν επιλέχθηκε το στοιχείο ${e.item}.`,longPressToSelect:"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.",select:"Επιλογή",selectedAll:"Επιλέχθηκαν όλα τα στοιχεία.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Δεν επιλέχθηκαν στοιχεία",one:()=>`Επιλέχθηκε ${t.number(e.count)} στοιχείο`,other:()=>`Επιλέχθηκαν ${t.number(e.count)} στοιχεία`})}.`,selectedItem:e=>`Επιλέχθηκε το στοιχείο ${e.item}.`},"en-US":{deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."},"es-ES":{deselectedItem:e=>`${e.item} no seleccionado.`,longPressToSelect:"Mantenga pulsado para abrir el modo de selección.",select:"Seleccionar",selectedAll:"Todos los elementos seleccionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ningún elemento seleccionado",one:()=>`${t.number(e.count)} elemento seleccionado`,other:()=>`${t.number(e.count)} elementos seleccionados`})}.`,selectedItem:e=>`${e.item} seleccionado.`},"et-EE":{deselectedItem:e=>`${e.item} pole valitud.`,longPressToSelect:"Valikurežiimi sisenemiseks vajutage pikalt.",select:"Vali",selectedAll:"Kõik üksused valitud.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Üksusi pole valitud",one:()=>`${t.number(e.count)} üksus valitud`,other:()=>`${t.number(e.count)} üksust valitud`})}.`,selectedItem:e=>`${e.item} valitud.`},"fi-FI":{deselectedItem:e=>`Kohdetta ${e.item} ei valittu.`,longPressToSelect:"Siirry valintatilaan painamalla pitkään.",select:"Valitse",selectedAll:"Kaikki kohteet valittu.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ei yhtään kohdetta valittu",one:()=>`${t.number(e.count)} kohde valittu`,other:()=>`${t.number(e.count)} kohdetta valittu`})}.`,selectedItem:e=>`${e.item} valittu.`},"fr-FR":{deselectedItem:e=>`${e.item} non sélectionné.`,longPressToSelect:"Appuyez de manière prolongée pour passer en mode de sélection.",select:"Sélectionner",selectedAll:"Tous les éléments sélectionnés.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Aucun élément sélectionné",one:()=>`${t.number(e.count)} élément sélectionné`,other:()=>`${t.number(e.count)} éléments sélectionnés`})}.`,selectedItem:e=>`${e.item} sélectionné.`},"he-IL":{deselectedItem:e=>`${e.item} לא נבחר.`,longPressToSelect:"הקשה ארוכה לכניסה למצב בחירה.",select:"בחר",selectedAll:"כל הפריטים נבחרו.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"לא נבחרו פריטים",one:()=>`פריט ${t.number(e.count)} נבחר`,other:()=>`${t.number(e.count)} פריטים נבחרו`})}.`,selectedItem:e=>`${e.item} נבחר.`},"hr-HR":{deselectedItem:e=>`Stavka ${e.item} nije odabrana.`,longPressToSelect:"Dugo pritisnite za ulazak u način odabira.",select:"Odaberite",selectedAll:"Odabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije odabrana nijedna stavka",one:()=>`Odabrana je ${t.number(e.count)} stavka`,other:()=>`Odabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`Stavka ${e.item} je odabrana.`},"hu-HU":{deselectedItem:e=>`${e.item} nincs kijelölve.`,longPressToSelect:"Nyomja hosszan a kijelöléshez.",select:"Kijelölés",selectedAll:"Az összes elem kijelölve.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Egy elem sincs kijelölve",one:()=>`${t.number(e.count)} elem kijelölve`,other:()=>`${t.number(e.count)} elem kijelölve`})}.`,selectedItem:e=>`${e.item} kijelölve.`},"it-IT":{deselectedItem:e=>`${e.item} non selezionato.`,longPressToSelect:"Premi a lungo per passare alla modalità di selezione.",select:"Seleziona",selectedAll:"Tutti gli elementi selezionati.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nessun elemento selezionato",one:()=>`${t.number(e.count)} elemento selezionato`,other:()=>`${t.number(e.count)} elementi selezionati`})}.`,selectedItem:e=>`${e.item} selezionato.`},"ja-JP":{deselectedItem:e=>`${e.item} が選択されていません。`,longPressToSelect:"長押しして選択モードを開きます。",select:"選択",selectedAll:"すべての項目を選択しました。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"項目が選択されていません",one:()=>`${t.number(e.count)} 項目を選択しました`,other:()=>`${t.number(e.count)} 項目を選択しました`})}。`,selectedItem:e=>`${e.item} を選択しました。`},"ko-KR":{deselectedItem:e=>`${e.item}이(가) 선택되지 않았습니다.`,longPressToSelect:"선택 모드로 들어가려면 길게 누르십시오.",select:"선택",selectedAll:"모든 항목이 선택되었습니다.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"선택된 항목이 없습니다",one:()=>`${t.number(e.count)}개 항목이 선택되었습니다`,other:()=>`${t.number(e.count)}개 항목이 선택되었습니다`})}.`,selectedItem:e=>`${e.item}이(가) 선택되었습니다.`},"lt-LT":{deselectedItem:e=>`${e.item} nepasirinkta.`,longPressToSelect:"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.",select:"Pasirinkti",selectedAll:"Pasirinkti visi elementai.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nepasirinktas nė vienas elementas",one:()=>`Pasirinktas ${t.number(e.count)} elementas`,other:()=>`Pasirinkta elementų: ${t.number(e.count)}`})}.`,selectedItem:e=>`Pasirinkta: ${e.item}.`},"lv-LV":{deselectedItem:e=>`Vienums ${e.item} nav atlasīts.`,longPressToSelect:"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.",select:"Atlasīt",selectedAll:"Atlasīti visi vienumi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nav atlasīts neviens vienums",one:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`,other:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`})}.`,selectedItem:e=>`Atlasīts vienums ${e.item}.`},"nb-NO":{deselectedItem:e=>`${e.item} er ikke valgt.`,longPressToSelect:"Bruk et langt trykk for å gå inn i valgmodus.",select:"Velg",selectedAll:"Alle elementer er valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer er valgt",one:()=>`${t.number(e.count)} element er valgt`,other:()=>`${t.number(e.count)} elementer er valgt`})}.`,selectedItem:e=>`${e.item} er valgt.`},"nl-NL":{deselectedItem:e=>`${e.item} niet geselecteerd.`,longPressToSelect:"Druk lang om de selectiemodus te openen.",select:"Selecteren",selectedAll:"Alle items geselecteerd.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Geen items geselecteerd",one:()=>`${t.number(e.count)} item geselecteerd`,other:()=>`${t.number(e.count)} items geselecteerd`})}.`,selectedItem:e=>`${e.item} geselecteerd.`},"pl-PL":{deselectedItem:e=>`Nie zaznaczono ${e.item}.`,longPressToSelect:"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.",select:"Zaznacz",selectedAll:"Wszystkie zaznaczone elementy.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nie zaznaczono żadnych elementów",one:()=>`${t.number(e.count)} zaznaczony element`,other:()=>`${t.number(e.count)} zaznaczonych elementów`})}.`,selectedItem:e=>`Zaznaczono ${e.item}.`},"pt-BR":{deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Mantenha pressionado para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`},"pt-PT":{deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Prima continuamente para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`},"ro-RO":{deselectedItem:e=>`${e.item} neselectat.`,longPressToSelect:"Apăsați lung pentru a intra în modul de selectare.",select:"Selectare",selectedAll:"Toate elementele selectate.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Niciun element selectat",one:()=>`${t.number(e.count)} element selectat`,other:()=>`${t.number(e.count)} elemente selectate`})}.`,selectedItem:e=>`${e.item} selectat.`},"ru-RU":{deselectedItem:e=>`${e.item} не выбрано.`,longPressToSelect:"Нажмите и удерживайте для входа в режим выбора.",select:"Выбрать",selectedAll:"Выбраны все элементы.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Нет выбранных элементов",one:()=>`${t.number(e.count)} элемент выбран`,other:()=>`${t.number(e.count)} элементов выбрано`})}.`,selectedItem:e=>`${e.item} выбрано.`},"sk-SK":{deselectedItem:e=>`Nevybraté položky: ${e.item}.`,longPressToSelect:"Dlhším stlačením prejdite do režimu výberu.",select:"Vybrať",selectedAll:"Všetky vybraté položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Žiadne vybraté položky",one:()=>`${t.number(e.count)} vybratá položka`,other:()=>`Počet vybratých položiek:${t.number(e.count)}`})}.`,selectedItem:e=>`Vybraté položky: ${e.item}.`},"sl-SI":{deselectedItem:e=>`Element ${e.item} ni izbran.`,longPressToSelect:"Za izbirni način pritisnite in dlje časa držite.",select:"Izberite",selectedAll:"Vsi elementi so izbrani.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Noben element ni izbran",one:()=>`${t.number(e.count)} element je izbran`,other:()=>`${t.number(e.count)} elementov je izbranih`})}.`,selectedItem:e=>`Element ${e.item} je izbran.`},"sr-SP":{deselectedItem:e=>`${e.item} nije izabrano.`,longPressToSelect:"Dugo pritisnite za ulazak u režim biranja.",select:"Izaberite",selectedAll:"Izabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije izabrana nijedna stavka",one:()=>`Izabrana je ${t.number(e.count)} stavka`,other:()=>`Izabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`${e.item} je izabrano.`},"sv-SE":{deselectedItem:e=>`${e.item} ej markerat.`,longPressToSelect:"Tryck länge när du vill öppna väljarläge.",select:"Markera",selectedAll:"Alla markerade objekt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Inga markerade objekt",one:()=>`${t.number(e.count)} markerat objekt`,other:()=>`${t.number(e.count)} markerade objekt`})}.`,selectedItem:e=>`${e.item} markerat.`},"tr-TR":{deselectedItem:e=>`${e.item} seçilmedi.`,longPressToSelect:"Seçim moduna girmek için uzun basın.",select:"Seç",selectedAll:"Tüm ögeler seçildi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Hiçbir öge seçilmedi",one:()=>`${t.number(e.count)} öge seçildi`,other:()=>`${t.number(e.count)} öge seçildi`})}.`,selectedItem:e=>`${e.item} seçildi.`},"uk-UA":{deselectedItem:e=>`${e.item} не вибрано.`,longPressToSelect:"Виконайте довге натиснення, щоб перейти в режим вибору.",select:"Вибрати",selectedAll:"Усі елементи вибрано.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Жодних елементів не вибрано",one:()=>`${t.number(e.count)} елемент вибрано`,other:()=>`Вибрано елементів: ${t.number(e.count)}`})}.`,selectedItem:e=>`${e.item} вибрано.`},"zh-CN":{deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`},"zh-TW":{deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未選取任何項目",one:()=>`已選取 ${t.number(e.count)} 個項目`,other:()=>`已選取 ${t.number(e.count)} 個項目`})}。`,selectedItem:e=>`已選取「${e.item}」。`}};const Tc=new WeakMap;function _c(e,t){let{id:n}=Tc.get(e);if(!n)throw new Error("Unknown list");return`${n}-${function(e){return"string"==typeof e?e.replace(/\s*/g,""):""+e}(t)}`}function Cc(e,t,n){let{isVirtualized:r,keyboardDelegate:i,onAction:l}=e;e["aria-label"]||e["aria-labelledby"]||console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let{listProps:o}=fa({selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys,ref:n,keyboardDelegate:i,isVirtualized:r,selectOnFocus:"replace"===t.selectionManager.selectionBehavior}),a=w();Tc.set(t,{id:a,onAction:l});let s=xc({selectionManager:t.selectionManager,hasItemActions:!!l}),u=x(C(e,{labelable:!0}),{role:"grid",id:a,"aria-multiselectable":"multiple"===t.selectionManager.selectionMode?"true":void 0},0===t.collection.size?{}:o,s);return r&&(u["aria-rowcount"]=t.collection.size,u["aria-colcount"]=1),kc({},t),{gridProps:u}}function Ic(e,t,n){let{node:r,isVirtualized:i,shouldSelectOnPressUp:l}=e,{direction:o}=Se(),{onAction:a}=Tc.get(t),s=k(),{itemProps:u,...c}=ua({selectionManager:t.selectionManager,key:r.key,ref:n,isVirtualized:i,shouldSelectOnPressUp:l,onAction:a?()=>a(r.key):void 0,focus:()=>{n.current.contains(document.activeElement)||an(n.current)}}),d=x(u,{role:"row",onKeyDownCapture:e=>{if(!e.currentTarget.contains(e.target))return;let t=Sn(n.current);switch(t.currentNode=document.activeElement,e.key){case"ArrowLeft":{let r="rtl"===o?t.nextNode():t.previousNode();if(r)e.preventDefault(),e.stopPropagation(),an(r);else if(e.preventDefault(),e.stopPropagation(),"rtl"===o)an(n.current);else{t.currentNode=n.current;let e=Mc(t);e&&an(e)}break}case"ArrowRight":{let r="rtl"===o?t.previousNode():t.nextNode();if(r)e.preventDefault(),e.stopPropagation(),an(r);else if(e.preventDefault(),e.stopPropagation(),"ltr"===o)an(n.current);else{t.currentNode=n.current;let e=Mc(t);e&&an(e)}break}case"ArrowUp":case"ArrowDown":!e.altKey&&n.current.contains(e.target)&&(e.stopPropagation(),e.preventDefault(),n.current.parentElement.dispatchEvent(new KeyboardEvent(e.nativeEvent.type,e.nativeEvent)))}},onFocus:e=>{e.target===n.current||jt()||t.selectionManager.setFocusedKey(r.key)},"aria-label":r.textValue||void 0,"aria-selected":t.selectionManager.canSelectItem(r.key)?t.selectionManager.isSelected(r.key):void 0,"aria-disabled":t.selectionManager.isDisabled(r.key)||void 0,"aria-labelledby":s&&r.textValue?`${_c(t,r.key)} ${s}`:void 0,id:_c(t,r.key)});i&&(d["aria-rowindex"]=r.index+1);return{rowProps:d,gridCellProps:{role:"gridcell","aria-colindex":1},descriptionProps:{id:s},...c}}function Mc(e){let t,n;do{n=e.lastChild(),n&&(t=n)}while(n);return t}function Lc(e,t){let{key:n}=e;const{checkboxProps:r}=Pc(e,t);return{checkboxProps:{...r,"aria-labelledby":`${r.id} ${_c(t,n)}`}}}class Nc extends Ju{getLayoutInfo(e){let t=this.layoutInfos.get(e);return!t&&this.validRect.area{for(let i of r)this.isVisible(i,e)&&(t.push(i.layoutInfo),i.header&&t.push(i.header),i.children&&n(i.children))};return n(this.rootNodes),t}isVisible(e,t){return e.layoutInfo.rect.intersects(t)||e.layoutInfo.isSticky||this.virtualizer.isPersistedKey(e.layoutInfo.key)}shouldInvalidateEverything(e){return e.sizeChanged}validate(e){if(this.collection=this.virtualizer.collection,this.invalidateEverything=this.shouldInvalidateEverything(e),this.invalidateEverything&&(this.lastValidRect=this.validRect,this.validRect=this.virtualizer.getVisibleRect()),this.rootNodes=this.buildCollection(),this.lastCollection&&this.collection!==this.lastCollection)for(let e of this.lastCollection.getKeys())if(!this.collection.getItem(e)){let n=this.layoutNodes.get(e);var t;if(n)this.layoutInfos.delete(n.layoutInfo.key),this.layoutInfos.delete(null===(t=n.header)||void 0===t?void 0:t.key),this.layoutNodes.delete(e)}this.lastWidth=this.virtualizer.visibleRect.width,this.lastCollection=this.collection,this.invalidateEverything=!1}buildCollection(){let e=this.padding,t=0,n=[];for(let i of this.collection){var r;let l=null!==(r=this.rowHeight)&&void 0!==r?r:this.estimatedRowHeight;if("item"===i.type&&e+lthis.validRect.maxY){e+=(this.collection.size-(n.length+t))*l;break}}if(this.isLoading){var i;let t=new nc(0,e,this.virtualizer.visibleRect.width,null!==(i=this.loaderHeight)&&void 0!==i?i:this.virtualizer.visibleRect.height),r=new ec("loader","loader",t);this.layoutInfos.set("loader",r),n.push({layoutInfo:r}),e=r.rect.maxY}if(0===n.length){var l;let t=new nc(0,e,this.virtualizer.visibleRect.width,null!==(l=this.placeholderHeight)&&void 0!==l?l:this.virtualizer.visibleRect.height),r=new ec("placeholder","placeholder",t);this.layoutInfos.set("placeholder",r),n.push({layoutInfo:r}),e=r.rect.maxY}return this.contentSize=new rc(this.virtualizer.visibleRect.width,e+this.padding),n}isValid(e,t){let n=this.layoutNodes.get(e.key);return!this.invalidateEverything&&n&&n.node===e&&t===(n.header||n.layoutInfo).rect.y&&n.layoutInfo.rect.intersects(this.lastValidRect)&&n.validRect.containsRect(n.layoutInfo.rect.intersection(this.validRect))}buildChild(e,t,n){if(this.isValid(e,n))return this.layoutNodes.get(e.key);let r=this.buildNode(e,t,n);var i;return r.node=e,r.layoutInfo.parentKey=null!==(i=e.parentKey)&&void 0!==i?i:null,this.layoutInfos.set(r.layoutInfo.key,r.layoutInfo),r.header&&this.layoutInfos.set(r.header.key,r.header),this.layoutNodes.set(e.key,r),r}buildNode(e,t,n){switch(e.type){case"section":return this.buildSection(e,t,n);case"item":return this.buildItem(e,t,n)}}buildSection(e,t,n){let r=this.virtualizer.visibleRect.width,i=this.headingHeight,l=!1;if(null==i){let t=this.layoutNodes.get(e.key);if(t&&t.header){let n=this.collection.getItem(e.key),o=this.lastCollection?this.lastCollection.getItem(e.key):null;i=t.header.rect.height,l=r!==this.lastWidth||n!==o||t.header.estimatedSize}else i=e.rendered?this.estimatedHeadingHeight:0,l=!0}null==i&&(i=48);let o=new nc(0,n,r,i),a=new ec("header",e.key+":header",o);a.estimatedSize=l,a.parentKey=e.key,n+=a.rect.height;let s=new nc(0,n,r,0),u=new ec(e.type,e.key,s),c=n,d=0,p=[];for(let r of e.childNodes){var f;let i=null!==(f=this.rowHeight)&&void 0!==f?f:this.estimatedRowHeight;if(n+ithis.validRect.maxY){n+=([...e.childNodes].length-(p.length+d))*i;break}}return s.height=n-c,{header:a,layoutInfo:u,children:p,validRect:u.rect.intersection(this.validRect)}}buildItem(e,t,n){let r=this.virtualizer.visibleRect.width,i=this.rowHeight,l=!1;if(null==i){let t=this.layoutNodes.get(e.key);t?(i=t.layoutInfo.rect.height,l=r!==this.lastWidth||e!==t.node||t.layoutInfo.estimatedSize):(i=this.estimatedRowHeight,l=!0)}null==i&&(i=48),"function"==typeof this.indentationForItem&&(t+=this.indentationForItem(this.collection,e.key)||0);let o=new nc(t,n,r-t,i),a=new ec(e.type,e.key,o);return a.allowOverflow=!0,a.estimatedSize=l,{layoutInfo:a,validRect:a.rect}}updateItemSize(e,t){let n=this.layoutInfos.get(e);if(!n)return!1;if(n.estimatedSize=!1,n.rect.height!==t.height){let r=n.copy();r.rect.height=t.height,this.layoutInfos.set(e,r),this.updateLayoutNode(e,n,r);let i=this.collection.getItem(n.parentKey);for(;i;)this.updateLayoutNode(i.key,n,r),i=this.collection.getItem(i.parentKey);return!0}return!1}updateLayoutNode(e,t,n){let r=this.layoutNodes.get(e);r&&(r.validRect=new nc,r.header===t?r.header=n:r.layoutInfo===t&&(r.layoutInfo=n))}getContentSize(){return this.contentSize}getKeyAbove(e){let t=this.collection;for(e=t.getKeyBefore(e);null!=e;){let n=t.getItem(e);if("item"===n.type&&(this.allowDisabledKeyFocus||!this.disabledKeys.has(n.key)))return e;e=t.getKeyBefore(e)}}getKeyBelow(e){let t=this.collection;for(e=t.getKeyAfter(e);null!=e;){let n=t.getItem(e);if("item"===n.type&&(this.allowDisabledKeyFocus||!this.disabledKeys.has(n.key)))return e;e=t.getKeyAfter(e)}}getKeyPageAbove(e){let t=this.getLayoutInfo(e);if(t){let e=Math.max(0,t.rect.y+t.rect.height-this.virtualizer.visibleRect.height);for(;t&&t.rect.y>e;){let e=this.getKeyAbove(t.key);t=this.getLayoutInfo(e)}if(t)return t.key}return this.getFirstKey()}getKeyPageBelow(e){let t=this.getLayoutInfo(null!=e?e:this.getFirstKey());if(t){let e=Math.min(this.virtualizer.contentSize.height,t.rect.y-t.rect.height+this.virtualizer.visibleRect.height);for(;t&&t.rect.y=l.maxY-10&&n({...o,dropPosition:"after"})&&(o.dropPosition="after"):t<=l.y+l.height/2&&n({...o,dropPosition:"before"})?o.dropPosition="before":n({...o,dropPosition:"after"})&&(o.dropPosition="after"),o}constructor(e={}){super(),ae(this,"disabledKeys",new Set),ae(this,"allowDisabledKeyFocus",!1),this.rowHeight=e.rowHeight,this.estimatedRowHeight=e.estimatedRowHeight,this.headingHeight=e.headingHeight,this.estimatedHeadingHeight=e.estimatedHeadingHeight,this.padding=e.padding||0,this.indentationForItem=e.indentationForItem,this.collator=e.collator,this.loaderHeight=e.loaderHeight,this.placeholderHeight=e.placeholderHeight,this.layoutInfos=new Map,this.layoutNodes=new Map,this.rootNodes=[],this.lastWidth=0,this.lastCollection=null,this.allowDisabledKeyFocus=e.allowDisabledKeyFocus,this.lastValidRect=new nc,this.validRect=new nc,this.contentSize=new rc}}o=l("acw62");let Rc=Symbol.iterator;class Oc{*[Rc](){yield*this.iterable}get size(){return this.keyMap.size}getKeys(){return this.keyMap.keys()}getKeyBefore(e){let t=this.keyMap.get(e);return t?t.prevKey:null}getKeyAfter(e){let t=this.keyMap.get(e);return t?t.nextKey:null}getFirstKey(){return this.firstKey}getLastKey(){return this.lastKey}getItem(e){return this.keyMap.get(e)}at(e){const t=[...this.getKeys()];return this.getItem(t[e])}constructor(e){ae(this,"keyMap",new Map),this.iterable=e;let t,n=e=>{if(this.keyMap.set(e.key,e),e.childNodes&&"section"===e.type)for(let t of e.childNodes)n(t)};for(let t of e)n(t);let r=0;for(let[e,n]of this.keyMap)t?(t.nextKey=e,n.prevKey=t.key):(this.firstKey=e,n.prevKey=void 0),"item"===n.type&&(n.index=r++),t=n,t.nextKey=void 0;this.lastKey=null==t?void 0:t.key}}function Ac(e){let{filter:t}=e,n=Aa(e),r=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),i=(0,o.useMemo)((()=>({suppressTextValueWarning:e.suppressTextValueWarning})),[e.suppressTextValueWarning]),l=ka(e,(e=>new Oc(t?t(e):e)),i,[t]);return(0,o.useEffect)((()=>{null==n.focusedKey||l.getItem(n.focusedKey)||n.setFocusedKey(null)}),[l,n.focusedKey]),{collection:l,disabledKeys:r,selectionManager:new za(l,n)}}function Fc(e){var t;let[n,r]=s(e.selectedKey,null!==(t=e.defaultSelectedKey)&&void 0!==t?t:null,e.onSelectionChange),i=(0,o.useMemo)((()=>null!=n?[n]:[]),[n]),{collection:l,disabledKeys:a,selectionManager:u}=Ac({...e,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:i,onSelectionChange:t=>{let i=t.values().next().value;i===n&&e.onSelectionChange&&e.onSelectionChange(i),r(i)}}),c=null!=n?l.getItem(n):null;return{collection:l,disabledKeys:a,selectionManager:u,selectedKey:n,setSelectedKey:r,selectedItem:c}}o=l("acw62");function zc(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:l="label"}=e;t=w(t);let o=w(),a={};return n?(r=r?`${r} ${o}`:o,a={id:o,htmlFor:"label"===l?t:void 0}):r||i||console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility"),{labelProps:a,fieldProps:F({id:t,"aria-label":i,"aria-labelledby":r})}}function Dc(e){let{description:t,errorMessage:n,validationState:r}=e,{labelProps:i,fieldProps:l}=zc(e),o=k([Boolean(t),Boolean(n),r]),a=k([Boolean(t),Boolean(n),r]);return l=x(l,{"aria-describedby":[o,a,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:i,fieldProps:l,descriptionProps:{id:o},errorMessageProps:{id:a}}}function Kc(e){let{value:t=0,minValue:n=0,maxValue:r=100,valueLabel:i,isIndeterminate:l,formatOptions:o={style:"percent"}}=e,a=C(e,{labelable:!0}),{labelProps:s,fieldProps:c}=zc({...e,labelElementType:"span"});t=u(t,n,r);let d=(t-n)/(r-n),p=Te(o);if(!l&&!i){let e="percent"===o.style?d:t;i=p.format(e)}return{progressBarProps:x(a,{...c,"aria-valuenow":l?void 0:t,"aria-valuemin":n,"aria-valuemax":r,"aria-valuetext":l?void 0:i,role:"progressbar"}),labelProps:s}}function Vc(e){return e&&e.__esModule?e.default:e}function Uc(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Bc,jc,$c,Hc,Wc,qc,Gc,Qc,Yc,Xc,Zc,Jc,ed,td,nd={};Uc(nd,"spectrum-BarLoader",(()=>Bc),(e=>Bc=e)),Uc(nd,"spectrum-BarLoader--indeterminate",(()=>jc),(e=>jc=e)),Uc(nd,"spectrum-BarLoader--sideLabel",(()=>$c),(e=>$c=e)),Uc(nd,"spectrum-BarLoader-track",(()=>Hc),(e=>Hc=e)),Uc(nd,"spectrum-BarLoader-fill",(()=>Wc),(e=>Wc=e)),Uc(nd,"spectrum-BarLoader-label",(()=>qc),(e=>qc=e)),Uc(nd,"spectrum-BarLoader-percentage",(()=>Gc),(e=>Gc=e)),Uc(nd,"spectrum-BarLoader--small",(()=>Qc),(e=>Qc=e)),Uc(nd,"indeterminate-loop-ltr",(()=>Yc),(e=>Yc=e)),Uc(nd,"indeterminate-loop-rtl",(()=>Xc),(e=>Xc=e)),Uc(nd,"spectrum-BarLoader--overBackground",(()=>Zc),(e=>Zc=e)),Uc(nd,"is-positive",(()=>Jc),(e=>Jc=e)),Uc(nd,"is-warning",(()=>ed),(e=>ed=e)),Uc(nd,"is-critical",(()=>td),(e=>td=e)),Bc="spectrum-BarLoader_48541f",jc="spectrum-BarLoader--indeterminate_48541f",$c="spectrum-BarLoader--sideLabel_48541f",Hc="spectrum-BarLoader-track_48541f",Wc="spectrum-BarLoader-fill_48541f",qc="spectrum-BarLoader-label_48541f",Gc="spectrum-BarLoader-percentage_48541f",Qc="spectrum-BarLoader--small_48541f",Yc="indeterminate-loop-ltr_48541f",Xc="indeterminate-loop-rtl_48541f",Zc="spectrum-BarLoader--overBackground_48541f",Jc="is-positive_48541f",ed="is-warning_48541f",td="is-critical_48541f";let rd=t(o).forwardRef((function(e,n){let{value:r=0,minValue:i=0,maxValue:l=100,size:a="L",label:s,barClassName:c,showValueLabel:d=!!s,labelPosition:p="top",isIndeterminate:f=!1,barProps:m,labelProps:h,"aria-label":g,"aria-labelledby":y,...v}=e,b=Oe(n),{styleProps:w}=tt(v);r=u(r,i,l);let E={};if(!f){let e=(r-i)/(l-i);E.width=`${Math.round(100*e)}%`}return s||g||y||console.warn("If you do not provide a visible label via children, you must specify an aria-label or aria-labelledby attribute for accessibility"),t(o).createElement("div",{...m,ref:b,className:Me(Vc(nd),"spectrum-BarLoader",{"spectrum-BarLoader--small":"S"===a,"spectrum-BarLoader--large":"L"===a,"spectrum-BarLoader--indeterminate":f,"spectrum-BarLoader--sideLabel":"side"===p},c,w.className),style:{minWidth:"-moz-fit-content",...w.style}},s&&t(o).createElement("span",{...h,className:Me(Vc(nd),"spectrum-BarLoader-label")},s),d&&t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-percentage")},m["aria-valuetext"]),t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-track")},t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-fill"),style:E})))}));t(o).forwardRef((function(e,n){let{variant:r,...i}=e;const{progressBarProps:l,labelProps:a}=Kc(e);return t(o).createElement(rd,{...i,ref:n,barProps:l,labelProps:a,barClassName:Me(Vc(nd),{"spectrum-BarLoader--overBackground":"overBackground"===r})})}));var id,ld,od,ad,sd,ud,cd,dd,pd,fd,md,hd,gd,yd,vd,bd,wd={};Uc(wd,"spectrum-CircleLoader--indeterminate-fill-submask-2",(()=>id),(e=>id=e)),Uc(wd,"spectrum-fill-mask-2",(()=>ld),(e=>ld=e)),Uc(wd,"spectrum-CircleLoader",(()=>od),(e=>od=e)),Uc(wd,"spectrum-CircleLoader-track",(()=>ad),(e=>ad=e)),Uc(wd,"spectrum-CircleLoader-fills",(()=>sd),(e=>sd=e)),Uc(wd,"spectrum-CircleLoader-fill",(()=>ud),(e=>ud=e)),Uc(wd,"spectrum-CircleLoader-fillMask1",(()=>cd),(e=>cd=e)),Uc(wd,"spectrum-CircleLoader-fillMask2",(()=>dd),(e=>dd=e)),Uc(wd,"spectrum-CircleLoader-fillSubMask1",(()=>pd),(e=>pd=e)),Uc(wd,"spectrum-CircleLoader-fillSubMask2",(()=>fd),(e=>fd=e)),Uc(wd,"spectrum-CircleLoader--small",(()=>md),(e=>md=e)),Uc(wd,"spectrum-CircleLoader--large",(()=>hd),(e=>hd=e)),Uc(wd,"spectrum-CircleLoader--indeterminate",(()=>gd),(e=>gd=e)),Uc(wd,"spectrum-fills-rotate",(()=>yd),(e=>yd=e)),Uc(wd,"spectrum-fill-mask-1",(()=>vd),(e=>vd=e)),Uc(wd,"spectrum-CircleLoader--overBackground",(()=>bd),(e=>bd=e)),id="spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153",ld="spectrum-fill-mask-2_7c1153",od="spectrum-CircleLoader_7c1153",ad="spectrum-CircleLoader-track_7c1153",sd="spectrum-CircleLoader-fills_7c1153",ud="spectrum-CircleLoader-fill_7c1153",cd="spectrum-CircleLoader-fillMask1_7c1153",dd="spectrum-CircleLoader-fillMask2_7c1153",pd="spectrum-CircleLoader-fillSubMask1_7c1153",fd="spectrum-CircleLoader-fillSubMask2_7c1153",md="spectrum-CircleLoader--small_7c1153",hd="spectrum-CircleLoader--large_7c1153",gd="spectrum-CircleLoader--indeterminate_7c1153",yd="spectrum-fills-rotate_7c1153",vd="spectrum-fill-mask-1_7c1153",bd="spectrum-CircleLoader--overBackground_7c1153";let Ed=t(o).forwardRef((function(e,n){let{value:r=0,minValue:i=0,maxValue:l=100,size:a="M",variant:s,isIndeterminate:c=!1,"aria-label":d,"aria-labelledby":p,...f}=e,m=Oe(n),{styleProps:h}=tt(f);r=u(r,i,l);let{progressBarProps:g}=Kc({...e,value:r}),y={},v={};if(!c){let e,t=(r-i)/(l-i)*100;t>0&&t<=50?(e=t/50*180-180,y.transform=`rotate(${e}deg)`,v.transform="rotate(-180deg)"):t>50&&(e=(t-50)/50*180-180,y.transform="rotate(0deg)",v.transform=`rotate(${e}deg)`)}return d||p||console.warn("ProgressCircle requires an aria-label or aria-labelledby attribute for accessibility"),t(o).createElement("div",{...h,...g,ref:m,className:Me(Vc(wd),"spectrum-CircleLoader",{"spectrum-CircleLoader--indeterminate":c,"spectrum-CircleLoader--small":"S"===a,"spectrum-CircleLoader--large":"L"===a,"spectrum-CircleLoader--overBackground":"overBackground"===s},h.className)},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-track")}),t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fills")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillMask1")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillSubMask1"),"data-testid":"fillSubMask1",style:y},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fill")}))),t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillMask2")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillSubMask2"),"data-testid":"fillSubMask2",style:v},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fill")})))))}));o=l("acw62"),o=l("acw62");let kd=null;function Sd(e=!1){if(null===kd||e){const e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";const n=document.createElement("div"),r=n.style;return r.width="100px",r.height="100px",e.appendChild(n),document.body.appendChild(e),e.scrollLeft>0?kd="positive-descending":(e.scrollLeft=1,kd=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),kd}return kd}const xd=t(o).forwardRef((function(e,n){let{contentSize:r,onVisibleRectChange:i,children:l,innerStyle:s,sizeToFit:u,onScrollStart:c,onScrollEnd:d,scrollDirection:p="both",...f}=e,m=(0,o.useRef)();n=n||m;let h=(0,o.useRef)({scrollTop:0,scrollLeft:0,scrollEndTime:0,scrollTimeout:null,width:0,height:0,isScrolling:!1}).current,{direction:g}=Se(),[v,b]=(0,o.useState)(!1),w=(0,o.useCallback)((t=>{t.target===t.currentTarget&&(e.onScroll&&e.onScroll(t),(0,a.flushSync)((()=>{let e=t.currentTarget.scrollTop,n=function(e,t){let{scrollLeft:n}=e;if("rtl"===t){let{scrollWidth:t,clientWidth:r}=e;switch(Sd()){case"negative":n=-n;break;case"positive-descending":n=t-r-n}}return n}(t.currentTarget,g);h.scrollTop=Math.max(0,Math.min(e,r.height-h.height)),h.scrollLeft=Math.max(0,Math.min(n,r.width-h.width)),i(new nc(h.scrollLeft,h.scrollTop,h.width,h.height)),h.isScrolling||(h.isScrolling=!0,b(!0),c&&c());let l=Date.now();h.scrollEndTime<=l+50&&(h.scrollEndTime=l+300,clearTimeout(h.scrollTimeout),h.scrollTimeout=setTimeout((()=>{h.isScrolling=!1,b(!1),h.scrollTimeout=null,d&&d()}),300))})))}),[e,g,h,r,i,c,d]);(0,o.useEffect)((()=>()=>{clearTimeout(h.scrollTimeout)}),[]);let E=(0,o.useCallback)((()=>{let e=n.current;if(!e)return;let t=e.clientWidth,l=e.clientHeight;u&&r.width>0&&r.height>0&&("width"===u?t=Math.min(t,r.width):"height"===u&&(l=Math.min(l,r.height))),h.width===t&&h.height===l||(h.width=t,h.height=l,i(new nc(h.scrollLeft,h.scrollTop,t,l)))}),[i,n,h,u,r]);y((()=>{E()}),[E]),D({ref:n,onResize:E});let k={padding:0,...f.style};return"horizontal"===p?(k.overflowX="auto",k.overflowY="hidden"):"vertical"===p?(k.overflowY="auto",k.overflowX="hidden"):k.overflow="auto",t(o).createElement("div",{...f,style:k,ref:n,onScroll:w},t(o).createElement("div",{role:"presentation",style:{width:r.width,height:r.height,pointerEvents:v?"none":"auto",position:"relative",...s}},l))}));function Pd(e){let{reusableView:{layoutInfo:t,virtualizer:n},ref:r}=e,i=(0,o.useCallback)((()=>{let e=function(e){let t=e.style.height;e.style.height="";let n=new rc(e.scrollWidth,e.scrollHeight);return e.style.height=t,n}(r.current);n.updateItemSize(t.key,e)}),[n,t.key,r]);return y((()=>{t.estimatedSize&&i()})),{updateSize:i}}function Td(e){let{className:n,reusableView:r,parent:i}=e,{direction:l}=Se(),a=(0,o.useRef)();return Pd({reusableView:r,ref:a}),t(o).createElement("div",{role:"presentation",ref:a,className:n,style:Cd(r.layoutInfo,l,i&&i.layoutInfo)},r.rendered)}let _d=new WeakMap;function Cd(e,t,n){let r="rtl"===t?"right":"left",i=_d.get(e);if(i&&null!=i[r]){if(!n)return i;let t=e.rect.y-n.rect.y,l=e.rect.x-n.rect.x;if(i.top===t&&i[r]===l)return i}let l={position:e.isSticky?"sticky":"absolute",overflow:e.allowOverflow?"visible":"hidden",top:e.rect.y-(n?n.rect.y:0),[r]:e.rect.x-(n?n.rect.x:0),transition:"all",WebkitTransition:"all",WebkitTransitionDuration:"inherit",transitionDuration:"inherit",width:e.rect.width,height:e.rect.height,opacity:e.opacity,zIndex:e.zIndex,transform:e.transform,contain:"size layout style"};return _d.set(e,l),l}const Id=t(o).forwardRef((function(e,n){let{children:r,renderWrapper:i,layout:l,collection:a,sizeToFit:s,scrollDirection:u,transitionDuration:c,isLoading:d,onLoadMore:p,focusedKey:f,shouldUseVirtualFocus:m,scrollToItem:h,...g}=e,v=(0,o.useRef)();n=n||v;let b=gc({transitionDuration:c,layout:l,collection:a,renderView:r,renderWrapper:i||Md,onVisibleRectChange(e){n.current.scrollLeft=e.x,n.current.scrollTop=e.y}}),{virtualizerProps:w}=function(e,t,n){let{focusedKey:r,scrollToItem:i,shouldUseVirtualFocus:l}=e,{virtualizer:a}=t,s=(0,o.useRef)(null),u=(0,o.useRef)(!1);(0,o.useEffect)((()=>{if(0===a.visibleRect.height)return;let e=$t();r===s.current||"pointer"===e&&u.current||(i?i(r):a.scrollToItem(r,{duration:0})),s.current=r}),[r,a.visibleRect.height,a,s,i]),a.persistedKeys=(0,o.useMemo)((()=>r?new Set([r]):new Set),[r]);let c=(0,o.useCallback)((e=>{let t=$t();!u.current&&n.current.contains(e.target)&&"pointer"!==t&&(i?i(r):a.scrollToItem(r,{duration:0})),u.current=e.target!==n.current}),[n,a,r,i]),d=(0,o.useCallback)((e=>{u.current=n.current.contains(e.relatedTarget)}),[n]),p=a.getView(r);(0,o.useEffect)((()=>{r&&!p&&u.current&&document.activeElement!==n.current&&I(n.current)}));let f,m=function({isEmpty:e,hasRenderedAnything:t},n){let[r,i]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{if((null==n?void 0:n.current)&&e&&t){let e=Sn(n.current,{tabbable:!0});i(!!e.nextNode())}}),[n,e,t]),r}({isEmpty:0===a.collection.size,hasRenderedAnything:a.contentSize.height>0||a.contentSize.width>0},n);l||(f=p||m?-1:0);return{virtualizerProps:{tabIndex:f,onFocus:c,onBlur:d}}}(e,b,n),E=(0,o.useCallback)((e=>{if(b.setVisibleRect(e),!d&&p){let t=b.virtualizer.contentSize.height-2*e.height;e.y>t&&p()}}),[d,p,b]);return y((()=>{d||!p||b.isAnimating||b.contentSize.height>0&&b.contentSize.height<=b.virtualizer.visibleRect.height&&p()}),[b.contentSize,b.isAnimating,b.virtualizer,p,d]),t(o).createElement(xd,{...x(g,w),ref:n,innerStyle:b.isAnimating?{transition:`none ${b.virtualizer.transitionDuration}ms`}:void 0,contentSize:b.contentSize,onVisibleRectChange:E,onScrollStart:b.startScrolling,onScrollEnd:b.endScrolling,sizeToFit:s,scrollDirection:u},b.visibleViews)}));function Md(e,n){return t(o).createElement(Td,{key:n.key,reusableView:n,parent:e})}var Ld;Ld=function(e){return Dd.default.createElement(Gi,e,Dd.default.createElement(Nd.CheckmarkSmall,null))};var Nd={};Object.defineProperty(Nd,"__esModule",{value:!0}),Nd.CheckmarkSmall=Fd;var Rd=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Od(){return Od=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Fd(e){var t=e.scale,n=void 0===t?"M":t,r=Ad(e,["scale"]);return Rd.default.createElement("svg",Od({},r,r),"L"===n&&Rd.default.createElement("path",{d:"M4.5 11a.999.999 0 0 1-.788-.385l-3-4a1 1 0 1 1 1.576-1.23L4.5 8.376l5.212-6.99a1 1 0 1 1 1.576 1.23l-6 8A.999.999 0 0 1 4.5 11z"}),"M"===n&&Rd.default.createElement("path",{d:"M3.788 9A.999.999 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A.999.999 0 0 1 3.788 9z"}))}Fd.displayName="CheckmarkSmall";var zd,Dd=Br(l("acw62"));zd=function(e){return $d.default.createElement(Gi,e,$d.default.createElement(Kd.DashSmall,null))};var Kd={};Object.defineProperty(Kd,"__esModule",{value:!0}),Kd.DashSmall=jd;var Vd=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Ud(){return Ud=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function jd(e){var t=e.scale,n=void 0===t?"M":t,r=Bd(e,["scale"]);return Vd.default.createElement("svg",Ud({},r,r),"L"===n&&Vd.default.createElement("path",{d:"M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z"}),"M"===n&&Vd.default.createElement("path",{d:"M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z"}))}jd.displayName="DashSmall";var $d=Br(l("acw62"));o=l("acw62"),o=l("acw62");function Hd(e,t,n){let{isDisabled:r=!1,isRequired:i,isReadOnly:l,value:o,name:a,children:s,"aria-label":u,"aria-labelledby":c,validationState:d="valid"}=e;null!=s||(null!=u||null!=c)||console.warn("If you do not provide children, you must specify an aria-label for accessibility");let{pressProps:p}=gt({isDisabled:r}),{focusableProps:f}=Mn(e,n),m=x(p,f);return{inputProps:x(C(e,{labelable:!0}),{"aria-invalid":"invalid"===d||void 0,"aria-errormessage":e["aria-errormessage"],"aria-controls":e["aria-controls"],"aria-readonly":l||void 0,"aria-required":i||void 0,onChange:e=>{e.stopPropagation(),t.setSelected(e.target.checked)},disabled:r,...null==o?{}:{value:o},name:a,type:"checkbox",...m})}}function Wd(e,t,n){let{inputProps:r}=Hd(e,t,n),{isSelected:i}=t,{isIndeterminate:l}=e;return(0,o.useEffect)((()=>{n.current&&(n.current.indeterminate=l)})),{inputProps:{...r,checked:i}}}const qd=new WeakMap,Gd=new WeakMap,Qd=new WeakMap;function Yd(e,t){let{isDisabled:n,name:r}=e,{labelProps:i,fieldProps:l,descriptionProps:o,errorMessageProps:a}=Dc({...e,labelElementType:"span"});Gd.set(t,o.id),Qd.set(t,a.id);let s=C(e,{labelable:!0});return qd.set(t,r),{groupProps:x(s,{role:"group","aria-disabled":n||void 0,...l}),labelProps:i,descriptionProps:o,errorMessageProps:a}}function Xd(e,t,n){const r=il({isReadOnly:e.isReadOnly||t.isReadOnly,isSelected:t.isSelected(e.value),onChange(n){n?t.addValue(e.value):t.removeValue(e.value),e.onChange&&e.onChange(n)}});let{inputProps:i}=Wd({...e,isReadOnly:e.isReadOnly||t.isReadOnly,isDisabled:e.isDisabled||t.isDisabled,name:e.name||qd.get(t)},r,n);return{inputProps:{...i,"aria-describedby":["invalid"===t.validationState?Qd.get(t):null,Gd.get(t)].filter(Boolean).join(" ")||void 0}}}o=l("acw62"),o=l("acw62");function Zd(e){return e&&e.__esModule?e.default:e}function Jd(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var ep,tp,np,rp,ip,lp,op,ap,sp,up,cp,dp,pp,fp,mp,hp,gp,yp,vp,bp,wp={};Jd(wp,"spectrum-FieldLabel",(()=>ep),(e=>ep=e)),Jd(wp,"spectrum-FieldLabel--positionSide",(()=>tp),(e=>tp=e)),Jd(wp,"spectrum-FieldLabel-requiredIcon",(()=>np),(e=>np=e)),Jd(wp,"spectrum-FieldLabel--alignEnd",(()=>rp),(e=>rp=e)),Jd(wp,"spectrum-Field",(()=>ip),(e=>ip=e)),Jd(wp,"spectrum-Field-contextualHelp",(()=>lp),(e=>lp=e)),Jd(wp,"spectrum-Field--positionTop",(()=>op),(e=>op=e)),Jd(wp,"spectrum-Field-field",(()=>ap),(e=>ap=e)),Jd(wp,"spectrum-Field--alignEnd",(()=>sp),(e=>sp=e)),Jd(wp,"spectrum-Field--positionSide",(()=>up),(e=>up=e)),Jd(wp,"spectrum-Field-wrapper",(()=>cp),(e=>cp=e)),Jd(wp,"spectrum-Field--hasContextualHelp",(()=>dp),(e=>dp=e)),Jd(wp,"spectrum-Form",(()=>pp),(e=>pp=e)),Jd(wp,"spectrum-Form--positionSide",(()=>fp),(e=>fp=e)),Jd(wp,"spectrum-Field-labelCell",(()=>mp),(e=>mp=e)),Jd(wp,"spectrum-Field-labelWrapper",(()=>hp),(e=>hp=e)),Jd(wp,"spectrum-Form--positionTop",(()=>gp),(e=>gp=e)),Jd(wp,"spectrum-LabeledValue",(()=>yp),(e=>yp=e)),Jd(wp,"spectrum-Form-itemLabel",(()=>vp),(e=>vp=e)),Jd(wp,"is-disabled",(()=>bp),(e=>bp=e)),ep="spectrum-FieldLabel_d2db1f",tp="spectrum-FieldLabel--positionSide_d2db1f",np="spectrum-FieldLabel-requiredIcon_d2db1f",rp="spectrum-FieldLabel--alignEnd_d2db1f",ip="spectrum-Field_d2db1f",lp="spectrum-Field-contextualHelp_d2db1f",op="spectrum-Field--positionTop_d2db1f",ap="spectrum-Field-field_d2db1f",sp="spectrum-Field--alignEnd_d2db1f",up="spectrum-Field--positionSide_d2db1f",cp="spectrum-Field-wrapper_d2db1f",dp="spectrum-Field--hasContextualHelp_d2db1f",pp="spectrum-Form_d2db1f",fp="spectrum-Form--positionSide_d2db1f",mp="spectrum-Field-labelCell_d2db1f",hp="spectrum-Field-labelWrapper_d2db1f",gp="spectrum-Form--positionTop_d2db1f",yp="spectrum-LabeledValue_d2db1f",vp="spectrum-Form-itemLabel_d2db1f",bp="is-disabled_d2db1f";let Ep=t(o).createContext(null);function kp(e){let t=(0,o.useContext)(Ep);return t?{...t,...e}:e}const Sp=new Set(["action","autoComplete","encType","method","target","onSubmit"]);t(o).forwardRef((function(e,n){e=Vr(e);let{children:r,labelPosition:i="top",labelAlign:l="start",isRequired:a,necessityIndicator:s,isQuiet:u,isEmphasized:c,isDisabled:d,isReadOnly:p,validationState:f,...m}=e,{styleProps:h}=tt(m),g=Oe(n),y={labelPosition:i,labelAlign:l,necessityIndicator:s};return t(o).createElement("form",{...C(m,{labelable:!0,propNames:Sp}),...h,noValidate:!0,ref:g,className:Me(Zd(wp),"spectrum-Form",{"spectrum-Form--positionSide":"side"===i,"spectrum-Form--positionTop":"top"===i},h.className)},t(o).createElement(Ep.Provider,{value:y},t(o).createElement(zr,{isQuiet:u,isEmphasized:c,isDisabled:d,isReadOnly:p,isRequired:a,validationState:f},r)))}));var xp;xp=function(e){var t,n;let r=Kr();return Lp.default.createElement(Gi,e,null!=r&&null!=(t=r.theme)&&null!=(n=t.global)&&n.express?Lp.default.createElement(Np,null):Lp.default.createElement(Tp.AlertMedium,null))};var Pp=Br(l("3p9rK")),Tp={};Object.defineProperty(Tp,"__esModule",{value:!0}),Tp.AlertMedium=Mp;var _p=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Cp(){return Cp=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Mp(e){var t=e.scale,n=void 0===t?"M":t,r=Ip(e,["scale"]);return _p.default.createElement("svg",Cp({},r,r),"L"===n&&_p.default.createElement("path",{d:"M10.563 2.206l-9.249 16.55a.5.5 0 0 0 .436.744h18.5a.5.5 0 0 0 .436-.744l-9.251-16.55a.5.5 0 0 0-.872 0zm1.436 15.044a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"}),"M"===n&&_p.default.createElement("path",{d:"M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .436-.744L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"}))}Mp.displayName="AlertMedium";var Lp=Br(l("acw62"));const Np=e=>Lp.default.createElement("svg",(0,Pp.default)({viewBox:"0 0 18 18"},e),Lp.default.createElement("path",{d:"M9 10.5a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v4.5a1 1 0 0 1-1 1Zm0 1.25A1.25 1.25 0 1 0 10.25 13 1.25 1.25 0 0 0 9 11.75Zm8.497 3.589a3.49 3.49 0 0 0 .079-3.474L12 1.815a3.385 3.385 0 0 0-5.994-.007L.416 11.88a3.485 3.485 0 0 0 .089 3.459A3.375 3.375 0 0 0 3.416 17h11.169a3.375 3.375 0 0 0 2.912-1.661ZM10.244 2.77l5.575 10.05a1.497 1.497 0 0 1-.037 1.489 1.374 1.374 0 0 1-1.197.69H3.416a1.374 1.374 0 0 1-1.197-.69 1.493 1.493 0 0 1-.046-1.474l5.593-10.08a1.386 1.386 0 0 1 2.478.015Z"}));var Rp;Np.displayName=Tp.AlertMedium.displayName,Rp=function(e){return Kp.default.createElement(Gi,e,Kp.default.createElement(Op.Asterisk,null))};var Op={};Object.defineProperty(Op,"__esModule",{value:!0}),Op.Asterisk=Dp;var Ap=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Fp(){return Fp=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Dp(e){var t=e.scale,n=void 0===t?"M":t,r=zp(e,["scale"]);return Ap.default.createElement("svg",Fp({},r,r),"L"===n&&Ap.default.createElement("path",{d:"M7.867 7.872c.061.062.103.145 0 .228l-1.283.827c-.104.061-.145.02-.186-.083L4.804 6.07l-2.09 2.297c-.021.042-.083.083-.145 0l-.994-1.035c-.103-.062-.082-.124 0-.186l2.36-1.966-2.691-1.014c-.042 0-.104-.083-.062-.186l.703-1.41a.11.11 0 0 1 .187-.04L4.43 4.06l.145-3.02A.109.109 0 0 1 4.7.917l1.718.227c.104 0 .124.042.104.145l-.808 2.96 2.734-.828c.061-.042.124-.042.165.082l.27 1.532c.02.103 0 .145-.084.145l-2.856.227z"}),"M"===n&&Ap.default.createElement("path",{d:"M6.573 6.558c.056.055.092.13 0 .204l-1.148.74c-.093.056-.13.02-.167-.073L3.832 4.947l-1.87 2.055c-.02.037-.075.074-.13 0l-.889-.926c-.092-.055-.074-.111 0-.167l2.111-1.76-2.408-.906c-.037 0-.092-.074-.055-.167l.63-1.259a.097.097 0 0 1 .166-.036l2.111 1.37.13-2.704a.097.097 0 0 1 .111-.11L5.277.54c.092 0 .11.037.092.13l-.722 2.647 2.444-.74c.056-.038.111-.038.148.073l.241 1.37c.019.093 0 .13-.074.13l-2.556.204z"}))}Dp.displayName="Asterisk";var Kp=Br(l("acw62"));function Vp(e){return e&&e.__esModule?e.default:e}function Up(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Bp,jp,$p,Hp,Wp,qp,Gp={};Up(Gp,"spectrum-HelpText",(()=>Bp),(e=>Bp=e)),Up(Gp,"spectrum-HelpText-validationIcon",(()=>jp),(e=>jp=e)),Up(Gp,"spectrum-HelpText-text",(()=>$p),(e=>$p=e)),Up(Gp,"spectrum-HelpText--neutral",(()=>Hp),(e=>Hp=e)),Up(Gp,"is-disabled",(()=>Wp),(e=>Wp=e)),Up(Gp,"spectrum-HelpText--negative",(()=>qp),(e=>qp=e)),Bp="spectrum-HelpText_f395de",jp="spectrum-HelpText-validationIcon_f395de",$p="spectrum-HelpText-text_f395de",Hp="spectrum-HelpText--neutral_f395de",Wp="is-disabled_f395de",qp="spectrum-HelpText--negative_f395de";const Qp=t(o).forwardRef((function(e,n){let{description:r,errorMessage:i,validationState:l,isDisabled:a,showErrorIcon:s,descriptionProps:u,errorMessageProps:c}=e,d=Oe(n),p=i&&"invalid"===l,{styleProps:f}=tt(e);return t(o).createElement("div",{...f,className:Me(Vp(Gp),"spectrum-HelpText","spectrum-HelpText--"+(p?"negative":"neutral"),{"is-disabled":a},f.className),ref:d},p?t(o).createElement(t(o).Fragment,null,s&&t(o).createElement(xp,{UNSAFE_className:Me(Vp(Gp),"spectrum-HelpText-validationIcon")}),t(o).createElement("div",{...c,className:Me(Vp(Gp),"spectrum-HelpText-text")},i)):t(o).createElement("div",{...u,className:Me(Vp(Gp),"spectrum-HelpText-text")},r))}));var Yp;Yp={"ar-AE":{"(optional)":"(اختياري)","(required)":"(مطلوب)"},"bg-BG":{"(optional)":"(незадължително)","(required)":"(задължително)"},"cs-CZ":{"(optional)":"(volitelně)","(required)":"(požadováno)"},"da-DK":{"(optional)":"(valgfrit)","(required)":"(obligatorisk)"},"de-DE":{"(optional)":"(optional)","(required)":"(erforderlich)"},"el-GR":{"(optional)":"(προαιρετικό)","(required)":"(απαιτείται)"},"en-US":{"(required)":"(required)","(optional)":"(optional)"},"es-ES":{"(optional)":"(opcional)","(required)":"(necesario)"},"et-EE":{"(optional)":"(valikuline)","(required)":"(nõutav)"},"fi-FI":{"(optional)":"(valinnainen)","(required)":"(pakollinen)"},"fr-FR":{"(optional)":"(facultatif)","(required)":"(requis)"},"he-IL":{"(optional)":"(אופציונלי)","(required)":"(נדרש)"},"hr-HR":{"(optional)":"(opcionalno)","(required)":"(obvezno)"},"hu-HU":{"(optional)":"(opcionális)","(required)":"(kötelező)"},"it-IT":{"(optional)":"(facoltativo)","(required)":"(obbligatorio)"},"ja-JP":{"(optional)":"(オプション)","(required)":"(必須)"},"ko-KR":{"(optional)":"(선택 사항)","(required)":"(필수 사항)"},"lt-LT":{"(optional)":"(pasirenkama)","(required)":"(privaloma)"},"lv-LV":{"(optional)":"(neobligāti)","(required)":"(obligāti)"},"nb-NO":{"(optional)":"(valgfritt)","(required)":"(obligatorisk)"},"nl-NL":{"(optional)":"(optioneel)","(required)":"(vereist)"},"pl-PL":{"(optional)":"(opcjonalne)","(required)":"(wymagane)"},"pt-BR":{"(optional)":"(opcional)","(required)":"(obrigatório)"},"pt-PT":{"(optional)":"(opcional)","(required)":"(obrigatório)"},"ro-RO":{"(optional)":"(opţional)","(required)":"(obligatoriu)"},"ru-RU":{"(optional)":"(дополнительно)","(required)":"(обязательно)"},"sk-SK":{"(optional)":"(nepovinné)","(required)":"(povinné)"},"sl-SI":{"(optional)":"(opcijsko)","(required)":"(obvezno)"},"sr-SP":{"(optional)":"(opciono)","(required)":"(obavezno)"},"sv-SE":{"(optional)":"(valfritt)","(required)":"(krävs)"},"tr-TR":{"(optional)":"(isteğe bağlı)","(required)":"(gerekli)"},"uk-UA":{"(optional)":"(необов’язково)","(required)":"(обов’язково)"},"zh-CN":{"(optional)":"(可选)","(required)":"(必填)"},"zh-TW":{"(optional)":"(選填)","(required)":"(必填)"}};var Xp,Zp,Jp,ef,tf,nf,rf,lf,of,af,sf,uf,cf,df,pf,ff,mf,hf,gf,yf,vf={};Up(vf,"spectrum-FieldLabel",(()=>Xp),(e=>Xp=e)),Up(vf,"spectrum-FieldLabel--positionSide",(()=>Zp),(e=>Zp=e)),Up(vf,"spectrum-FieldLabel-requiredIcon",(()=>Jp),(e=>Jp=e)),Up(vf,"spectrum-FieldLabel--alignEnd",(()=>ef),(e=>ef=e)),Up(vf,"spectrum-Field",(()=>tf),(e=>tf=e)),Up(vf,"spectrum-Field-contextualHelp",(()=>nf),(e=>nf=e)),Up(vf,"spectrum-Field--positionTop",(()=>rf),(e=>rf=e)),Up(vf,"spectrum-Field-field",(()=>lf),(e=>lf=e)),Up(vf,"spectrum-Field--alignEnd",(()=>of),(e=>of=e)),Up(vf,"spectrum-Field--positionSide",(()=>af),(e=>af=e)),Up(vf,"spectrum-Field-wrapper",(()=>sf),(e=>sf=e)),Up(vf,"spectrum-Field--hasContextualHelp",(()=>uf),(e=>uf=e)),Up(vf,"spectrum-Form",(()=>cf),(e=>cf=e)),Up(vf,"spectrum-Form--positionSide",(()=>df),(e=>df=e)),Up(vf,"spectrum-Field-labelCell",(()=>pf),(e=>pf=e)),Up(vf,"spectrum-Field-labelWrapper",(()=>ff),(e=>ff=e)),Up(vf,"spectrum-Form--positionTop",(()=>mf),(e=>mf=e)),Up(vf,"spectrum-LabeledValue",(()=>hf),(e=>hf=e)),Up(vf,"spectrum-Form-itemLabel",(()=>gf),(e=>gf=e)),Up(vf,"is-disabled",(()=>yf),(e=>yf=e)),Xp="spectrum-FieldLabel_d2db1f",Zp="spectrum-FieldLabel--positionSide_d2db1f",Jp="spectrum-FieldLabel-requiredIcon_d2db1f",ef="spectrum-FieldLabel--alignEnd_d2db1f",tf="spectrum-Field_d2db1f",nf="spectrum-Field-contextualHelp_d2db1f",rf="spectrum-Field--positionTop_d2db1f",lf="spectrum-Field-field_d2db1f",of="spectrum-Field--alignEnd_d2db1f",af="spectrum-Field--positionSide_d2db1f",sf="spectrum-Field-wrapper_d2db1f",uf="spectrum-Field--hasContextualHelp_d2db1f",cf="spectrum-Form_d2db1f",df="spectrum-Form--positionSide_d2db1f",pf="spectrum-Field-labelCell_d2db1f",ff="spectrum-Field-labelWrapper_d2db1f",mf="spectrum-Form--positionTop_d2db1f",hf="spectrum-LabeledValue_d2db1f",gf="spectrum-Form-itemLabel_d2db1f",yf="is-disabled_d2db1f";let bf=t(o).forwardRef((function(e,n){e=Vr(e);let{children:r,labelPosition:i="top",labelAlign:l=("side"===i?"start":null),isRequired:a,necessityIndicator:s=(null!=a?"icon":null),includeNecessityIndicatorInAccessibilityName:u=!1,htmlFor:c,for:d,elementType:p="label",onClick:f,...m}=e,h=Oe(n),{styleProps:g}=tt(m),y=Pe(Vp(Yp)),v=a?y.format("(required)"):y.format("(optional)"),b=t(o).createElement(Rp,{UNSAFE_className:Me(Vp(vf),"spectrum-FieldLabel-requiredIcon"),"aria-label":u?y.format("(required)"):void 0}),w=Me(Vp(vf),"spectrum-FieldLabel",{"spectrum-FieldLabel--positionSide":"side"===i,"spectrum-FieldLabel--alignEnd":"end"===l},g.className);return t(o).createElement(p,{...C(m),...g,onClick:f,ref:h,className:w,htmlFor:"label"===p?d||c:void 0},r,("label"===s||"icon"===s&&a)&&" ​","label"===s&&t(o).createElement("span",{"aria-hidden":u?void 0:a},v),"icon"===s&&a&&b)}));let wf=t(o).forwardRef((function(e,n){let r=kp(e),i=r!==e;e=r;let{label:l,labelPosition:a="top",labelAlign:s,isRequired:u,necessityIndicator:c,includeNecessityIndicatorInAccessibilityName:d,validationState:p,description:f,errorMessage:m,isDisabled:h,showErrorIcon:g,contextualHelp:y,children:v,labelProps:b,descriptionProps:E={},errorMessageProps:k={},elementType:S,wrapperClassName:P,wrapperProps:T={},..._}=e,{styleProps:C}=tt(_),I=!!f||m&&"invalid"===p,M=w(),L=Me(Vp(vf),"spectrum-Field",{"spectrum-Field--positionTop":"top"===a,"spectrum-Field--positionSide":"side"===a,"spectrum-Field--alignEnd":"end"===s,"spectrum-Field--hasContextualHelp":!!e.contextualHelp},C.className,P);v=t(o).cloneElement(v,x(v.props,{className:Me(Vp(vf),"spectrum-Field-field")}));let N=()=>t(o).createElement(Qp,{descriptionProps:E,errorMessageProps:k,description:f,errorMessage:m,validationState:p,isDisabled:h,showErrorIcon:g,gridArea:"helpText"}),R=t(o).createElement(t(o).Fragment,null,l&&t(o).createElement(bf,{...b,labelPosition:a,labelAlign:s,isRequired:u,necessityIndicator:c,includeNecessityIndicatorInAccessibilityName:d,elementType:S},l),l&&y&&t(o).createElement(ot,{slots:{actionButton:{UNSAFE_className:Me(Vp(vf),"spectrum-Field-contextualHelp"),id:M,"aria-labelledby":(null==b?void 0:b.id)?`${b.id} ${M}`:void 0}}},y));return i&&"side"===a&&l&&y&&(R=t(o).createElement("div",{className:Me(Vp(vf),"spectrum-Field-labelCell")},t(o).createElement("div",{className:Me(Vp(vf),"spectrum-Field-labelWrapper")},R))),t(o).createElement("div",{...C,...T,ref:n,className:L},R,"side"===a?t(o).createElement(as,{direction:"column",UNSAFE_className:Me(Vp(vf),"spectrum-Field-wrapper")},v,I&&N()):t(o).createElement(t(o).Fragment,null,v,I&&N()))}));function Ef(e={}){let[t,n]=s(e.value,e.defaultValue||[],e.onChange);return{value:t,setValue(t){e.isReadOnly||e.isDisabled||n(t)},isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isSelected:e=>t.includes(e),addValue(r){e.isReadOnly||e.isDisabled||t.includes(r)||n(t.concat(r))},removeValue(r){e.isReadOnly||e.isDisabled||t.includes(r)&&n(t.filter((e=>e!==r)))},toggleValue(r){e.isReadOnly||e.isDisabled||(t.includes(r)?n(t.filter((e=>e!==r))):n(t.concat(r)))},validationState:e.validationState}}function kf(e){return e&&e.__esModule?e.default:e}function Sf(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const xf=t(o).createContext(null);var Pf,Tf,_f,Cf,If,Mf,Lf,Nf,Rf,Of,Af,Ff,zf,Df={};Sf(Df,"spectrum-Checkbox",(()=>Pf),(e=>Pf=e)),Sf(Df,"spectrum-Checkbox-input",(()=>Tf),(e=>Tf=e)),Sf(Df,"focus-ring",(()=>_f),(e=>_f=e)),Sf(Df,"spectrum-Checkbox-box",(()=>Cf),(e=>Cf=e)),Sf(Df,"is-indeterminate",(()=>If),(e=>If=e)),Sf(Df,"spectrum-Checkbox-checkmark",(()=>Mf),(e=>Mf=e)),Sf(Df,"spectrum-Checkbox-partialCheckmark",(()=>Lf),(e=>Lf=e)),Sf(Df,"is-checked",(()=>Nf),(e=>Nf=e)),Sf(Df,"spectrum-Checkbox-label",(()=>Rf),(e=>Rf=e)),Sf(Df,"is-hovered",(()=>Of),(e=>Of=e)),Sf(Df,"spectrum-Checkbox--quiet",(()=>Af),(e=>Af=e)),Sf(Df,"is-invalid",(()=>Ff),(e=>Ff=e)),Sf(Df,"is-disabled",(()=>zf),(e=>zf=e)),Pf="spectrum-Checkbox_4870fc",Tf="spectrum-Checkbox-input_4870fc",_f="focus-ring_4870fc",Cf="spectrum-Checkbox-box_4870fc",If="is-indeterminate_4870fc",Mf="spectrum-Checkbox-checkmark_4870fc",Lf="spectrum-Checkbox-partialCheckmark_4870fc",Nf="is-checked_4870fc",Rf="spectrum-Checkbox-label_4870fc",Of="is-hovered_4870fc",Af="spectrum-Checkbox--quiet_4870fc",Ff="is-invalid_4870fc",zf="is-disabled_4870fc";let Kf=(0,o.forwardRef)((function(e,n){let r=e;e=Vr(e);let{isIndeterminate:i=!1,isEmphasized:l=!1,isDisabled:a=!1,autoFocus:s,children:u,validationState:c,...d}=e,{styleProps:p}=tt(d),{hoverProps:f,isHovered:m}=Jt({isDisabled:a}),h=(0,o.useRef)(null),g=Ae(n,h),y=(0,o.useContext)(xf),{inputProps:v}=y?Xd({...e,value:e.value,isRequired:r.isRequired,validationState:r.validationState},y,h):Wd(e,il(e),h),b=i?t(o).createElement(zd,{UNSAFE_className:Me(kf(Df),"spectrum-Checkbox-partialCheckmark")}):t(o).createElement(Ld,{UNSAFE_className:Me(kf(Df),"spectrum-Checkbox-checkmark")});if(y){for(let e of["isSelected","defaultSelected","isEmphasized"])null!=r[e]&&console.warn(`${e} is unsupported on individual elements within a . Please apply these props to the group instead.`);null==e.value&&console.warn("A element within a requires a `value` property.")}return t(o).createElement("label",{...p,...f,ref:g,className:Me(kf(Df),"spectrum-Checkbox",{"is-checked":v.checked,"is-indeterminate":i,"spectrum-Checkbox--quiet":!l,"is-invalid":"invalid"===c,"is-disabled":a,"is-hovered":m},p.className)},t(o).createElement(Cn,{focusRingClass:Me(kf(Df),"focus-ring"),autoFocus:s},t(o).createElement("input",{...v,ref:h,className:Me(kf(Df),"spectrum-Checkbox-input")})),t(o).createElement("span",{className:Me(kf(Df),"spectrum-Checkbox-box")},b),u&&t(o).createElement("span",{className:Me(kf(Df),"spectrum-Checkbox-label")},u))}));var Vf,Uf,Bf,jf={};Sf(jf,"spectrum-FieldGroup",(()=>Vf),(e=>Vf=e)),Sf(jf,"spectrum-FieldGroup-group",(()=>Uf),(e=>Uf=e)),Sf(jf,"spectrum-FieldGroup-group--horizontal",(()=>Bf),(e=>Bf=e)),Vf="spectrum-FieldGroup_41d350",Uf="spectrum-FieldGroup-group_41d350",Bf="spectrum-FieldGroup-group--horizontal_41d350";t(o).forwardRef((function(e,n){e=kp(e=Vr(e));let{isEmphasized:r,children:i,orientation:l="vertical",validationState:a}=e,s=Oe(n),u=Ef(e),{labelProps:c,groupProps:d,descriptionProps:p,errorMessageProps:f}=Yd(e,u);return t(o).createElement(wf,{...e,ref:s,wrapperClassName:Me(kf(jf),"spectrum-FieldGroup"),labelProps:c,descriptionProps:p,errorMessageProps:f,elementType:"span",includeNecessityIndicatorInAccessibilityName:!0},t(o).createElement("div",{...d,className:Me(kf(jf),"spectrum-FieldGroup-group",{"spectrum-FieldGroup-group--horizontal":"horizontal"===l})},t(o).createElement(zr,{isEmphasized:r,validationState:a},t(o).createElement(xf.Provider,{value:u},i))))}));var $f;$f=function(e){return Xf.default.createElement(Gi,e,Xf.default.createElement(Hf.ChevronLeftMedium,null))};var Hf={};Object.defineProperty(Hf,"__esModule",{value:!0}),Hf.ChevronLeftMedium=Qf;var Wf=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function qf(){return qf=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Qf(e){var t=e.scale,n=void 0===t?"M":t,r=Gf(e,["scale"]);return Wf.default.createElement("svg",qf({},r,r),"L"===n&&Wf.default.createElement("path",{d:"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z"}),"M"===n&&Wf.default.createElement("path",{d:"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z"}))}Qf.displayName="ChevronLeftMedium";var Yf,Xf=Br(l("acw62"));Yf=function(e){return rm.default.createElement(Gi,e,rm.default.createElement(Zf.ChevronRightMedium,null))};var Zf={};Object.defineProperty(Zf,"__esModule",{value:!0}),Zf.ChevronRightMedium=nm;var Jf=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function em(){return em=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function nm(e){var t=e.scale,n=void 0===t?"M":t,r=tm(e,["scale"]);return Jf.default.createElement("svg",em({},r,r),"L"===n&&Jf.default.createElement("path",{d:"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z"}),"M"===n&&Jf.default.createElement("path",{d:"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z"}))}nm.displayName="ChevronRightMedium";var rm=Br(l("acw62"));function im(){return im=Object.assign?Object.assign.bind():function(e){for(var t=1;tym),(e=>ym=e)),gm(yh,"react-spectrum-ListView-row",(()=>vm),(e=>vm=e)),gm(yh,"react-spectrum-ListView--emphasized",(()=>bm),(e=>bm=e)),gm(yh,"react-spectrum-ListView--dropTarget",(()=>wm),(e=>wm=e)),gm(yh,"react-spectrum-ListViewItem",(()=>Em),(e=>Em=e)),gm(yh,"is-selected",(()=>km),(e=>km=e)),gm(yh,"is-hovered",(()=>Sm),(e=>Sm=e)),gm(yh,"is-active",(()=>xm),(e=>xm=e)),gm(yh,"focus-ring",(()=>Pm),(e=>Pm=e)),gm(yh,"react-spectrum-ListViewItem--firstRow",(()=>Tm),(e=>Tm=e)),gm(yh,"react-spectrum-ListView--quiet",(()=>_m),(e=>_m=e)),gm(yh,"is-next-selected",(()=>Cm),(e=>Cm=e)),gm(yh,"react-spectrum-ListViewItem--isFlushBottom",(()=>Im),(e=>Im=e)),gm(yh,"react-spectrum-ListView--loadingMore",(()=>Mm),(e=>Mm=e)),gm(yh,"react-spectrum-ListViewItem--lastRow",(()=>Lm),(e=>Lm=e)),gm(yh,"react-spectrum-ListView--isVerticalScrollbarVisible",(()=>Nm),(e=>Nm=e)),gm(yh,"react-spectrum-ListView--isHorizontalScrollbarVisible",(()=>Rm),(e=>Rm=e)),gm(yh,"react-spectrum-ListView--wrap",(()=>Om),(e=>Om=e)),gm(yh,"react-spectrum-ListViewItem-content",(()=>Am),(e=>Am=e)),gm(yh,"react-spectrum-ListViewItem-description",(()=>Fm),(e=>Fm=e)),gm(yh,"round-tops",(()=>zm),(e=>zm=e)),gm(yh,"round-bottoms",(()=>Dm),(e=>Dm=e)),gm(yh,"is-focused",(()=>Km),(e=>Km=e)),gm(yh,"is-disabled",(()=>Vm),(e=>Vm=e)),gm(yh,"has-checkbox",(()=>Um),(e=>Um=e)),gm(yh,"react-spectrum-ListViewItem-grid",(()=>Bm),(e=>Bm=e)),gm(yh,"react-spectrum-ListViewItem-draghandle-container",(()=>jm),(e=>jm=e)),gm(yh,"react-spectrum-ListViewItem-draghandle-button",(()=>$m),(e=>$m=e)),gm(yh,"react-spectrum-ListViewItem-checkboxWrapper",(()=>Hm),(e=>Hm=e)),gm(yh,"react-spectrum-ListViewItem-checkbox",(()=>Wm),(e=>Wm=e)),gm(yh,"react-spectrum-ListViewItem-thumbnail",(()=>qm),(e=>qm=e)),gm(yh,"react-spectrum-ListView--hasDescription",(()=>Gm),(e=>Gm=e)),gm(yh,"react-spectrum-ListViewItem-actions",(()=>Qm),(e=>Qm=e)),gm(yh,"react-spectrum-ListViewItem-actionmenu",(()=>Ym),(e=>Ym=e)),gm(yh,"react-spectrum-ListViewItem-parentIndicator",(()=>Xm),(e=>Xm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview",(()=>Zm),(e=>Zm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--compact",(()=>Jm),(e=>Jm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--spacious",(()=>eh),(e=>eh=e)),gm(yh,"react-spectrum-ListViewItem-badge",(()=>th),(e=>th=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--multiple",(()=>nh),(e=>nh=e)),gm(yh,"react-spectrum-ListView--hasAnyChildren",(()=>rh),(e=>rh=e)),gm(yh,"react-spectrum-ListViewItem-parentIndicator--hasChildItems",(()=>ih),(e=>ih=e)),gm(yh,"react-spectrum-ListView--compact",(()=>lh),(e=>lh=e)),gm(yh,"react-spectrum-ListView--spacious",(()=>oh),(e=>oh=e)),gm(yh,"react-spectrum-ListView--draggable",(()=>ah),(e=>ah=e)),gm(yh,"react-spectrum-ListViewItem--dropTarget",(()=>sh),(e=>sh=e)),gm(yh,"react-spectrum-ListView-centeredWrapper",(()=>uh),(e=>uh=e)),gm(yh,"react-spectrum-ListView-centeredWrapper--loadingMore",(()=>ch),(e=>ch=e)),gm(yh,"react-spectrum-ListViewInsertionIndicator",(()=>dh),(e=>dh=e)),gm(yh,"react-spectrum-ListViewInsertionIndicator--dropTarget",(()=>ph),(e=>ph=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--enter",(()=>fh),(e=>fh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--enterActive",(()=>mh),(e=>mh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--exit",(()=>hh),(e=>hh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--exitActive",(()=>gh),(e=>gh=e)),ym="react-spectrum-ListView_dd5487",vm="react-spectrum-ListView-row_dd5487",bm="react-spectrum-ListView--emphasized_dd5487",wm="react-spectrum-ListView--dropTarget_dd5487",Em="react-spectrum-ListViewItem_dd5487",km="is-selected_dd5487",Sm="is-hovered_dd5487",xm="is-active_dd5487",Pm="focus-ring_dd5487",Tm="react-spectrum-ListViewItem--firstRow_dd5487",_m="react-spectrum-ListView--quiet_dd5487",Cm="is-next-selected_dd5487",Im="react-spectrum-ListViewItem--isFlushBottom_dd5487",Mm="react-spectrum-ListView--loadingMore_dd5487",Lm="react-spectrum-ListViewItem--lastRow_dd5487",Nm="react-spectrum-ListView--isVerticalScrollbarVisible_dd5487",Rm="react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487",Om="react-spectrum-ListView--wrap_dd5487",Am="react-spectrum-ListViewItem-content_dd5487",Fm="react-spectrum-ListViewItem-description_dd5487",zm="round-tops_dd5487",Dm="round-bottoms_dd5487",Km="is-focused_dd5487",Vm="is-disabled_dd5487",Um="has-checkbox_dd5487",Bm="react-spectrum-ListViewItem-grid_dd5487",jm="react-spectrum-ListViewItem-draghandle-container_dd5487",$m="react-spectrum-ListViewItem-draghandle-button_dd5487",Hm="react-spectrum-ListViewItem-checkboxWrapper_dd5487",Wm="react-spectrum-ListViewItem-checkbox_dd5487",qm="react-spectrum-ListViewItem-thumbnail_dd5487",Gm="react-spectrum-ListView--hasDescription_dd5487",Qm="react-spectrum-ListViewItem-actions_dd5487",Ym="react-spectrum-ListViewItem-actionmenu_dd5487",Xm="react-spectrum-ListViewItem-parentIndicator_dd5487",Zm="react-spectrum-ListViewItem-dragPreview_dd5487",Jm="react-spectrum-ListViewItem-dragPreview--compact_dd5487",eh="react-spectrum-ListViewItem-dragPreview--spacious_dd5487",th="react-spectrum-ListViewItem-badge_dd5487",nh="react-spectrum-ListViewItem-dragPreview--multiple_dd5487",rh="react-spectrum-ListView--hasAnyChildren_dd5487",ih="react-spectrum-ListViewItem-parentIndicator--hasChildItems_dd5487",lh="react-spectrum-ListView--compact_dd5487",oh="react-spectrum-ListView--spacious_dd5487",ah="react-spectrum-ListView--draggable_dd5487",sh="react-spectrum-ListViewItem--dropTarget_dd5487",uh="react-spectrum-ListView-centeredWrapper_dd5487",ch="react-spectrum-ListView-centeredWrapper--loadingMore_dd5487",dh="react-spectrum-ListViewInsertionIndicator_dd5487",ph="react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487",fh="react-spectrum-ListViewItem-checkbox--enter_dd5487",mh="react-spectrum-ListViewItem-checkbox--enterActive_dd5487",hh="react-spectrum-ListViewItem-checkbox--exit_dd5487",gh="react-spectrum-ListViewItem-checkbox--exitActive_dd5487";var bh;function wh(e){var n,r;let i,l,a,{item:s,isEmphasized:u}=e,{state:c,dragState:d,dropState:p,isListDraggable:f,isListDroppable:m,layout:h,dragAndDropHooks:g,loadingState:y}=(0,o.useContext)(Sh),{direction:v}=Se(),b=(0,o.useRef)(),{isFocusVisible:w,focusProps:E}=_n({within:!0}),{isFocusVisible:k,focusProps:S}=_n(),{rowProps:P,gridCellProps:T,isPressed:_,descriptionProps:C,isSelected:I,isDisabled:M,allowsSelection:L,hasAction:N}=Ic({node:s,isVirtualized:!0,shouldSelectOnPressUp:f},c,b),R=m&&!M,{hoverProps:O,isHovered:A}=Jt({isDisabled:!L&&!N}),{checkboxProps:F}=Lc({key:s.key},c),z=st(`.${hm(yh)["react-spectrum-ListViewItem-description"]}`,b);f&&(i=g.useDraggableItem({key:s.key,hasDragButton:!0},d),M&&(i=null));let D=(0,o.useRef)();if(m){let e={type:"item",key:s.key,dropPosition:"on"};l=p.isDropTarget(e),a=g.useDropIndicator({target:e},p,D)}let K=t(o).useRef(),{buttonProps:V}=Nn({...null==i?void 0:i.dragButtonProps,elementType:"div"},K),U="ltr"===v?t(o).createElement(Yf,{"aria-hidden":"true",UNSAFE_className:Me(hm(yh),"react-spectrum-ListViewItem-parentIndicator",{"react-spectrum-ListViewItem-parentIndicator--hasChildItems":s.props.hasChildItems,"is-disabled":!N})}):t(o).createElement($f,{"aria-hidden":"true",UNSAFE_className:Me(hm(yh),"react-spectrum-ListViewItem-parentIndicator",{"react-spectrum-ListViewItem-parentIndicator--hasChildItems":s.props.hasChildItems,"is-disabled":!N})}),B="none"!==c.selectionManager.selectionMode&&"toggle"===c.selectionManager.selectionBehavior,{visuallyHiddenProps:j}=An(),$=R?void 0:{"aria-hidden":void 0};const H=x(P,null==i?void 0:i.dragProps,$,O,E,S,(null==g?void 0:g.isVirtualDragging())&&{tabIndex:null});let W=null==s.prevKey,q=null==s.nextKey,G=!1;q&&"loadingMore"!==y&&(null===(n=h.getContentSize())||void 0===n?void 0:n.height)>=(null===(r=h.virtualizer)||void 0===r?void 0:r.getVisibleRect().height)&&(G=!0);let Q=!(c.selectionManager.isSelected(s.prevKey)||c.selectionManager.focusedKey===s.prevKey&&jt()&&c.selectionManager.isFocused),Y=!(c.selectionManager.isSelected(s.nextKey)||c.selectionManager.focusedKey===s.nextKey&&jt()&&c.selectionManager.isFocused),X="string"==typeof s.rendered?t(o).createElement(Ln,null,s.rendered):s.rendered;return M&&(X=t(o).createElement(zr,{isDisabled:!0},X)),t(o).createElement("div",{...H,className:Me(hm(yh),"react-spectrum-ListView-row",{"focus-ring":k,"round-tops":Q||A&&!I&&c.selectionManager.focusedKey!==s.key,"round-bottoms":Y||A&&!I&&c.selectionManager.focusedKey!==s.key}),ref:b},t(o).createElement("div",{className:Me(hm(yh),"react-spectrum-ListViewItem",{"is-active":_,"is-focused":w,"focus-ring":k,"is-hovered":A,"is-selected":I,"is-disabled":M,"is-prev-selected":c.selectionManager.isSelected(s.prevKey),"is-next-selected":c.selectionManager.isSelected(s.nextKey),"react-spectrum-ListViewItem--highlightSelection":"replace"===c.selectionManager.selectionBehavior&&(I||c.selectionManager.isSelected(s.nextKey)),"react-spectrum-ListViewItem--dropTarget":!!l,"react-spectrum-ListViewItem--firstRow":W,"react-spectrum-ListViewItem--lastRow":q,"react-spectrum-ListViewItem--isFlushBottom":G,"react-spectrum-ListViewItem--hasDescription":z}),...T},t(o).createElement(Ja,{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-grid"]},f&&t(o).createElement("div",{className:hm(yh)["react-spectrum-ListViewItem-draghandle-container"]},!M&&t(o).createElement(Cn,{focusRingClass:Me(hm(yh),"focus-ring")},t(o).createElement("div",{...V,className:Me(hm(yh),"react-spectrum-ListViewItem-draghandle-button"),style:w?{}:{...j.style},ref:K,draggable:"true"},t(o).createElement(um,null)))),m&&!(null==a?void 0:a.isHidden)&&t(o).createElement("div",{role:"button",...j,...null==a?void 0:a.dropIndicatorProps,ref:D}),t(o).createElement(cm,{in:B,unmountOnExit:!0,classNames:{enter:hm(yh)["react-spectrum-ListViewItem-checkbox--enter"],enterActive:hm(yh)["react-spectrum-ListViewItem-checkbox--enterActive"],exit:hm(yh)["react-spectrum-ListViewItem-checkbox--exit"],exitActive:hm(yh)["react-spectrum-ListViewItem-checkbox--exitActive"]},timeout:160},t(o).createElement("div",{className:hm(yh)["react-spectrum-ListViewItem-checkboxWrapper"]},t(o).createElement(Kf,{...F,UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-checkbox"],isEmphasized:u}))),t(o).createElement(ot,{slots:{text:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-content"]},description:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-description"],...C},illustration:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},image:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},actionButton:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0},actionGroup:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0,density:"compact"},actionMenu:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actionmenu"],isQuiet:!0}}},X,t(o).createElement(at,null,U)))))}function Eh(){let{dropState:e,dragAndDropHooks:n}=(0,o.useContext)(Sh),r=(0,o.useRef)(),{dropIndicatorProps:i}=n.useDropIndicator({target:{type:"root"}},e,r),l=e.isDropTarget({type:"root"}),{visuallyHiddenProps:a}=An();return!l&&i["aria-hidden"]?null:t(o).createElement("div",{role:"row","aria-hidden":i["aria-hidden"]},t(o).createElement("div",{role:"gridcell","aria-selected":"false"},t(o).createElement("div",{role:"button",...a,...i,ref:r})))}function kh(e){let{item:n,itemCount:r,itemHeight:i,density:l}=e,a=r>1;return t(o).createElement("div",{style:{height:i},className:Me(hm(yh),"react-spectrum-ListViewItem","react-spectrum-ListViewItem-dragPreview",{"react-spectrum-ListViewItem-dragPreview--multiple":a},`react-spectrum-ListViewItem-dragPreview--${l}`)},t(o).createElement(Ja,{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-grid"]},t(o).createElement(ot,{slots:{text:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-content"]},description:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-description"]},illustration:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},image:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},actionButton:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0},actionGroup:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0,density:"compact"},actionMenu:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actionmenu"],isQuiet:!0}}},"string"==typeof n.rendered?t(o).createElement(Ln,null,n.rendered):n.rendered,a&&t(o).createElement("div",{className:Me(hm(yh),"react-spectrum-ListViewItem-badge")},r))))}bh={"ar-AE":{loading:"جارٍ التحميل...",loadingMore:"جارٍ تحميل المزيد..."},"bg-BG":{loading:"Зареждане...",loadingMore:"Зареждане на още..."},"cs-CZ":{loading:"Načítání...",loadingMore:"Načítání dalších..."},"da-DK":{loading:"Indlæser...",loadingMore:"Indlæser flere..."},"de-DE":{loading:"Laden...",loadingMore:"Mehr laden ..."},"el-GR":{loading:"Φόρτωση...",loadingMore:"Φόρτωση περισσότερων..."},"en-US":{loading:"Loading…",loadingMore:"Loading more…"},"es-ES":{loading:"Cargando…",loadingMore:"Cargando más…"},"et-EE":{loading:"Laadimine...",loadingMore:"Laadi rohkem..."},"fi-FI":{loading:"Ladataan…",loadingMore:"Ladataan lisää…"},"fr-FR":{loading:"Chargement...",loadingMore:"Chargement supplémentaire..."},"he-IL":{loading:"טוען...",loadingMore:"טוען עוד..."},"hr-HR":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"hu-HU":{loading:"Betöltés folyamatban…",loadingMore:"Továbbiak betöltése folyamatban…"},"it-IT":{loading:"Caricamento...",loadingMore:"Caricamento altri..."},"ja-JP":{loading:"読み込み中...",loadingMore:"さらに読み込み中..."},"ko-KR":{loading:"로드 중…",loadingMore:"추가 로드 중…"},"lt-LT":{loading:"Įkeliama...",loadingMore:"Įkeliama daugiau..."},"lv-LV":{loading:"Notiek ielāde...",loadingMore:"Tiek ielādēts vēl..."},"nb-NO":{loading:"Laster inn ...",loadingMore:"Laster inn flere ..."},"nl-NL":{loading:"Laden...",loadingMore:"Meer laden..."},"pl-PL":{loading:"Ładowanie...",loadingMore:"Wczytywanie większej liczby..."},"pt-BR":{loading:"Carregando...",loadingMore:"Carregando mais..."},"pt-PT":{loading:"A carregar...",loadingMore:"A carregar mais..."},"ro-RO":{loading:"Se încarcă...",loadingMore:"Se încarcă mai multe..."},"ru-RU":{loading:"Загрузка...",loadingMore:"Дополнительная загрузка..."},"sk-SK":{loading:"Načítava sa...",loadingMore:"Načítava sa viac..."},"sl-SI":{loading:"Nalaganje ...",loadingMore:"Nalaganje več vsebine ..."},"sr-SP":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"sv-SE":{loading:"Läser in...",loadingMore:"Läser in mer..."},"tr-TR":{loading:"Yükleniyor...",loadingMore:"Daha fazla yükleniyor..."},"uk-UA":{loading:"Завантаження…",loadingMore:"Завантаження інших об’єктів..."},"zh-CN":{loading:"正在加载...",loadingMore:"正在加载更多..."},"zh-TW":{loading:"載入中…",loadingMore:"正在載入更多…"}};const Sh=t(o).createContext(null),xh={compact:{medium:32,large:40},regular:{medium:40,large:50},spacious:{medium:48,large:60}};function Ph({children:e}){let{state:n}=(0,o.useContext)(Sh);return t(o).createElement("div",{role:"row","aria-rowindex":n.collection.size+1,className:Me(hm(yh),"react-spectrum-ListView-centeredWrapper",{"react-spectrum-ListView-centeredWrapper--loadingMore":n.collection.size>0})},t(o).createElement("div",{role:"gridcell"},e))}const Th=t(o).forwardRef((function(e,n){var r;let{density:i="regular",loadingState:l,onLoadMore:a,isQuiet:s,overflowMode:u="truncate",onAction:c,dragAndDropHooks:d,...p}=e,f=!!(null==d?void 0:d.useDraggableCollectionState),m=!!(null==d?void 0:d.useDroppableCollectionState),h=(0,o.useRef)(f),g=(0,o.useRef)(m);h.current!==f&&console.warn("Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior."),g.current!==m&&console.warn("Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.");let v,b=Oe(n),w=Ac({...e,selectionBehavior:"highlight"===e.selectionStyle?"replace":"toggle"}),{collection:E,selectionManager:k}=w,S=Pe(hm(bh)),P="loading"===l||"loadingMore"===l,{styleProps:T}=tt(e),_=(0,o.useRef)(null);f&&(v=d.useDraggableCollectionState({collection:E,selectionManager:k,preview:_}),d.useDraggableCollection({},v,b));let I=function(e,t,n){let{scale:r}=Kr(),i=Ce({usage:"search",sensitivity:"base"}),l=0===e.collection.size,a=(0,o.useMemo)((()=>new Nc({estimatedRowHeight:xh[t][r],padding:0,collator:i,loaderHeight:l?null:xh[t][r]})),[i,r,t,l,n]);return a.collection=e.collection,a.disabledKeys=e.disabledKeys,a}(w,e.density||"regular",u);I.allowDisabledKeyFocus="selection"===w.selectionManager.disabledBehavior||!!(null==v?void 0:v.draggingKeys.size);let M,L,N,R=null==d?void 0:d.DragPreview;m&&(M=d.useDroppableCollectionState({collection:E,selectionManager:k}),L=d.useDroppableCollection({keyboardDelegate:I,dropTargetDelegate:I},M,b),N=M.isDropTarget({type:"root"}));let{gridProps:O}=Cc({...e,isVirtualized:!0,keyboardDelegate:I,onAction:c},w,b);I.isLoading=P;let A=k.focusedKey;"item"===(null==M||null===(r=M.target)||void 0===r?void 0:r.type)&&(A=M.target.key);let[F,z]=(0,o.useState)(!1),[D,K]=(0,o.useState)(!1);y((()=>{b.current&&(z(b.current.clientWidth+2[...E].some((e=>e.hasChildNodes))),[E]);return t(o).createElement(Sh.Provider,{value:{state:w,dragState:v,dropState:M,dragAndDropHooks:d,onAction:c,isListDraggable:f,isListDroppable:m,layout:I,loadingState:l}},t(o).createElement(dn,null,t(o).createElement(Cn,{focusRingClass:Me(hm(yh),"focus-ring")},t(o).createElement(Id,{...x(m&&(null==L?void 0:L.collectionProps),O),...C(p),...O,...T,isLoading:P,onLoadMore:a,ref:b,focusedKey:A,scrollDirection:"vertical",className:Me(hm(yh),"react-spectrum-ListView",`react-spectrum-ListView--${i}`,"react-spectrum-ListView--emphasized",{"react-spectrum-ListView--quiet":s,"react-spectrum-ListView--loadingMore":"loadingMore"===l,"react-spectrum-ListView--draggable":!!f,"react-spectrum-ListView--dropTarget":!!N,"react-spectrum-ListView--isVerticalScrollbarVisible":F,"react-spectrum-ListView--isHorizontalScrollbarVisible":D,"react-spectrum-ListView--hasAnyChildren":V,"react-spectrum-ListView--wrap":"wrap"===u},T.className),layout:I,collection:E,transitionDuration:P?160:220},((n,r)=>{if("item"===n)return t(o).createElement(t(o).Fragment,null,m&&null==E.getKeyBefore(r.key)&&t(o).createElement(Eh,{key:"root"}),m&&t(o).createElement(vh,{key:`${r.key}-before`,target:{key:r.key,type:"item",dropPosition:"before"}}),t(o).createElement(wh,{item:r,isEmphasized:!0,hasActions:!!c}),m&&t(o).createElement(vh,{key:`${r.key}-after`,target:{key:r.key,type:"item",dropPosition:"after"},isPresentationOnly:null!=E.getKeyAfter(r.key)}));if("loader"===n)return t(o).createElement(Ph,null,t(o).createElement(Ed,{isIndeterminate:!0,"aria-label":E.size>0?S.format("loadingMore"):S.format("loading")}));if("placeholder"===n){let n=e.renderEmptyState?e.renderEmptyState():null;return null==n?null:t(o).createElement(Ph,null,n)}})))),R&&f&&t(o).createElement(R,{ref:_},(()=>{let e=w.collection.getItem(v.draggedKey),n=v.draggingKeys.size,r=I.getLayoutInfo(v.draggedKey).rect.height;return t(o).createElement(kh,{item:e,itemCount:n,itemHeight:r,density:i})})))}));var _h;_h=function(e){return Rh.default.createElement(Gi,e,Rh.default.createElement(Ch.ChevronDownMedium,null))};var Ch={};Object.defineProperty(Ch,"__esModule",{value:!0}),Ch.ChevronDownMedium=Nh;var Ih=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Mh(){return Mh=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Nh(e){var t=e.scale,n=void 0===t?"M":t,r=Lh(e,["scale"]);return Ih.default.createElement("svg",Mh({},r,r),"L"===n&&Ih.default.createElement("path",{d:"M11.99 1.51a1 1 0 0 0-1.707-.707L6 5.086 1.717.803A1 1 0 1 0 .303 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a.997.997 0 0 0 .293-.707z"}),"M"===n&&Ih.default.createElement("path",{d:"M9.99 1.01A1 1 0 0 0 8.283.303L5 3.586 1.717.303A1 1 0 1 0 .303 1.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z"}))}Nh.displayName="ChevronDownMedium";var Rh=Br(l("acw62"));o=l("acw62");function Oh(e,t,n){let{keyboardDelegate:r,isDisabled:i}=e,l=Ce({usage:"search",sensitivity:"base"}),a=(0,o.useMemo)((()=>r||new pa(t.collection,t.disabledKeys,null,l)),[r,t.collection,t.disabledKeys,l]),{menuTriggerProps:s,menuProps:u}=_a({isDisabled:i,type:"listbox"},t,n),{typeSelectProps:c}=aa({keyboardDelegate:a,selectionManager:t.selectionManager,onTypeSelect(e){t.setSelectedKey(e)}}),{labelProps:d,fieldProps:p,descriptionProps:f,errorMessageProps:m}=Dc({...e,labelElementType:"span"});c.onKeyDown=c.onKeyDownCapture,delete c.onKeyDownCapture;let h=C(e,{labelable:!0}),g=x(c,s,p),y=w();return{labelProps:{...d,onClick:()=>{var t;e.isDisabled||(n.current.focus(),Mt=t="keyboard",Ft(t,null))}},triggerProps:x(h,{...g,isDisabled:i,onKeyDown:S(g.onKeyDown,(e=>{switch(e.key){case"ArrowLeft":{e.preventDefault();let n=null!=t.selectedKey?a.getKeyAbove(t.selectedKey):a.getFirstKey();n&&t.setSelectedKey(n);break}case"ArrowRight":{e.preventDefault();let n=null!=t.selectedKey?a.getKeyBelow(t.selectedKey):a.getFirstKey();n&&t.setSelectedKey(n);break}}}),e.onKeyDown),onKeyUp:e.onKeyUp,"aria-labelledby":[g["aria-labelledby"],g["aria-label"]&&!g["aria-labelledby"]?g.id:null,y].filter(Boolean).join(" "),onFocus(n){t.isFocused||(e.onFocus&&e.onFocus(n),e.onFocusChange&&e.onFocusChange(!0),t.setFocused(!0))},onBlur(n){t.isOpen||(e.onBlur&&e.onBlur(n),e.onFocusChange&&e.onFocusChange(!1),t.setFocused(!1))}}),valueProps:{id:y},menuProps:{...u,autoFocus:t.focusStrategy||!0,shouldSelectOnPressUp:!0,shouldFocusOnHover:!0,disallowEmptySelection:!0,onBlur:n=>{n.currentTarget.contains(n.relatedTarget)||(e.onBlur&&e.onBlur(n),e.onFocusChange&&e.onFocusChange(!1),t.setFocused(!1))},"aria-labelledby":[p["aria-labelledby"],g["aria-label"]&&!p["aria-labelledby"]?g.id:null].filter(Boolean).join(" ")},descriptionProps:f,errorMessageProps:m}}function Ah(e){let{state:n,triggerRef:r,label:i,name:l,isDisabled:a}=e,{containerProps:s,inputProps:u,selectProps:c}=function(e,t,n){let{autoComplete:r,name:i,isDisabled:l}=e,o=Ht(),{visuallyHiddenProps:a}=An();var s;return{containerProps:{...a,"aria-hidden":!0},inputProps:{type:"text",tabIndex:null==o||t.isFocused||t.isOpen?-1:0,style:{fontSize:16},onFocus:()=>n.current.focus(),disabled:l},selectProps:{tabIndex:-1,autoComplete:r,disabled:l,name:i,size:t.collection.size,value:null!==(s=t.selectedKey)&&void 0!==s?s:"",onChange:e=>t.setSelectedKey(e.target.value)}}}(e,n,r);return n.collection.size<=300?t(o).createElement("div",s,t(o).createElement("input",u),t(o).createElement("label",null,i,t(o).createElement("select",c,t(o).createElement("option",null),[...n.collection.getKeys()].map((e=>{let r=n.collection.getItem(e);if("item"===r.type)return t(o).createElement("option",{key:r.key,value:r.key},r.textValue)}))))):l?t(o).createElement("input",{type:"hidden",autoComplete:c.autoComplete,name:l,disabled:a,value:n.selectedKey}):null}o=l("acw62");const Fh=new WeakMap;function zh(e,t){let n=Fh.get(e);if(!n)throw new Error("Unknown list");return`${n.id}-option-${r=t,"string"==typeof r?r.replace(/\s*/g,""):""+r}`;var r}function Dh(e,t,n){let r=C(e,{labelable:!0}),{listProps:i}=fa({...e,ref:n,selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys}),{focusWithinProps:l}=qt({onFocusWithin:e.onFocus,onBlurWithin:e.onBlur,onFocusWithinChange:e.onFocusChange}),o=w(e.id);Fh.set(t,{id:o,shouldUseVirtualFocus:e.shouldUseVirtualFocus,shouldSelectOnPressUp:e.shouldSelectOnPressUp,shouldFocusOnHover:e.shouldFocusOnHover,isVirtualized:e.isVirtualized,onAction:e.onAction});let{labelProps:a,fieldProps:s}=zc({...e,id:o,labelElementType:"span"});return{labelProps:a,listBoxProps:x(r,l,"multiple"===t.selectionManager.selectionMode?{"aria-multiselectable":"true"}:{},{role:"listbox",...x(s,i)})}}function Kh(e,t,n){let{key:r}=e,i=Fh.get(t);var l;let o=null!==(l=e.isDisabled)&&void 0!==l?l:t.disabledKeys.has(r);var a;let s=null!==(a=e.isSelected)&&void 0!==a?a:t.selectionManager.isSelected(r),u=t.selectionManager.focusedKey===r;var c;let d=null!==(c=e.shouldSelectOnPressUp)&&void 0!==c?c:i.shouldSelectOnPressUp;var p;let f=null!==(p=e.shouldFocusOnHover)&&void 0!==p?p:i.shouldFocusOnHover;var m;let h=null!==(m=e.shouldUseVirtualFocus)&&void 0!==m?m:i.shouldUseVirtualFocus;var g;let y=null!==(g=e.isVirtualized)&&void 0!==g?g:i.isVirtualized,v=k(),b=k(),w={role:"option","aria-disabled":o,"aria-selected":"none"!==t.selectionManager.selectionMode?s:void 0};Y()&&Z()||(w["aria-label"]=e["aria-label"],w["aria-labelledby"]=v,w["aria-describedby"]=b),y&&(w["aria-posinset"]=t.collection.getItem(r).index+1,w["aria-setsize"]=xa(t.collection));let{itemProps:E,isPressed:S,hasAction:P,allowsSelection:T}=ua({selectionManager:t.selectionManager,key:r,ref:n,shouldSelectOnPressUp:d,allowsDifferentPressOrigin:d&&f,isVirtualized:y,shouldUseVirtualFocus:h,isDisabled:o,onAction:i.onAction?()=>i.onAction(r):void 0}),{hoverProps:_}=Jt({isDisabled:o||!f,onHoverStart(){jt()||(t.selectionManager.setFocused(!0),t.selectionManager.setFocusedKey(r))}});return{optionProps:{...w,...x(E,_),id:zh(t,r)},labelProps:{id:v},descriptionProps:{id:b},isFocused:u,isSelected:s,isDisabled:o,isPressed:S,allowsSelection:T,hasAction:P}}function Vh(e){let{heading:t,"aria-label":n}=e,r=w();return{itemProps:{role:"presentation"},headingProps:t?{id:r,"aria-hidden":!0}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":t?r:void 0}}}function Uh(e){return e&&e.__esModule?e.default:e}function Bh(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var jh;jh={"ar-AE":{loading:"جارٍ التحميل...",loadingMore:"جارٍ تحميل المزيد..."},"bg-BG":{loading:"Зареждане...",loadingMore:"Зареждане на още..."},"cs-CZ":{loading:"Načítání...",loadingMore:"Načítání dalších..."},"da-DK":{loading:"Indlæser ...",loadingMore:"Indlæser flere ..."},"de-DE":{loading:"Laden...",loadingMore:"Mehr laden ..."},"el-GR":{loading:"Φόρτωση...",loadingMore:"Φόρτωση περισσότερων..."},"en-US":{loading:"Loading…",loadingMore:"Loading more…"},"es-ES":{loading:"Cargando…",loadingMore:"Cargando más…"},"et-EE":{loading:"Laadimine...",loadingMore:"Laadi rohkem..."},"fi-FI":{loading:"Ladataan…",loadingMore:"Ladataan lisää…"},"fr-FR":{loading:"Chargement...",loadingMore:"Chargement supplémentaire..."},"he-IL":{loading:"טוען...",loadingMore:"טוען עוד..."},"hr-HR":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"hu-HU":{loading:"Betöltés folyamatban…",loadingMore:"Továbbiak betöltése folyamatban…"},"it-IT":{loading:"Caricamento...",loadingMore:"Caricamento altri..."},"ja-JP":{loading:"読み込み中...",loadingMore:"さらに読み込み中..."},"ko-KR":{loading:"로드 중",loadingMore:"추가 로드 중"},"lt-LT":{loading:"Įkeliama...",loadingMore:"Įkeliama daugiau..."},"lv-LV":{loading:"Notiek ielāde...",loadingMore:"Tiek ielādēts vēl..."},"nb-NO":{loading:"Laster inn ...",loadingMore:"Laster inn flere ..."},"nl-NL":{loading:"Laden...",loadingMore:"Meer laden..."},"pl-PL":{loading:"Ładowanie...",loadingMore:"Wczytywanie większej liczby..."},"pt-BR":{loading:"Carregando...",loadingMore:"Carregando mais..."},"pt-PT":{loading:"A carregar...",loadingMore:"A carregar mais..."},"ro-RO":{loading:"Se încarcă...",loadingMore:"Se încarcă mai multe..."},"ru-RU":{loading:"Загрузка...",loadingMore:"Дополнительная загрузка..."},"sk-SK":{loading:"Načítava sa...",loadingMore:"Načítava sa viac..."},"sl-SI":{loading:"Nalaganje...",loadingMore:"Nalaganje več vsebine..."},"sr-SP":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"sv-SE":{loading:"Läser in...",loadingMore:"Läser in mer..."},"tr-TR":{loading:"Yükleniyor...",loadingMore:"Daha fazla yükleniyor..."},"uk-UA":{loading:"Завантаження…",loadingMore:"Завантаження інших об’єктів..."},"zh-CN":{loading:"正在加载...",loadingMore:"正在加载更多..."},"zh-TW":{loading:"正在載入",loadingMore:"正在載入更多…"}};const $h=t(o).createContext(null);var Hh,Wh,qh,Gh,Qh,Yh,Xh,Zh,Jh,eg,tg,ng,rg,ig,lg,og,ag,sg,ug,cg,dg,pg,fg,mg,hg={};function gg(e){let{item:n,shouldSelectOnPressUp:r,shouldFocusOnHover:i,shouldUseVirtualFocus:l}=e,{rendered:a,key:s}=n,u=(0,o.useContext)($h),c=(0,o.useRef)(),{optionProps:d,labelProps:p,descriptionProps:f,isSelected:m,isDisabled:h,isFocused:g}=Kh({"aria-label":n["aria-label"],key:s,shouldSelectOnPressUp:r,shouldFocusOnHover:i,isVirtualized:!0,shouldUseVirtualFocus:l},u,c),{hoverProps:y,isHovered:v}=Jt({...e,isDisabled:h}),b="string"==typeof a?t(o).createElement(Ln,null,a):a,w=jt();return t(o).createElement(Cn,{focusRingClass:Me(Uh(hg),"focus-ring")},t(o).createElement("div",{...x(d,i?{}:y),ref:c,className:Me(Uh(hg),"spectrum-Menu-item",{"is-focused":l&&g&&w,"is-disabled":h,"is-selected":m,"is-selectable":"none"!==u.selectionManager.selectionMode,"is-hovered":v&&!i||g&&!w})},t(o).createElement(Ja,{UNSAFE_className:Me(Uh(hg),"spectrum-Menu-itemGrid")},t(o).createElement(at,null,t(o).createElement(ot,{slots:{text:{UNSAFE_className:Uh(hg)["spectrum-Menu-itemLabel"],...p},icon:{size:"S",UNSAFE_className:Uh(hg)["spectrum-Menu-icon"]},description:{UNSAFE_className:Uh(hg)["spectrum-Menu-description"],...f}}},b,m&&t(o).createElement(Ua,{slot:"checkmark",UNSAFE_className:Me(Uh(hg),"spectrum-Menu-checkmark")}))))))}function yg(e){let{children:n,reusableView:r,header:i}=e,l=r.content,{headingProps:a,groupProps:s}=Vh({heading:l.rendered,"aria-label":l["aria-label"]}),{separatorProps:u}=ss({elementType:"li"}),c=(0,o.useRef)();Pd({reusableView:i,ref:c});let{direction:d}=Se(),p=(0,o.useContext)($h);return t(o).createElement(o.Fragment,null,t(o).createElement("div",{role:"presentation",ref:c,style:Cd(i.layoutInfo,d)},l.key!==p.collection.getFirstKey()&&t(o).createElement("div",{...u,className:Me(Uh(hg),"spectrum-Menu-divider")}),l.rendered&&t(o).createElement("div",{...a,className:Me(Uh(hg),"spectrum-Menu-sectionHeading")},l.rendered)),t(o).createElement("div",{...s,style:Cd(r.layoutInfo,d),className:Me(Uh(hg),"spectrum-Menu")},n))}function vg(e){let{scale:t}=Kr(),n=Ce({usage:"search",sensitivity:"base"}),r=(0,o.useMemo)((()=>new Nc({estimatedRowHeight:"large"===t?48:32,estimatedHeadingHeight:"large"===t?33:26,padding:"large"===t?5:4,loaderHeight:40,placeholderHeight:"large"===t?48:32,collator:n})),[n,t]);return r.collection=e.collection,r.disabledKeys=e.disabledKeys,r}Bh(hg,"spectrum-Menu-popover",(()=>Hh),(e=>Hh=e)),Bh(hg,"spectrum-Menu",(()=>Wh),(e=>Wh=e)),Bh(hg,"spectrum-Menu-sectionHeading",(()=>qh),(e=>qh=e)),Bh(hg,"spectrum-Menu-checkmark",(()=>Gh),(e=>Gh=e)),Bh(hg,"spectrum-Menu-item",(()=>Qh),(e=>Qh=e)),Bh(hg,"is-selected",(()=>Yh),(e=>Yh=e)),Bh(hg,"spectrum-Icon",(()=>Xh),(e=>Xh=e)),Bh(hg,"spectrum-Menu-itemLabel",(()=>Zh),(e=>Zh=e)),Bh(hg,"spectrum-Menu-itemIcon",(()=>Jh),(e=>Jh=e)),Bh(hg,"spectrum-Menu-itemLabel--wrapping",(()=>eg),(e=>eg=e)),Bh(hg,"spectrum-Menu-divider",(()=>tg),(e=>tg=e)),Bh(hg,"spectrum-Menu-itemGrid",(()=>ng),(e=>ng=e)),Bh(hg,"is-selectable",(()=>rg),(e=>rg=e)),Bh(hg,"spectrum-Menu-end",(()=>ig),(e=>ig=e)),Bh(hg,"spectrum-Menu-icon",(()=>lg),(e=>lg=e)),Bh(hg,"spectrum-Menu-description",(()=>og),(e=>og=e)),Bh(hg,"spectrum-Menu-keyboard",(()=>ag),(e=>ag=e)),Bh(hg,"focus-ring",(()=>sg),(e=>sg=e)),Bh(hg,"is-focused",(()=>ug),(e=>ug=e)),Bh(hg,"is-hovered",(()=>cg),(e=>cg=e)),Bh(hg,"is-highlighted",(()=>dg),(e=>dg=e)),Bh(hg,"is-open",(()=>pg),(e=>pg=e)),Bh(hg,"is-active",(()=>fg),(e=>fg=e)),Bh(hg,"is-disabled",(()=>mg),(e=>mg=e)),Hh="spectrum-Menu-popover_7ea47c",Wh="spectrum-Menu_7ea47c",qh="spectrum-Menu-sectionHeading_7ea47c",Gh="spectrum-Menu-checkmark_7ea47c",Qh="spectrum-Menu-item_7ea47c",Yh="is-selected_7ea47c",Xh="spectrum-Icon_7ea47c",Zh="spectrum-Menu-itemLabel_7ea47c",Jh="spectrum-Menu-itemIcon_7ea47c",eg="spectrum-Menu-itemLabel--wrapping_7ea47c",tg="spectrum-Menu-divider_7ea47c",ng="spectrum-Menu-itemGrid_7ea47c",rg="is-selectable_7ea47c",ig="spectrum-Menu-end_7ea47c",lg="spectrum-Menu-icon_7ea47c",og="spectrum-Menu-description_7ea47c",ag="spectrum-Menu-keyboard_7ea47c",sg="focus-ring_7ea47c",ug="is-focused_7ea47c",cg="is-hovered_7ea47c",dg="is-highlighted_7ea47c",pg="is-open_7ea47c",fg="is-active_7ea47c",mg="is-disabled_7ea47c";const bg=t(o).forwardRef((function(e,n){let{layout:r,state:i,shouldSelectOnPressUp:l,focusOnPointerEnter:a,shouldUseVirtualFocus:s,domProps:u={},transitionDuration:c=0,onScroll:d}=e,{listBoxProps:p}=Dh({...e,keyboardDelegate:r,isVirtualized:!0},i,n),{styleProps:f}=tt(e),m=Pe(Uh(jh));return r.isLoading=e.isLoading,t(o).createElement($h.Provider,{value:i},t(o).createElement(dn,null,t(o).createElement(Id,{...f,...x(p,u),ref:n,focusedKey:i.selectionManager.focusedKey,sizeToFit:"height",scrollDirection:"vertical",className:Me(Uh(hg),"spectrum-Menu",f.className),layout:r,collection:i.collection,renderWrapper:(e,n,r,i)=>"section"===n.viewType?t(o).createElement(yg,{key:n.key,reusableView:n,header:r.find((e=>"header"===e.viewType))},i(r.filter((e=>"item"===e.viewType)))):t(o).createElement(Td,{key:n.key,reusableView:n,parent:e}),transitionDuration:c,isLoading:e.isLoading,onLoadMore:e.onLoadMore,shouldUseVirtualFocus:s,onScroll:d},((n,r)=>{if("item"===n)return t(o).createElement(gg,{item:r,shouldSelectOnPressUp:l,shouldFocusOnHover:a,shouldUseVirtualFocus:s});if("loader"===n)return t(o).createElement("div",{role:"option",style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},t(o).createElement(Ed,{isIndeterminate:!0,size:"S","aria-label":i.collection.size>0?m.format("loadingMore"):m.format("loading"),UNSAFE_className:Me(Uh(hg),"spectrum-Dropdown-progressCircle")}));if("placeholder"===n){let n=e.renderEmptyState?e.renderEmptyState():null;return null==n?null:t(o).createElement("div",{role:"option"},n)}}))))}));t(o).forwardRef((function(e,n){let r=Ac(e),i=vg(r),l=Oe(n);return t(o).createElement(bg,{...e,ref:l,state:r,layout:i})}));o=l("acw62"),o=l("acw62");function wg(e){let t=Ra(e),n=Fc({...e,onSelectionChange:n=>{null!=e.onSelectionChange&&e.onSelectionChange(n),t.close()}}),[r,i]=(0,o.useState)(!1);return{...n,...t,open(){0!==n.collection.size&&t.open()},toggle(e){0!==n.collection.size&&t.toggle(e)},isFocused:r,setFocused:i}}function Eg(e){return e&&e.__esModule?e.default:e}function kg(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Sg;Sg={"ar-AE":{loading:"جارٍ التحميل...",placeholder:"حدد خيارًا..."},"bg-BG":{loading:"Зареждане...",placeholder:"Изберете опция"},"cs-CZ":{loading:"Načítání...",placeholder:"Vyberte vhodnou možnost..."},"da-DK":{loading:"Indlæser ...",placeholder:"Vælg en mulighed ..."},"de-DE":{loading:"Laden...",placeholder:"Option auswählen..."},"el-GR":{loading:"Φόρτωση...",placeholder:"Επιλέξτε…"},"en-US":{placeholder:"Select an option…",loading:"Loading…"},"es-ES":{loading:"Cargando…",placeholder:"Selecciona una de estas opciones..."},"et-EE":{loading:"Laadimine...",placeholder:"Valige valikuline..."},"fi-FI":{loading:"Ladataan…",placeholder:"Valitse vaihtoehto..."},"fr-FR":{loading:"Chargement...",placeholder:"Sélectionnez une option..."},"he-IL":{loading:"טוען...",placeholder:"בחר אפשרות..."},"hr-HR":{loading:"Učitavam...",placeholder:"Odaberite opciju"},"hu-HU":{loading:"Betöltés folyamatban…",placeholder:"Válasszon egy opciót…"},"it-IT":{loading:"Caricamento...",placeholder:"Seleziona un’opzione..."},"ja-JP":{loading:"読み込み中...",placeholder:"オプションを選択..."},"ko-KR":{loading:"로드 중",placeholder:"선택 사항 선택"},"lt-LT":{loading:"Įkeliama...",placeholder:"Pasirinkite parinktį..."},"lv-LV":{loading:"Notiek ielāde...",placeholder:"Atlasiet opciju..."},"nb-NO":{loading:"Laster inn ...",placeholder:"Velg et alternativ..."},"nl-NL":{loading:"Laden...",placeholder:"Optie selecteren..."},"pl-PL":{loading:"Ładowanie...",placeholder:"Wybierz opcję..."},"pt-BR":{loading:"Carregando...",placeholder:"Selecione uma opção..."},"pt-PT":{loading:"A carregar...",placeholder:"Selecionar uma opção..."},"ro-RO":{loading:"Se încarcă...",placeholder:"Selectați o opțiune"},"ru-RU":{loading:"Загрузка...",placeholder:"Выбрать параметр..."},"sk-SK":{loading:"Načítava sa...",placeholder:"Vyberte možnosť..."},"sl-SI":{loading:"Nalaganje...",placeholder:"Izberite možnost"},"sr-SP":{loading:"Učitavam...",placeholder:"Izaberite opciju"},"sv-SE":{loading:"Läser in...",placeholder:"Välj ett alternativ..."},"tr-TR":{loading:"Yükleniyor...",placeholder:"Bir seçim yapın…"},"uk-UA":{loading:"Завантаження…",placeholder:"Виберіть опцію..."},"zh-CN":{loading:"正在加载...",placeholder:"选择一个选项..."},"zh-TW":{loading:"正在載入",placeholder:"選取一個選項"}};var xg,Pg,Tg,_g,Cg,Ig,Mg,Lg,Ng,Rg,Og,Ag,Fg,zg,Dg,Kg,Vg,Ug,Bg={};kg(Bg,"spectrum-Dropdown",(()=>xg),(e=>xg=e)),kg(Bg,"spectrum-Dropdown-chevron",(()=>Pg),(e=>Pg=e)),kg(Bg,"spectrum-Dropdown-trigger",(()=>Tg),(e=>Tg=e)),kg(Bg,"spectrum-Dropdown-label",(()=>_g),(e=>_g=e)),kg(Bg,"is-placeholder",(()=>Cg),(e=>Cg=e)),kg(Bg,"spectrum-Icon",(()=>Ig),(e=>Ig=e)),kg(Bg,"spectrum-Dropdown-invalidIcon",(()=>Mg),(e=>Mg=e)),kg(Bg,"spectrum-Dropdown-progressCircle",(()=>Lg),(e=>Lg=e)),kg(Bg,"spectrum-Dropdown--quiet",(()=>Ng),(e=>Ng=e)),kg(Bg,"spectrum-Dropdown-popover--quiet",(()=>Rg),(e=>Rg=e)),kg(Bg,"spectrum-Field",(()=>Og),(e=>Og=e)),kg(Bg,"spectrum-Dropdown-fieldWrapper--quiet",(()=>Ag),(e=>Ag=e)),kg(Bg,"spectrum-Dropdown-fieldWrapper--positionSide",(()=>Fg),(e=>Fg=e)),kg(Bg,"is-selected",(()=>zg),(e=>zg=e)),kg(Bg,"is-invalid",(()=>Dg),(e=>Dg=e)),kg(Bg,"is-disabled",(()=>Kg),(e=>Kg=e)),kg(Bg,"is-hovered",(()=>Vg),(e=>Vg=e)),kg(Bg,"focus-ring",(()=>Ug),(e=>Ug=e)),xg="spectrum-Dropdown_6d8ec0",Pg="spectrum-Dropdown-chevron_6d8ec0",Tg="spectrum-Dropdown-trigger_6d8ec0",_g="spectrum-Dropdown-label_6d8ec0",Cg="is-placeholder_6d8ec0",Ig="spectrum-Icon_6d8ec0",Mg="spectrum-Dropdown-invalidIcon_6d8ec0",Lg="spectrum-Dropdown-progressCircle_6d8ec0",Ng="spectrum-Dropdown--quiet_6d8ec0",Rg="spectrum-Dropdown-popover--quiet_6d8ec0",Og="spectrum-Field_6d8ec0",Ag="spectrum-Dropdown-fieldWrapper--quiet_6d8ec0",Fg="spectrum-Dropdown-fieldWrapper--positionSide_6d8ec0",zg="is-selected_6d8ec0",Dg="is-invalid_6d8ec0",Kg="is-disabled_6d8ec0",Vg="is-hovered_6d8ec0",Ug="focus-ring_6d8ec0";const jg=t(o).forwardRef((function(e,n){e=Vr(e=lt(e,"picker"));let r,i=Pe(Eg(Sg)),{autoComplete:l,isDisabled:a,direction:s="bottom",align:u="start",shouldFlip:c=!0,placeholder:d=i.format("placeholder"),validationState:p,isQuiet:f,label:m,labelPosition:h="top",menuWidth:g,name:v,autoFocus:b}=e,w=wg(e),E=Oe(n),k=(0,o.useRef)(),S=(0,o.useRef)(),P=Fe(S),T=(0,o.useRef)(),_=vg(w),{labelProps:C,triggerProps:I,valueProps:M,menuProps:L,descriptionProps:N,errorMessageProps:R}=Oh({...e,keyboardDelegate:_},w,P),O=ut(),{hoverProps:A,isHovered:F}=Jt({isDisabled:a}),z=e.isLoading&&0===w.collection.size,K=e.isLoading&&w.collection.size>0,V=t(o).createElement(bg,{...L,ref:T,disallowEmptySelection:!0,autoFocus:w.focusStrategy||!0,shouldSelectOnPressUp:!0,focusOnPointerEnter:!0,layout:_,state:w,width:O?"100%":void 0,UNSAFE_style:{maxHeight:"inherit"},isLoading:K,onLoadMore:e.onLoadMore}),[U,B]=(0,o.useState)(null),{scale:j}=Kr(),$=(0,o.useCallback)((()=>{if(!O&&P.current){let e=P.current.offsetWidth;B(e)}}),[P,B,O]);if(D({ref:P,onResize:$}),y($,[j,w.selectedKey,$]),O)r=t(o).createElement(ia,{state:w},V);else{let e=f?null:U,n={width:g?Ge(g):e,minWidth:f?`calc(${U}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))`:U};r=t(o).createElement(Bo,{UNSAFE_style:n,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-popover",{"spectrum-Dropdown-popover--quiet":f}),ref:k,placement:`${s} ${u}`,shouldFlip:c,hideArrow:!0,state:w,triggerRef:P,scrollRef:T},V)}let H=w.selectedItem?w.selectedItem.rendered:d;"string"==typeof H&&(H=t(o).createElement(Ln,null,H));let W=t(o).createElement("div",{className:Me(Eg(Bg),"spectrum-Dropdown",{"is-invalid":"invalid"===p&&!a,"is-disabled":a,"spectrum-Dropdown--quiet":f})},t(o).createElement(Ah,{autoComplete:l,isDisabled:a,state:w,triggerRef:P,label:m,name:v}),t(o).createElement(Tt,x(A,I),t(o).createElement(Dl,{ref:S,isActive:w.isOpen,isQuiet:f,isDisabled:a,validationState:p,autoFocus:b,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-trigger",{"is-hovered":F})},t(o).createElement(ot,{slots:{icon:{UNSAFE_className:Me(Eg(Bg),"spectrum-Icon"),size:"S"},text:{...M,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-label",{"is-placeholder":!w.selectedItem})},description:{isHidden:!0}}},H),z&&t(o).createElement(Ed,{isIndeterminate:!0,size:"S","aria-label":i.format("loading"),UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-progressCircle")}),"invalid"===p&&!z&&!a&&t(o).createElement(xp,{UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-invalidIcon")}),t(o).createElement(_h,{UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-chevron")}))),0===w.collection.size?null:r),q=m?Me(Eg(Bg),"spectrum-Field",{"spectrum-Dropdown-fieldWrapper--quiet":f,"spectrum-Dropdown-fieldWrapper--positionSide":"side"===h}):"";return t(o).createElement(wf,{...e,ref:E,wrapperClassName:q,labelProps:C,descriptionProps:N,errorMessageProps:R,showErrorIcon:!1,includeNecessityIndicatorInAccessibilityName:!0,elementType:"span"},W)}));const $g=(0,(o=l("acw62")).forwardRef)((function(e,n){e=lt(e);let{elementType:r="div",children:i,...l}=e,{styleProps:a}=tt(e,Be),s=Oe(n);return t(o).createElement(r,{...C(l),...a,ref:s},t(o).createElement(at,null,i))}));(0,o.forwardRef)((function(e,n){e=lt(e,"content");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("section",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));(0,o.forwardRef)((function(e,n){e=lt(e,"footer");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("footer",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));(0,o.forwardRef)((function(e,n){e=lt(e,"header");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("header",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));var Hg;Hg=function(e){return qg.default.createElement(Qi,e,qg.default.createElement("svg",{viewBox:"0 0 32 32",height:"32",width:"32"},qg.default.createElement("path",{fill:"var(--spectrum-global-color-gray-300)",d:"M3 29.5C1.6 29.5.5 28.4.5 27V5C.5 3.6 1.6 2.5 3 2.5h10.1c.5 0 1 .2 1.4.6l3.1 3.1c.2.2.4.3.7.3H29c1.4 0 2.5 1.1 2.5 2.5v18c0 1.4-1.1 2.5-2.5 2.5H3z"}),qg.default.createElement("path",{fill:"var(--spectrum-global-color-gray-500)",d:"M29 6H18.3c-.1 0-.2 0-.4-.2l-3.1-3.1c-.4-.4-1-.7-1.7-.7H3C1.3 2 0 3.3 0 5v22c0 1.6 1.3 3 3 3h26c1.7 0 3-1.4 3-3V9c0-1.7-1.3-3-3-3zm2 21c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V7h28c1.1 0 2 .9 2 2v18z"})))};var Wg,qg=Br(l("acw62"));Wg=function(e){return Xg.default.createElement(qi,e,Xg.default.createElement(Gg.A4uCopy,null))};var Gg={};Object.defineProperty(Gg,"__esModule",{value:!0}),Gg.A4uCopy=function(e){var t=Yg({},e);return Qg.default.createElement("svg",Yg({viewBox:"0 0 36 36"},t,t),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"18"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"14"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"10"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"6"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"28",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"24",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"20",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"16",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"6"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"10"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"14"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"18"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"16",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"20",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"24",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"28",y:"22"}),Qg.default.createElement("path",{fillRule:"evenodd",d:"M10,12H3a1,1,0,0,0-1,1V33a1,1,0,0,0,1,1H23a1,1,0,0,0,1-1V26H11a1,1,0,0,1-1-1Z"}))};var Qg=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Yg(){return Yg=Object.assign||function(e){for(var t=1;t{const{blocks:n,getPath:r,getItems:i,rootCategoryKey:l}=e,[a,s]=(0,o.useState)({items:{},folder:l,path:[],loadingState:"loading",block:null,disabledKeys:new Set,selectedItems:new Set}),u=e=>{s((t=>({...t,items:{},folder:e,loadingState:"loading"})))},c=e=>{if(!a.block)return;let t=null;t=e instanceof Set?[...e].map((e=>a.items[e])):a.items[e];const r=n[a.block].output(t);navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([r],{type:"text/plain"}),"text/html":new Blob([r],{type:"text/html"})})])},d=(e,t)=>{const n=new Set;return"item"===e.type&&"multiple"===e.selection?Object.values(t).filter((e=>e.isFolder)).forEach((e=>n.add(e.uid))):"folder"===e.type&&"multiple"===e.selection&&Object.values(t).filter((e=>!e.isFolder)).forEach((e=>n.add(e.sku))),n};(0,o.useEffect)((()=>{(async()=>{let e=await i(a.folder),t=await r(a.folder,l);s((r=>{const i=r.block?n[r.block]:{},l=d(i,e);return{...r,items:e,path:t,disabledKeys:l,loadingState:"idle"}}))})()}),[a.folder]);const p=n[a.block]||{};return t(o).createElement(zr,{theme:$u,height:"100%"},t(o).createElement(as,{direction:"column",height:"100%"},t(o).createElement($g,{padding:"size-100"},t(o).createElement(as,{direction:"row",gap:"size-100"},t(o).createElement(jg,{width:"100%",items:Object.values(n),"aria-label":"Select a block",placeholder:"Select a block",selectedKey:a.block,onSelectionChange:e=>{s((t=>{const r=n[e],i=d(r,t.items);return{...t,items:structuredClone(t.items),block:e,disabledKeys:i,selectedItems:new Set}}))}},(e=>t(o).createElement(ga,{key:e.key},e.name))),"multiple"===p.selection&&t(o).createElement(zl,{isDisabled:0===a.selectedItems.size,"aria-label":"Copy",onPress:()=>c(a.selectedItems)},t(o).createElement(Wg,null)))),t(o).createElement(Pu,{onAction:u},a.path.map((e=>t(o).createElement(ga,{key:e.key},e.name)))),t(o).createElement(Th,{"aria-label":"List of Items",items:Object.values(a.items),loadingState:a.loadingState,width:"100%",height:"100%",density:"spacious",selectionMode:"multiple"===p.selection?"multiple":"none",onAction:e=>{a.items[e].isFolder&&u(e)},selectedKeys:a.selectedItems,onSelectionChange:e=>{s((t=>({...t,selectedItems:e})))},disabledKeys:a.disabledKeys},(e=>e.isFolder?t(o).createElement(ga,{key:e.key,textValue:e.name,hasChildItems:!0},t(o).createElement(Hg,null),t(o).createElement(Ln,null,e.name),e.childCount>0&&t(o).createElement(Ln,{slot:"description"},e.childCount," items"),"single"===p.selection&&("any"===p.type||"folder"===p.type)&&t(o).createElement(zl,{"aria-label":"Copy",onPress:()=>c(e.key)},t(o).createElement(Wg,null))):t(o).createElement(ga,{key:e.key,textValue:e.name},e.thumbnail&&t(o).createElement(Zu,{src:e.thumbnail.url,alt:e.thumbnail.label}),t(o).createElement(Ln,null,e.name),"single"===p.selection&&("any"===p.type||"item"===p.type)&&t(o).createElement(zl,{"aria-label":"Copy",onPress:()=>c(e.key)},t(o).createElement(Wg,null)))))))};var Jg="query getCategory($uid: String!) {\n categories(filters: { category_uid: { eq: $uid } }) {\n items {\n name\n uid\n id\n breadcrumbs {\n category_name\n category_uid\n }\n }\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");var ey="query getCategoriesInCategory($uid: String!) {\n categories(\n filters: { parent_category_uid: { eq: $uid } }\n pageSize: 20\n currentPage: 1\n ) {\n items {\n uid\n id\n name\n product_count\n children_count\n __typename\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");var ty="query getProductsInCategory($uid: String!) {\n products(\n filter: { category_uid: { eq: $uid } }\n pageSize: 20\n currentPage: 1\n ) {\n items {\n name\n sku\n thumbnail {\n url\n label\n }\n ... on ConfigurableProduct {\n variants {\n product {\n thumbnail {\n url\n label\n }\n }\n }\n }\n url_key\n __typename\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");const ny="https://franklin.maidenform.com/graphql",ry="maidenform_store_view",iy=async(e,t,n,r)=>{const i=new URL(e);return i.searchParams.append("query",n),i.searchParams.append("variables",JSON.stringify(r)),await fetch(i,{method:"GET",headers:{"Content-Type":"application/json",Store:t}}).then((e=>e.json()))},ly=document.getElementById("app");ly&&a.render(t(o).createElement(Zg,{blocks:{identifier:{key:"identifier",name:"Identifier only",output:e=>e.isFolder?e.id:e.url_key,selection:"single",type:"any"},"product-list-page":{key:"product-list-page",name:"Product List Page",output:e=>`\n \n \n \n \n \n \n \n
    Product List Page
    category${e.id}
    `,selection:"single",type:"folder"}},getPath:async(e,t)=>{const n=[{key:t,name:"Root Category"}];if(e===t)return n;let r;try{r=await iy(ny,ry,Jg,{uid:e})}catch(e){return console.error("Could not retrieve current category",e),[]}const i=r.data?.categories?.items?.[0];return(i?.breadcrumbs||[]).forEach((e=>{n.push({key:e.category_uid,name:e.category_name})})),n.push({key:i.uid,name:i.name}),n},getItems:async e=>{let t={};try{(await iy(ny,ry,ey,{uid:e}))?.data?.categories?.items.forEach((e=>{t[e.uid]={...e,isFolder:!0,key:e.uid,childCount:parseInt(e.children_count)+parseInt(e.product_count)}}))}catch(e){console.error("Could not retrieve categories",e)}try{(await iy(ny,ry,ty,{uid:e}))?.data?.products?.items.forEach((e=>{let n;try{n="ConfigurableProduct"===e.__typename?e?.variants?.[0].product.thumbnail:e.thumbnail;const t=new URL(n.url);t.searchParams.set("width",40),t.searchParams.set("height",40),n.url=t.toString()}catch{}t[e.sku]={...e,thumbnail:n,isFolder:!1,key:e.sku}}))}catch(e){console.error("Could not retrieve products",e)}return t},rootCategoryKey:"MTI4OQ=="}),ly); +var r,i,l,o,a,s,u,c,d,p,f,m,h,g,y,v,b,w,E,k,S,x,P,T;if(e(t.exports,"unstable_now",(()=>r),(e=>r=e)),e(t.exports,"unstable_forceFrameRate",(()=>i),(e=>i=e)),e(t.exports,"unstable_IdlePriority",(()=>l),(e=>l=e)),e(t.exports,"unstable_ImmediatePriority",(()=>o),(e=>o=e)),e(t.exports,"unstable_LowPriority",(()=>a),(e=>a=e)),e(t.exports,"unstable_NormalPriority",(()=>s),(e=>s=e)),e(t.exports,"unstable_Profiling",(()=>u),(e=>u=e)),e(t.exports,"unstable_UserBlockingPriority",(()=>c),(e=>c=e)),e(t.exports,"unstable_cancelCallback",(()=>d),(e=>d=e)),e(t.exports,"unstable_continueExecution",(()=>p),(e=>p=e)),e(t.exports,"unstable_getCurrentPriorityLevel",(()=>f),(e=>f=e)),e(t.exports,"unstable_getFirstCallbackNode",(()=>m),(e=>m=e)),e(t.exports,"unstable_next",(()=>h),(e=>h=e)),e(t.exports,"unstable_pauseExecution",(()=>g),(e=>g=e)),e(t.exports,"unstable_requestPaint",(()=>y),(e=>y=e)),e(t.exports,"unstable_runWithPriority",(()=>v),(e=>v=e)),e(t.exports,"unstable_scheduleCallback",(()=>b),(e=>b=e)),e(t.exports,"unstable_shouldYield",(()=>w),(e=>w=e)),e(t.exports,"unstable_wrapCallback",(()=>E),(e=>E=e)),"undefined"==typeof window||"function"!=typeof MessageChannel){var _=null,C=null,I=function(){if(null!==_)try{var e=r();_(!0,e),_=null}catch(e){throw setTimeout(I,0),e}},M=Date.now();r=function(){return Date.now()-M},k=function(e){null!==_?setTimeout(k,0,e):(_=e,setTimeout(I,0))},S=function(e,t){C=setTimeout(e,t)},x=function(){clearTimeout(C)},P=function(){return!1},T=i=function(){}}else{var L=window.performance,N=window.Date,R=window.setTimeout,O=window.clearTimeout;if("undefined"!=typeof console){var A=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof A&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof L&&"function"==typeof L.now)r=function(){return L.now()};else{var F=N.now();r=function(){return N.now()-F}}var z=!1,D=null,K=-1,V=5,U=0;P=function(){return r()>=U},T=function(){},i=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0q(o,n))void 0!==s&&0>q(s,o)?(e[r]=s,e[a]=n,r=a):(e[r]=o,e[l]=n,r=l);else{if(!(void 0!==s&&0>q(s,n)))break e;e[r]=s,e[a]=n,r=a}}}return t}return null}function q(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var G=[],Q=[],Y=1,X=null,Z=3,J=!1,ee=!1,te=!1;function ne(e){for(var t=H(Q);null!==t;){if(null===t.callback)W(Q);else{if(!(t.startTime<=e))break;W(Q),t.sortIndex=t.expirationTime,$(G,t)}t=H(Q)}}function re(e){if(te=!1,ne(e),!ee)if(null!==H(G))ee=!0,k(ie);else{var t=H(Q);null!==t&&S(re,t.startTime-e)}}function ie(e,t){ee=!1,te&&(te=!1,x()),J=!0;var n=Z;try{for(ne(t),X=H(G);null!==X&&(!(X.expirationTime>t)||e&&!P());){var i=X.callback;if(null!==i){X.callback=null,Z=X.priorityLevel;var l=i(X.expirationTime<=t);t=r(),"function"==typeof l?X.callback=l:X===H(G)&&W(G),ne(t)}else W(G);X=H(G)}if(null!==X)var o=!0;else{var a=H(Q);null!==a&&S(re,a.startTime-t),o=!1}return o}finally{X=null,Z=n,J=!1}}function le(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}l=5,o=1,a=4,s=3,u=null,c=2,d=function(e){e.callback=null},p=function(){ee||J||(ee=!0,k(ie))},f=function(){return Z},m=function(){return H(G)},h=function(e){switch(Z){case 1:case 2:case 3:var t=3;break;default:t=Z}var n=Z;Z=t;try{return e()}finally{Z=n}},g=function(){},y=T,v=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Z;Z=e;try{return t()}finally{Z=n}},b=function(e,t,n){var i=r();if("object"==typeof n&&null!==n){var l=n.delay;l="number"==typeof l&&0i?(e.sortIndex=l,$(Q,e),null===H(G)&&e===H(Q)&&(te?x():te=!0,S(re,l-i))):(e.sortIndex=n,$(G,e),ee||J||(ee=!0,k(ie))),e},w=function(){var e=r();ne(e);var t=H(G);return t!==X&&null!==X&&null!==t&&null!==t.callback&&t.startTime<=e&&t.expirationTime{let r=(e,...t)=>{n&&(Object.is(u.current,e)||n(e,...t)),s||(u.current=e)};if("function"==typeof e){console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i(((n,...i)=>{let l=e(s?u.current:n,...i);return r(l,...t),s?n:l}))}else s||i(e),r(e,...t)}),[s,n]);return s?u.current=e:e=r,[e,c]}function u(e,t=-1/0,n=1/0){return Math.min(Math.max(e,t),n)}o=l("acw62"),o=l("acw62");const c={prefix:String(Math.round(1e10*Math.random())),current:0},d=t(o).createContext(c);let p=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement);function f(e){let t=(0,o.useContext)(d);return t!==c||p||console.warn("When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server."),(0,o.useMemo)((()=>e||`react-aria${t.prefix}-${++t.current}`),[e])}function m(){let e=(0,o.useContext)(d)!==c,[t,n]=(0,o.useState)(e);return"undefined"!=typeof window&&e&&(0,o.useLayoutEffect)((()=>{n(!1)}),[]),t}function h(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{};function v(e){let[t,n]=(0,o.useState)(e),r=(0,o.useRef)(t),i=(0,o.useRef)(null);r.current=t;let l=(0,o.useRef)(null);l.current=()=>{let e=i.current.next();e.done?i.current=null:t===e.value?l.current():n(e.value)},y((()=>{i.current&&l.current()}));let a=(0,o.useCallback)((e=>{i.current=e(r.current),l.current()}),[i,l]);return[t,a]}let b=new Map;function w(e){let[t,n]=(0,o.useState)(e),r=(0,o.useRef)(null),i=f(t),l=(0,o.useCallback)((e=>{r.current=e}),[]);return b.set(i,l),y((()=>{let e=i;return()=>{b.delete(e)}}),[i]),(0,o.useEffect)((()=>{let e=r.current;e&&(r.current=null,n(e))})),i}function E(e,t){if(e===t)return e;let n=b.get(e);if(n)return n(t),t;let r=b.get(t);return r?(r(e),e):t}function k(e=[]){let t=w(),[n,r]=v(t),i=(0,o.useCallback)((()=>{r((function*(){yield t,yield document.getElementById(t)?t:void 0}))}),[t,r]);return y(i,[t,i,...e]),n}function S(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}function x(...e){let t={...e[0]};for(let n=1;n=65&&e.charCodeAt(2)<=90?t[e]=S(n,i):"className"!==e&&"UNSAFE_className"!==e||"string"!=typeof n||"string"!=typeof i?"id"===e&&n&&i?t.id=E(n,i):t[e]=void 0!==i?i:n:t[e]=g(n,i)}}return t}const P=new Set(["id"]),T=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),_=/^(data-.*)$/;function C(e,t={}){let{labelable:n,propNames:r}=t,i={};for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(P.has(t)||n&&T.has(t)||(null==r?void 0:r.has(t))||_.test(t))&&(i[t]=e[t]);return i}function I(e){if(function(){if(null==M){M=!1;try{document.createElement("div").focus({get preventScroll(){return M=!0,!0}})}catch(e){}}return M}())e.focus({preventScroll:!0});else{let t=function(e){var t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight{let n=L.get(t.target);if(n&&(n.delete(t.propertyName),0===n.size&&(t.target.removeEventListener("transitioncancel",e),L.delete(t.target)),0===L.size)){for(let e of N)e();N.clear()}};document.body.addEventListener("transitionrun",(t=>{let n=L.get(t.target);n||(n=new Set,L.set(t.target,n),t.target.addEventListener("transitioncancel",e)),n.add(t.propertyName)})),document.body.addEventListener("transitionend",e)}function O(e){requestAnimationFrame((()=>{0===L.size?e():N.add(e)}))}"undefined"!=typeof document&&("loading"!==document.readyState?R():document.addEventListener("DOMContentLoaded",R));function A(){let e=(0,o.useRef)(new Map),t=(0,o.useCallback)(((t,n,r,i)=>{let l=(null==i?void 0:i.once)?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,fn:l,options:i}),t.addEventListener(n,r,i)}),[]),n=(0,o.useCallback)(((t,n,r,i)=>{var l;let o=(null===(l=e.current.get(r))||void 0===l?void 0:l.fn)||r;t.removeEventListener(n,o,i),e.current.delete(r)}),[]),r=(0,o.useCallback)((()=>{e.current.forEach(((e,t)=>{n(e.eventTarget,e.type,t,e.options)}))}),[n]);return(0,o.useEffect)((()=>r),[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function F(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;if(n=w(n),i&&r){let e=new Set([...i.trim().split(/\s+/),n]);i=[...e].join(" ")}else i&&(i=i.trim().split(/\s+/).join(" "));return r||i||!t||(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function z(e,t){const n=(0,o.useRef)(!0);(0,o.useEffect)((()=>{n.current?n.current=!1:e()}),t)}function D(e){const{ref:t,onResize:n}=e;(0,o.useEffect)((()=>{let e=null==t?void 0:t.current;if(e){if(void 0===window.ResizeObserver)return window.addEventListener("resize",n,!1),()=>{window.removeEventListener("resize",n,!1)};{const t=new window.ResizeObserver((e=>{e.length&&n()}));return t.observe(e),()=>{e&&t.unobserve(e)}}}}),[n,t])}function K(e,t){y((()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref.current=null}}),[e,t])}function V(e){for(;e&&!U(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}function U(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}let B="undefined"!=typeof window&&window.visualViewport;function j(){let[e,t]=(0,o.useState)((()=>$()));return(0,o.useEffect)((()=>{let e=()=>{t((e=>{let t=$();return t.width===e.width&&t.height===e.height?e:t}))};return B?B.addEventListener("resize",e):window.addEventListener("resize",e),()=>{B?B.removeEventListener("resize",e):window.removeEventListener("resize",e)}}),[]),e}function $(){return{width:(null==B?void 0:B.width)||window.innerWidth,height:(null==B?void 0:B.height)||window.innerHeight}}let H=0;const W=new Map;function q(e){let[t,n]=(0,o.useState)(void 0);return y((()=>{if(!e)return;let t=W.get(e);if(t)n(t.element.id);else{let r="react-aria-description-"+H++;n(r);let i=document.createElement("div");i.id=r,i.style.display="none",i.textContent=e,document.body.appendChild(i),t={refCount:0,element:i},W.set(e,t)}return t.refCount++,()=>{0==--t.refCount&&(t.element.remove(),W.delete(e))}}),[e]),{"aria-describedby":e?t:void 0}}function G(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.brands.some((t=>e.test(t.brand))))||e.test(window.navigator.userAgent))}function Q(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function Y(){return Q(/^Mac/i)}function X(){return Q(/^iPhone/i)||Q(/^iPad/i)||Y()&&navigator.maxTouchPoints>1}function Z(){return G(/AppleWebKit/i)&&!G(/Chrome/i)}function J(e,t,n,r){let i=(0,o.useRef)(n);i.current=n;let l=null==n;(0,o.useEffect)((()=>{if(l)return;let n=e.current,o=e=>i.current.call(this,e);return n.addEventListener(t,o,r),()=>{n.removeEventListener(t,o,r)}}),[e,t,r,l])}function ee(e,t){let n=te(e,t,"left"),r=te(e,t,"top"),i=t.offsetWidth,l=t.offsetHeight,o=e.scrollLeft,a=e.scrollTop,s=o+e.offsetWidth,u=a+e.offsetHeight;n<=o?o=n:n+i>s&&(o+=n+i-s),r<=a?a=r:r+l>u&&(a+=r+l-u),e.scrollLeft=o,e.scrollTop=a}function te(e,t,n){const r="left"===n?"offsetLeft":"offsetTop";let i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);){if(t.offsetParent.contains(e)){i-=e[r];break}t=t.offsetParent}return i}function ne(e){return!(0!==e.mozInputSource||!e.isTrusted)||(G(/Android/i)&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}o=l("acw62"),o=l("acw62");class re{getStringForLocale(e,t){let n=this.strings[t];n||(n=function(e,t,n="en-US"){if(t[e])return t[e];let r=function(e){return Intl.Locale?new Intl.Locale(e).language:e.split("-")[0]}(e);if(t[r])return t[r];for(let e in t)if(e.startsWith(r+"-"))return t[e];return t[n]}(t,this.strings,this.defaultLocale),this.strings[t]=n);let r=n[e];if(!r)throw new Error(`Could not find intl message ${e} in ${t} locale`);return r}constructor(e,t="en-US"){this.strings={...e},this.defaultLocale=t}}const ie=new Map,le=new Map;class oe{format(e,t){let n=this.strings.getStringForLocale(e,this.locale);return"function"==typeof n?n(t,this):n}plural(e,t,n="cardinal"){let r=t["="+e];if(r)return"function"==typeof r?r():r;let i=this.locale+":"+n,l=ie.get(i);return l||(l=new Intl.PluralRules(this.locale,{type:n}),ie.set(i,l)),r=t[l.select(e)]||t.other,"function"==typeof r?r():r}number(e){let t=le.get(this.locale);return t||(t=new Intl.NumberFormat(this.locale),le.set(this.locale,t)),t.format(e)}select(e,t){let n=e[t]||e.other;return"function"==typeof n?n():n}constructor(e,t){this.locale=e,this.strings=t}}function ae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}new Map;new Map;new Map;let se=new Map,ue=!1;try{ue="exceptZero"===new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay}catch(Wu){}let ce=!1;try{ce="unit"===new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style}catch(e){}const de={degree:{narrow:{default:"°","ja-JP":" 度","zh-TW":"度","sl-SI":" °"}}};class pe{format(e){let t="";if(t=ue||null==this.options.signDisplay?this.numberFormatter.format(e):function(e,t,n){if("auto"===t)return e.format(n);if("never"===t)return e.format(Math.abs(n));{let r=!1;if("always"===t?r=n>0||Object.is(n,0):"exceptZero"===t&&(Object.is(n,-0)||Object.is(n,0)?n=Math.abs(n):r=n>0),r){let t=e.format(-n),r=e.format(n),i=t.replace(r,"").replace(/\u200e|\u061C/,"");return 1!==[...i].length&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),t.replace(r,"!!!").replace(i,"+").replace("!!!",r)}return e.format(n)}}(this.numberFormatter,this.options.signDisplay,e),"unit"===this.options.style&&!ce){var n;let{unit:e,unitDisplay:r="short",locale:i}=this.resolvedOptions(),l=null===(n=de[e])||void 0===n?void 0:n[r];t+=l[i]||l.default}return t}formatToParts(e){return this.numberFormatter.formatToParts(e)}formatRange(e,t){if("function"==typeof this.numberFormatter.formatRange)return this.numberFormatter.formatRange(e,t);if(t= start date");return`${this.format(e)} – ${this.format(t)}`}formatRangeToParts(e,t){if("function"==typeof this.numberFormatter.formatRangeToParts)return this.numberFormatter.formatRangeToParts(e,t);if(t= start date");let n=this.numberFormatter.formatToParts(e),r=this.numberFormatter.formatToParts(t);return[...n.map((e=>({...e,source:"startRange"}))),{type:"literal",value:" – ",source:"shared"},...r.map((e=>({...e,source:"endRange"})))]}resolvedOptions(){let e=this.numberFormatter.resolvedOptions();return ue||null==this.options.signDisplay||(e={...e,signDisplay:this.options.signDisplay}),ce||"unit"!==this.options.style||(e={...e,style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay}),e}constructor(e,t={}){this.numberFormatter=function(e,t={}){let{numberingSystem:n}=t;n&&-1===e.indexOf("-u-nu-")&&(e=`${e}-u-nu-${n}`);if("unit"===t.style&&!ce){var r;let{unit:e,unitDisplay:n="short"}=t;if(!e)throw new Error('unit option must be provided with style: "unit"');if(!(null===(r=de[e])||void 0===r?void 0:r[n]))throw new Error(`Unsupported unit ${e} with unitDisplay = ${n}`);t={...t,style:"decimal"}}let i=e+(t?Object.entries(t).sort(((e,t)=>e[0](0===ve.size&&window.addEventListener("languagechange",be),ve.add(n),()=>{ve.delete(n),0===ve.size&&window.removeEventListener("languagechange",be)})),[]),e?{locale:"en-US",direction:"ltr"}:t}const Ee=t(o).createContext(null);function ke(e){let{locale:n,children:r}=e,i=we(),l=n?{locale:n,direction:he(n)?"rtl":"ltr"}:i;return t(o).createElement(Ee.Provider,{value:l},r)}function Se(){let e=we();return(0,o.useContext)(Ee)||e}const xe=new WeakMap;function Pe(e){let{locale:t}=Se(),n=(0,o.useMemo)((()=>function(e){let t=xe.get(e);return t||(t=new re(e),xe.set(e,t)),t}(e)),[e]);return(0,o.useMemo)((()=>new oe(t,n)),[t,n])}function Te(e={}){let{locale:t}=Se();return(0,o.useMemo)((()=>new pe(t,e)),[t,e])}let _e=new Map;function Ce(e){let{locale:t}=Se(),n=t+(e?Object.entries(e).sort(((e,t)=>e[0]!!t&&window.matchMedia(e).matches));return(0,o.useEffect)((()=>{if(!t)return;let n=window.matchMedia(e),i=e=>{r(e.matches)};return n.addListener(i),()=>{n.removeListener(i)}}),[t,e]),!m()&&n}function Re(e){return{UNSAFE_getDOMNode:()=>e.current}}function Oe(e){let t=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,(()=>Re(t))),t}function Ae(e,t){let n=(0,o.useRef)(null);return(0,o.useImperativeHandle)(e,(()=>function(e,t=e){return{...Re(e),focus(){t.current&&t.current.focus()}}}(n,t))),n}function Fe(e){return(0,o.useMemo)((()=>function(e){return{get current(){return e.current&&e.current.UNSAFE_getDOMNode()}}}(e)),[e])}const ze=t(o).createContext(null);function De(e){let{children:n,matchedBreakpoints:r}=e;return t(o).createElement(ze.Provider,{value:{matchedBreakpoints:r}},n)}function Ke(e){let t=Object.entries(e).sort((([,e],[,t])=>t-e)),n=t.map((([,e])=>`(min-width: ${e}px)`)),r="undefined"!=typeof window&&"function"==typeof window.matchMedia,i=()=>{let e=[];for(let r in n){let i=n[r];window.matchMedia(i).matches&&e.push(t[r][0])}return e.push("base"),e},[l,a]=(0,o.useState)((()=>r?i():["base"]));return(0,o.useEffect)((()=>{if(!r)return;let e=()=>{const e=i();a((t=>t.length!==e.length||t.some(((t,n)=>t!==e[n]))?[...e]:t))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[r]),m()?["base"]:l}function Ve(){return(0,o.useContext)(ze)}ze.displayName="BreakpointContext";const Ue={margin:["margin",Ge],marginStart:[$e("marginLeft","marginRight"),Ge],marginEnd:[$e("marginRight","marginLeft"),Ge],marginTop:["marginTop",Ge],marginBottom:["marginBottom",Ge],marginX:[["marginLeft","marginRight"],Ge],marginY:[["marginTop","marginBottom"],Ge],width:["width",Ge],height:["height",Ge],minWidth:["minWidth",Ge],minHeight:["minHeight",Ge],maxWidth:["maxWidth",Ge],maxHeight:["maxHeight",Ge],isHidden:["display",function(e){return e?"none":void 0}],alignSelf:["alignSelf",nt],justifySelf:["justifySelf",nt],position:["position",et],zIndex:["zIndex",et],top:["top",Ge],bottom:["bottom",Ge],start:[$e("left","right"),Ge],end:[$e("right","left"),Ge],left:["left",Ge],right:["right",Ge],order:["order",et],flex:["flex",function(e){return"boolean"==typeof e?e?"1":void 0:""+e}],flexGrow:["flexGrow",nt],flexShrink:["flexShrink",nt],flexBasis:["flexBasis",nt],gridArea:["gridArea",nt],gridColumn:["gridColumn",nt],gridColumnEnd:["gridColumnEnd",nt],gridColumnStart:["gridColumnStart",nt],gridRow:["gridRow",nt],gridRowEnd:["gridRowEnd",nt],gridRowStart:["gridRowStart",nt]},Be={...Ue,backgroundColor:["backgroundColor",function(e,t=5){return`var(--spectrum-alias-background-color-${e}, ${Ye(e,"background",t)})`}],borderWidth:["borderWidth",Ze],borderStartWidth:[$e("borderLeftWidth","borderRightWidth"),Ze],borderEndWidth:[$e("borderRightWidth","borderLeftWidth"),Ze],borderLeftWidth:["borderLeftWidth",Ze],borderRightWidth:["borderRightWidth",Ze],borderTopWidth:["borderTopWidth",Ze],borderBottomWidth:["borderBottomWidth",Ze],borderXWidth:[["borderLeftWidth","borderRightWidth"],Ze],borderYWidth:[["borderTopWidth","borderBottomWidth"],Ze],borderColor:["borderColor",Xe],borderStartColor:[$e("borderLeftColor","borderRightColor"),Xe],borderEndColor:[$e("borderRightColor","borderLeftColor"),Xe],borderLeftColor:["borderLeftColor",Xe],borderRightColor:["borderRightColor",Xe],borderTopColor:["borderTopColor",Xe],borderBottomColor:["borderBottomColor",Xe],borderXColor:[["borderLeftColor","borderRightColor"],Xe],borderYColor:[["borderTopColor","borderBottomColor"],Xe],borderRadius:["borderRadius",Je],borderTopStartRadius:[$e("borderTopLeftRadius","borderTopRightRadius"),Je],borderTopEndRadius:[$e("borderTopRightRadius","borderTopLeftRadius"),Je],borderBottomStartRadius:[$e("borderBottomLeftRadius","borderBottomRightRadius"),Je],borderBottomEndRadius:[$e("borderBottomRightRadius","borderBottomLeftRadius"),Je],borderTopLeftRadius:["borderTopLeftRadius",Je],borderTopRightRadius:["borderTopRightRadius",Je],borderBottomLeftRadius:["borderBottomLeftRadius",Je],borderBottomRightRadius:["borderBottomRightRadius",Je],padding:["padding",Ge],paddingStart:[$e("paddingLeft","paddingRight"),Ge],paddingEnd:[$e("paddingRight","paddingLeft"),Ge],paddingLeft:["paddingLeft",Ge],paddingRight:["paddingRight",Ge],paddingTop:["paddingTop",Ge],paddingBottom:["paddingBottom",Ge],paddingX:[["paddingLeft","paddingRight"],Ge],paddingY:[["paddingTop","paddingBottom"],Ge],overflow:["overflow",nt]},je={borderWidth:"borderStyle",borderLeftWidth:"borderLeftStyle",borderRightWidth:"borderRightStyle",borderTopWidth:"borderTopStyle",borderBottomWidth:"borderBottomStyle"};function $e(e,t){return n=>"rtl"===n?t:e}const He=/(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/,We=/^\s*\w+\(/,qe=/(static-)?size-\d+|single-line-(height|width)/g;function Ge(e){return"number"==typeof e?e+"px":He.test(e)?e:We.test(e)?e.replace(qe,"var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))"):`var(--spectrum-global-dimension-${e}, var(--spectrum-alias-${e}))`}function Qe(e,t){return Ge(e=rt(e,t))}function Ye(e,t="default",n=5){return n>5?`var(--spectrum-${e}, var(--spectrum-semantic-${e}-color-${t}))`:`var(--spectrum-legacy-color-${e}, var(--spectrum-global-color-${e}, var(--spectrum-semantic-${e}-color-${t})))`}function Xe(e,t=5){return"default"===e?"var(--spectrum-alias-border-color)":`var(--spectrum-alias-border-color-${e}, ${Ye(e,"border",t)})`}function Ze(e){return`var(--spectrum-alias-border-size-${e})`}function Je(e){return`var(--spectrum-alias-border-radius-${e})`}function et(e){return e}function tt(e,t=Ue,n={}){let{UNSAFE_className:r,UNSAFE_style:i,...l}=e,o=Ve(),{direction:a}=Se(),{matchedBreakpoints:s=(null==o?void 0:o.matchedBreakpoints)||["base"]}=n,u=function(e,t,n,r){let i={};for(let l in e){let o=t[l];if(!o||null==e[l])continue;let[a,s]=o;"function"==typeof a&&(a=a(n));let u=s(rt(e[l],r),e.colorVersion);if(Array.isArray(a))for(let e of a)i[e]=u;else i[a]=u}for(let e in je)i[e]&&(i[je[e]]="solid",i.boxSizing="border-box");return i}(e,t,a,s),c={...i,...u};l.className&&console.warn("The className prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes."),l.style&&console.warn("The style prop is unsafe and is unsupported in React Spectrum v3. Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. Note that this may break in future versions due to DOM structure changes.");let d={style:c,className:r};return rt(e.isHidden,s)&&(d.hidden=!0),{styleProps:d}}function nt(e){return e}function rt(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){for(let n=0;nObject.keys(n).concat(Object.keys(r)).reduce(((e,t)=>({...e,[t]:x(n[t]||{},r[t]||{})})),{})),[n,r]);return t(o).createElement(it.Provider,{value:l},i)}function at(e){let{children:n,...r}=e,i=n;return t(o).Children.toArray(n).length<=1&&"function"==typeof n&&(i=t(o).cloneElement(t(o).Children.only(n),r)),t(o).createElement(it.Provider,{value:{}},i)}function st(e,t){let[n,r]=(0,o.useState)(!0);return y((()=>{r(!(!t.current||!t.current.querySelector(e)))}),[r,e,t]),n}function ut(){return!m()&&"undefined"!=typeof window&&window.screen.width<=700}o=l("acw62"),o=l("acw62");let ct="default",dt="",pt=new WeakMap;function ft(e){X()?("default"===ct&&(dt=document.documentElement.style.webkitUserSelect,document.documentElement.style.webkitUserSelect="none"),ct="disabled"):(e instanceof HTMLElement||e instanceof SVGElement)&&(pt.set(e,e.style.userSelect),e.style.userSelect="none")}function mt(e){if(X()){if("disabled"!==ct)return;ct="restoring",setTimeout((()=>{O((()=>{"restoring"===ct&&("none"===document.documentElement.style.webkitUserSelect&&(document.documentElement.style.webkitUserSelect=dt||""),dt="",ct="default")}))}),300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&pt.has(e)){let t=pt.get(e);"none"===e.style.userSelect&&(e.style.userSelect=t),""===e.getAttribute("style")&&e.removeAttribute("style"),pt.delete(e)}}const ht=t(o).createContext(null);function gt(e){let{onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:l,isDisabled:a,isPressed:s,preventFocusOnPress:u,shouldCancelOnPointerExit:c,allowTextSelectionOnPress:d,ref:p,...f}=function(e){let t=(0,o.useContext)(ht);if(t){let{register:n,...r}=t;e=x(r,e),n()}return K(t,e.ref),e}(e),m=(0,o.useRef)(null);m.current={onPress:t,onPressChange:n,onPressStart:r,onPressEnd:i,onPressUp:l,isDisabled:a,shouldCancelOnPointerExit:c};let[h,g]=(0,o.useState)(!1),y=(0,o.useRef)({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:v,removeAllGlobalListeners:b}=A(),w=(0,o.useMemo)((()=>{let e=y.current,t=(t,n)=>{let{onPressStart:r,onPressChange:i,isDisabled:l}=m.current;l||e.didFirePressStart||(r&&r({type:"pressstart",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}),i&&i(!0),e.didFirePressStart=!0,g(!0))},n=(t,n,r=!0)=>{let{onPressEnd:i,onPressChange:l,onPress:o,isDisabled:a}=m.current;e.didFirePressStart&&(e.ignoreClickAfterPress=!0,e.didFirePressStart=!1,i&&i({type:"pressend",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}),l&&l(!1),g(!1),o&&r&&!a&&o({type:"press",pointerType:n,target:t.currentTarget,shiftKey:t.shiftKey,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey}))},r=(e,t)=>{let{onPressUp:n,isDisabled:r}=m.current;r||n&&n({type:"pressup",pointerType:t,target:e.currentTarget,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey})},i=t=>{e.isPressed&&(e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isPressed=!1,e.isOverTarget=!1,e.activePointerId=null,e.pointerType=null,b(),d||mt(e.target))},l={onKeyDown(n){vt(n.nativeEvent,n.currentTarget)&&n.currentTarget.contains(n.target)?(St(n.target,n.key)&&n.preventDefault(),n.stopPropagation(),e.isPressed||n.repeat||(e.target=n.currentTarget,e.isPressed=!0,t(n,"keyboard"),v(document,"keyup",o,!1))):"Enter"===n.key&&yt(n.currentTarget)&&n.stopPropagation()},onKeyUp(t){vt(t.nativeEvent,t.currentTarget)&&!t.repeat&&t.currentTarget.contains(t.target)&&r(wt(e.target,t),"keyboard")},onClick(i){i&&!i.currentTarget.contains(i.target)||i&&0===i.button&&(i.stopPropagation(),a&&i.preventDefault(),e.ignoreClickAfterPress||e.ignoreEmulatedMouseEvents||"virtual"!==e.pointerType&&!ne(i.nativeEvent)||(a||u||I(i.currentTarget),t(i,"virtual"),r(i,"virtual"),n(i,"virtual")),e.ignoreEmulatedMouseEvents=!1,e.ignoreClickAfterPress=!1)}},o=t=>{if(e.isPressed&&vt(t,e.target)){St(t.target,t.key)&&t.preventDefault(),t.stopPropagation(),e.isPressed=!1;let r=t.target;n(wt(e.target,t),"keyboard",e.target.contains(r)),b(),e.target instanceof HTMLElement&&e.target.contains(r)&&(yt(e.target)||"link"===e.target.getAttribute("role"))&&e.target.click()}};if("undefined"!=typeof PointerEvent){l.onPointerDown=n=>{var r;0===n.button&&n.currentTarget.contains(n.target)&&(0===(r=n.nativeEvent).width&&0===r.height||1===r.width&&1===r.height&&0===r.pressure&&0===r.detail&&"mouse"===r.pointerType?e.pointerType="virtual":(kt(n.currentTarget)&&n.preventDefault(),e.pointerType=n.pointerType,n.stopPropagation(),e.isPressed||(e.isPressed=!0,e.isOverTarget=!0,e.activePointerId=n.pointerId,e.target=n.currentTarget,a||u||I(n.currentTarget),d||ft(e.target),t(n,e.pointerType),v(document,"pointermove",o,!1),v(document,"pointerup",s,!1),v(document,"pointercancel",c,!1))))},l.onMouseDown=e=>{e.currentTarget.contains(e.target)&&0===e.button&&(kt(e.currentTarget)&&e.preventDefault(),e.stopPropagation())},l.onPointerUp=t=>{t.currentTarget.contains(t.target)&&"virtual"!==e.pointerType&&0===t.button&&Et(t,t.currentTarget)&&r(t,e.pointerType||t.pointerType)};let o=r=>{r.pointerId===e.activePointerId&&(Et(r,e.target)?e.isOverTarget||(e.isOverTarget=!0,t(wt(e.target,r),e.pointerType)):e.isOverTarget&&(e.isOverTarget=!1,n(wt(e.target,r),e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(r)))},s=t=>{t.pointerId===e.activePointerId&&e.isPressed&&0===t.button&&(Et(t,e.target)?n(wt(e.target,t),e.pointerType):e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isPressed=!1,e.isOverTarget=!1,e.activePointerId=null,e.pointerType=null,b(),d||mt(e.target))},c=e=>{i(e)};l.onDragStart=e=>{e.currentTarget.contains(e.target)&&i(e)}}else{l.onMouseDown=n=>{0===n.button&&n.currentTarget.contains(n.target)&&(kt(n.currentTarget)&&n.preventDefault(),n.stopPropagation(),e.ignoreEmulatedMouseEvents||(e.isPressed=!0,e.isOverTarget=!0,e.target=n.currentTarget,e.pointerType=ne(n.nativeEvent)?"virtual":"mouse",a||u||I(n.currentTarget),t(n,e.pointerType),v(document,"mouseup",o,!1)))},l.onMouseEnter=n=>{n.currentTarget.contains(n.target)&&(n.stopPropagation(),e.isPressed&&!e.ignoreEmulatedMouseEvents&&(e.isOverTarget=!0,t(n,e.pointerType)))},l.onMouseLeave=t=>{t.currentTarget.contains(t.target)&&(t.stopPropagation(),e.isPressed&&!e.ignoreEmulatedMouseEvents&&(e.isOverTarget=!1,n(t,e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(t)))},l.onMouseUp=t=>{t.currentTarget.contains(t.target)&&(e.ignoreEmulatedMouseEvents||0!==t.button||r(t,e.pointerType))};let o=t=>{0===t.button&&(e.isPressed=!1,b(),e.ignoreEmulatedMouseEvents?e.ignoreEmulatedMouseEvents=!1:(Et(t,e.target)?n(wt(e.target,t),e.pointerType):e.isOverTarget&&n(wt(e.target,t),e.pointerType,!1),e.isOverTarget=!1))};l.onTouchStart=n=>{if(!n.currentTarget.contains(n.target))return;n.stopPropagation();let r=function(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}(n.nativeEvent);r&&(e.activePointerId=r.identifier,e.ignoreEmulatedMouseEvents=!0,e.isOverTarget=!0,e.isPressed=!0,e.target=n.currentTarget,e.pointerType="touch",a||u||I(n.currentTarget),d||ft(e.target),t(n,e.pointerType),v(window,"scroll",s,!0))},l.onTouchMove=r=>{if(!r.currentTarget.contains(r.target))return;if(r.stopPropagation(),!e.isPressed)return;let l=bt(r.nativeEvent,e.activePointerId);l&&Et(l,r.currentTarget)?e.isOverTarget||(e.isOverTarget=!0,t(r,e.pointerType)):e.isOverTarget&&(e.isOverTarget=!1,n(r,e.pointerType,!1),m.current.shouldCancelOnPointerExit&&i(r))},l.onTouchEnd=t=>{if(!t.currentTarget.contains(t.target))return;if(t.stopPropagation(),!e.isPressed)return;let i=bt(t.nativeEvent,e.activePointerId);i&&Et(i,t.currentTarget)?(r(t,e.pointerType),n(t,e.pointerType)):e.isOverTarget&&n(t,e.pointerType,!1),e.isPressed=!1,e.activePointerId=null,e.isOverTarget=!1,e.ignoreEmulatedMouseEvents=!0,d||mt(e.target),b()},l.onTouchCancel=t=>{t.currentTarget.contains(t.target)&&(t.stopPropagation(),e.isPressed&&i(t))};let s=t=>{e.isPressed&&t.target.contains(e.target)&&i({currentTarget:e.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};l.onDragStart=e=>{e.currentTarget.contains(e.target)&&i(e)}}return l}),[v,a,u,b,d]);return(0,o.useEffect)((()=>()=>{d||mt(y.current.target)}),[d]),{isPressed:s||h,pressProps:x(f,w)}}function yt(e){return"A"===e.tagName&&e.hasAttribute("href")}function vt(e,t){const{key:n,code:r}=e,i=t,l=i.getAttribute("role");return!("Enter"!==n&&" "!==n&&"Spacebar"!==n&&"Space"!==r||i instanceof HTMLInputElement&&!Pt(i,n)||i instanceof HTMLTextAreaElement||i.isContentEditable||yt(i)&&("button"!==l||"Enter"===n)||"link"===l&&"Enter"!==n)}function bt(e,t){const n=e.changedTouches;for(let e=0;el.right||l.left>i.right||i.top>l.bottom||l.top>i.bottom);var i,l}function kt(e){return!(e instanceof HTMLElement&&e.draggable)}function St(e,t){return e instanceof HTMLInputElement?!Pt(e,t):!(e instanceof HTMLButtonElement)||"submit"!==e.type}ht.displayName="PressResponderContext";const xt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Pt(e,t){return"checkbox"===e.type||"radio"===e.type?" "===t:xt.has(e.type)}t(o).forwardRef((({children:e,...n},r)=>{let i=(0,o.useRef)();r=null!=r?r:i;let{pressProps:l}=gt({...n,ref:r}),a=t(o).Children.only(e);return t(o).cloneElement(a,{ref:r,...x(a.props,l)})}));const Tt=t(o).forwardRef((({children:e,...n},r)=>{let i=(0,o.useRef)(!1),l=(0,o.useContext)(ht),a=x(l||{},{...n,ref:r||(null==l?void 0:l.ref),register(){i.current=!0,l&&l.register()}});return K(l,r),(0,o.useEffect)((()=>{i.current||console.warn("A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with component.")}),[]),t(o).createElement(ht.Provider,{value:a},e)}));class _t{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(e,t){this.nativeEvent=t,this.target=t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget,this.bubbles=t.bubbles,this.cancelable=t.cancelable,this.defaultPrevented=t.defaultPrevented,this.eventPhase=t.eventPhase,this.isTrusted=t.isTrusted,this.timeStamp=t.timeStamp,this.type=e}}function Ct(e){let t=(0,o.useRef)({isFocused:!1,onBlur:e,observer:null});return t.current.onBlur=e,y((()=>{const e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]),(0,o.useCallback)((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let n=e.target,r=e=>{var r,i;t.current.isFocused=!1,n.disabled&&(null===(i=(r=t.current).onBlur)||void 0===i||i.call(r,new _t("blur",e))),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};n.addEventListener("focusout",r,{once:!0}),t.current.observer=new MutationObserver((()=>{t.current.isFocused&&n.disabled&&(t.current.observer.disconnect(),n.dispatchEvent(new FocusEvent("blur")),n.dispatchEvent(new FocusEvent("focusout",{bubbles:!0})))})),t.current.observer.observe(n,{attributes:!0,attributeFilter:["disabled"]})}}),[])}function It(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const l=(0,o.useCallback)((e=>{if(e.target===e.currentTarget)return r&&r(e),i&&i(!1),!0}),[r,i]),a=Ct(l),s=(0,o.useCallback)((e=>{e.target===e.currentTarget&&(n&&n(e),i&&i(!0),a(e))}),[i,n,a]);return{focusProps:{onFocus:!t&&(n||i||r)?s:void 0,onBlur:t||!r&&!i?null:l}}}let Mt=null,Lt=new Set,Nt=!1,Rt=!1,Ot=!1;const At={Tab:!0,Escape:!0};function Ft(e,t){for(let n of Lt)n(e,t)}function zt(e){Rt=!0,function(e){return!(e.metaKey||!Y()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key)}(e)&&(Mt="keyboard",Ft("keyboard",e))}function Dt(e){Mt="pointer","mousedown"!==e.type&&"pointerdown"!==e.type||(Rt=!0,Ft("pointer",e))}function Kt(e){ne(e)&&(Rt=!0,Mt="virtual")}function Vt(e){e.target!==window&&e.target!==document&&(Rt||Ot||(Mt="virtual",Ft("virtual",e)),Rt=!1,Ot=!1)}function Ut(){Rt=!1,Ot=!0}function Bt(){if("undefined"==typeof window||Nt)return;let e=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(){Rt=!0,e.apply(this,arguments)},document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",zt,!0),document.addEventListener("click",Kt,!0),window.addEventListener("focus",Vt,!0),window.addEventListener("blur",Ut,!1),"undefined"!=typeof PointerEvent?(document.addEventListener("pointerdown",Dt,!0),document.addEventListener("pointermove",Dt,!0),document.addEventListener("pointerup",Dt,!0)):(document.addEventListener("mousedown",Dt,!0),document.addEventListener("mousemove",Dt,!0),document.addEventListener("mouseup",Dt,!0)),Nt=!0}function jt(){return"pointer"!==Mt}function $t(){return Mt}function Ht(){Bt();let[e,t]=(0,o.useState)(Mt);return(0,o.useEffect)((()=>{let e=()=>{t(Mt)};return Lt.add(e),()=>{Lt.delete(e)}}),[]),e}function Wt(e,t,n){Bt(),(0,o.useEffect)((()=>{let t=(t,r)=>{(function(e,t,n){return!(e&&"keyboard"===t&&n instanceof KeyboardEvent&&!At[n.key])})(null==n?void 0:n.isTextInput,t,r)&&e(jt())};return Lt.add(t),()=>{Lt.delete(t)}}),t)}function qt(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:i}=e,l=(0,o.useRef)({isFocusWithin:!1}),a=(0,o.useCallback)((e=>{l.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(l.current.isFocusWithin=!1,n&&n(e),i&&i(!1))}),[n,i,l]),s=Ct(a),u=(0,o.useCallback)((e=>{l.current.isFocusWithin||(r&&r(e),i&&i(!0),l.current.isFocusWithin=!0,s(e))}),[r,i,s]);return t?{focusWithinProps:{onFocus:null,onBlur:null}}:{focusWithinProps:{onFocus:u,onBlur:a}}}"undefined"!=typeof document&&("loading"!==document.readyState?Bt():document.addEventListener("DOMContentLoaded",Bt));let Gt=!1,Qt=0;function Yt(){Gt=!0,setTimeout((()=>{Gt=!1}),50)}function Xt(e){"touch"===e.pointerType&&Yt()}function Zt(){if("undefined"!=typeof document)return"undefined"!=typeof PointerEvent?document.addEventListener("pointerup",Xt):document.addEventListener("touchend",Yt),Qt++,()=>{Qt--,Qt>0||("undefined"!=typeof PointerEvent?document.removeEventListener("pointerup",Xt):document.removeEventListener("touchend",Yt))}}function Jt(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:i}=e,[l,a]=(0,o.useState)(!1),s=(0,o.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;(0,o.useEffect)(Zt,[]);let{hoverProps:u,triggerHoverEnd:c}=(0,o.useMemo)((()=>{let e=(e,r)=>{if(s.pointerType=r,i||"touch"===r||s.isHovered||!e.currentTarget.contains(e.target))return;s.isHovered=!0;let l=e.currentTarget;s.target=l,t&&t({type:"hoverstart",target:l,pointerType:r}),n&&n(!0),a(!0)},l=(e,t)=>{if(s.pointerType="",s.target=null,"touch"===t||!s.isHovered)return;s.isHovered=!1;let i=e.currentTarget;r&&r({type:"hoverend",target:i,pointerType:t}),n&&n(!1),a(!1)},o={};return"undefined"!=typeof PointerEvent?(o.onPointerEnter=t=>{Gt&&"mouse"===t.pointerType||e(t,t.pointerType)},o.onPointerLeave=e=>{!i&&e.currentTarget.contains(e.target)&&l(e,e.pointerType)}):(o.onTouchStart=()=>{s.ignoreEmulatedMouseEvents=!0},o.onMouseEnter=t=>{s.ignoreEmulatedMouseEvents||Gt||e(t,"mouse"),s.ignoreEmulatedMouseEvents=!1},o.onMouseLeave=e=>{!i&&e.currentTarget.contains(e.target)&&l(e,"mouse")}),{hoverProps:o,triggerHoverEnd:l}}),[t,n,r,i,s]);return(0,o.useEffect)((()=>{i&&c({currentTarget:s.target},s.pointerType)}),[i]),{hoverProps:u,isHovered:l}}function en(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:i}=e,l=(0,o.useRef)({isPointerDown:!1,ignoreEmulatedMouseEvents:!1,onInteractOutside:n,onInteractOutsideStart:i}).current;l.onInteractOutside=n,l.onInteractOutsideStart=i,(0,o.useEffect)((()=>{if(r)return;let e=e=>{tn(e,t)&&l.onInteractOutside&&(l.onInteractOutsideStart&&l.onInteractOutsideStart(e),l.isPointerDown=!0)};if("undefined"!=typeof PointerEvent){let n=e=>{l.isPointerDown&&l.onInteractOutside&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("pointerup",n,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("pointerup",n,!0)}}{let n=e=>{l.ignoreEmulatedMouseEvents?l.ignoreEmulatedMouseEvents=!1:l.isPointerDown&&l.onInteractOutside&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))},r=e=>{l.ignoreEmulatedMouseEvents=!0,l.onInteractOutside&&l.isPointerDown&&tn(e,t)&&(l.isPointerDown=!1,l.onInteractOutside(e))};return document.addEventListener("mousedown",e,!0),document.addEventListener("mouseup",n,!0),document.addEventListener("touchstart",e,!0),document.addEventListener("touchend",r,!0),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("mouseup",n,!0),document.removeEventListener("touchstart",e,!0),document.removeEventListener("touchend",r,!0)}}}),[t,l,r])}function tn(e,t){if(e.button>0)return!1;if(e.target){const t=e.target.ownerDocument;if(!t||!t.documentElement.contains(e.target))return!1}return t.current&&!t.current.contains(e.target)}function nn(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented:()=>n.isDefaultPrevented(),stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function rn(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:nn(e.onKeyDown),onKeyUp:nn(e.onKeyUp)}}}const ln=500;function on(e){let{isDisabled:t,onLongPressStart:n,onLongPressEnd:r,onLongPress:i,threshold:l=ln,accessibilityDescription:a}=e;const s=(0,o.useRef)(null);let{addGlobalListener:u,removeGlobalListener:c}=A(),{pressProps:d}=gt({isDisabled:t,onPressStart(e){if(("mouse"===e.pointerType||"touch"===e.pointerType)&&(n&&n({...e,type:"longpressstart"}),s.current=setTimeout((()=>{e.target.dispatchEvent(new PointerEvent("pointercancel",{bubbles:!0})),i&&i({...e,type:"longpress"}),s.current=null}),l),"touch"===e.pointerType)){let t=e=>{e.preventDefault()};u(e.target,"contextmenu",t,{once:!0}),u(window,"pointerup",(()=>{setTimeout((()=>{c(e.target,"contextmenu",t)}),30)}),{once:!0})}},onPressEnd(e){s.current&&clearTimeout(s.current),!r||"mouse"!==e.pointerType&&"touch"!==e.pointerType||r({...e,type:"longpressend"})}});return{longPressProps:x(d,q(i&&!t?a:null))}}function an(e){if("virtual"===$t()){let t=document.activeElement;O((()=>{document.activeElement===t&&document.contains(e)&&I(e)}))}else I(e)}function sn(e,t){return"#comment"!==e.nodeName&&function(e){if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;let{display:t,visibility:n}=e.style,r="none"!==t&&"hidden"!==n&&"collapse"!==n;if(r){const{getComputedStyle:t}=e.ownerDocument.defaultView;let{display:n,visibility:i}=t(e);r="none"!==n&&"hidden"!==i&&"collapse"!==i}return r}(e)&&function(e,t){return!e.hasAttribute("hidden")&&("DETAILS"!==e.nodeName||!t||"SUMMARY"===t.nodeName||e.hasAttribute("open"))}(e,t)&&(!e.parentElement||sn(e.parentElement,e))}const un=t(o).createContext(null);let cn=null;function dn(e){let{children:n,contain:r,restoreFocus:i,autoFocus:l}=e,a=(0,o.useRef)(),s=(0,o.useRef)(),u=(0,o.useRef)([]),c=(0,o.useContext)(un);var d;let p=null!==(d=null==c?void 0:c.scopeRef)&&void 0!==d?d:null,f=(0,o.useMemo)((()=>cn&&Tn.getTreeNode(cn)&&!wn(cn,p)?cn:p),[p]);y((()=>{let e=a.current.nextSibling,t=[];for(;e&&e!==s.current;)t.push(e),e=e.nextSibling;u.current=t}),[n,f]),Tn.getTreeNode(f)&&!Tn.getTreeNode(u)&&Tn.addTreeNode(u,f),Tn.getTreeNode(u).contain=r,function(e,t,n){y((()=>{if(t||n)return;let r=e.current,i=t=>{let n=t.target;vn(n,e.current)?cn=e:yn(n)||(cn=null)};return document.addEventListener("focusin",i,!1),r.forEach((e=>e.addEventListener("focusin",i,!1))),()=>{document.removeEventListener("focusin",i,!1),r.forEach((e=>e.removeEventListener("focusin",i,!1)))}}),[e,t,n])}(u,i,r),function(e,t){let n=(0,o.useRef)(),r=(0,o.useRef)(null);y((()=>{let i=e.current;if(!t)return void(r.current&&(cancelAnimationFrame(r.current),r.current=null));let l=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!gn(e))return;let n=document.activeElement,r=e.current;if(!vn(n,r))return;let i=Sn(hn(r),{tabbable:!0},r);i.currentNode=n;let l=t.shiftKey?i.previousNode():i.nextNode();l||(i.currentNode=t.shiftKey?r[r.length-1].nextElementSibling:r[0].previousElementSibling,l=t.shiftKey?i.previousNode():i.nextNode()),t.preventDefault(),l&&En(l,!0)},o=t=>{cn&&!wn(cn,e)||!vn(t.target,e.current)?gn(e)&&!bn(t.target,e)?n.current?n.current.focus():cn&&kn(cn.current):gn(e)&&(n.current=t.target):(cn=e,n.current=t.target)},a=t=>{r.current=requestAnimationFrame((()=>{gn(e)&&!bn(document.activeElement,e)&&(cn=e,document.body.contains(t.target)?(n.current=t.target,n.current.focus()):cn&&kn(cn.current))}))};return document.addEventListener("keydown",l,!1),document.addEventListener("focusin",o,!1),i.forEach((e=>e.addEventListener("focusin",o,!1))),i.forEach((e=>e.addEventListener("focusout",a,!1))),()=>{document.removeEventListener("keydown",l,!1),document.removeEventListener("focusin",o,!1),i.forEach((e=>e.removeEventListener("focusin",o,!1))),i.forEach((e=>e.removeEventListener("focusout",a,!1)))}}),[e,t]),(0,o.useEffect)((()=>()=>{r.current&&cancelAnimationFrame(r.current)}),[r])}(u,r),function(e,t,n){const r=(0,o.useRef)("undefined"!=typeof document?document.activeElement:null);y((()=>{let r=e.current;if(!t||n)return;let i=()=>{cn&&!wn(cn,e)||(cn=e)};return document.addEventListener("focusin",i,!1),r.forEach((e=>e.addEventListener("focusin",i,!1))),()=>{document.removeEventListener("focusin",i,!1),r.forEach((e=>e.removeEventListener("focusin",i,!1)))}}),[e,n]),y((()=>{if(!t)return;Tn.getTreeNode(e).nodeToRestore=r.current;let i=t=>{if("Tab"!==t.key||t.altKey||t.ctrlKey||t.metaKey)return;let n=document.activeElement;if(!vn(n,e.current))return;let r=Tn.getTreeNode(e).nodeToRestore,i=Sn(document.body,{tabbable:!0});i.currentNode=n;let l=t.shiftKey?i.previousNode():i.nextNode();if(document.body.contains(r)&&r!==document.body||(r=null,Tn.getTreeNode(e).nodeToRestore=null),(!l||!vn(l,e.current))&&r){i.currentNode=r;do{l=t.shiftKey?i.previousNode():i.nextNode()}while(vn(l,e.current));t.preventDefault(),t.stopPropagation(),l?En(l,!0):yn(r)?En(r,!0):n.blur()}};return n||document.addEventListener("keydown",i,!0),()=>{n||document.removeEventListener("keydown",i,!0);let r=Tn.getTreeNode(e).nodeToRestore;if(t&&r&&(vn(document.activeElement,e.current)||document.activeElement===document.body&&function(e){let t=Tn.getTreeNode(cn);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(null==t?void 0:t.scopeRef)===e}(e))){let t=Tn.clone();requestAnimationFrame((()=>{if(document.activeElement===document.body){let n=t.getTreeNode(e);for(;n;){if(n.nodeToRestore&&document.body.contains(n.nodeToRestore))return void En(n.nodeToRestore);n=n.parent}for(n=t.getTreeNode(e);n;){if(n.scopeRef&&Tn.getTreeNode(n.scopeRef))return void kn(n.scopeRef.current,!0);n=n.parent}}}))}}}),[e,t,n])}(u,i,r),function(e,n){const r=t(o).useRef(n);(0,o.useEffect)((()=>{r.current&&(cn=e,vn(document.activeElement,cn.current)||kn(e.current)),r.current=!1}),[e])}(u,l),y((()=>{if(u)return()=>{let e=Tn.getTreeNode(u).parent.scopeRef;u!==cn&&!wn(u,cn)||e&&!Tn.getTreeNode(e)||(cn=e),Tn.removeTreeNode(u)}}),[u,f]);let m=function(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:i,wrap:l,accept:o}=t,a=r||document.activeElement,s=n[0].previousElementSibling,u=Sn(hn(n),{tabbable:i,accept:o},n);u.currentNode=vn(a,n)?a:s;let c=u.nextNode();return!c&&l&&(u.currentNode=s,c=u.nextNode()),c&&En(c,!0),c},focusPrevious(t={}){let n=e.current,{from:r,tabbable:i,wrap:l,accept:o}=t,a=r||document.activeElement,s=n[n.length-1].nextElementSibling,u=Sn(hn(n),{tabbable:i,accept:o},n);u.currentNode=vn(a,n)?a:s;let c=u.previousNode();return!c&&l&&(u.currentNode=s,c=u.previousNode()),c&&En(c,!0),c},focusFirst(t={}){let n=e.current,{tabbable:r,accept:i}=t,l=Sn(hn(n),{tabbable:r,accept:i},n);l.currentNode=n[0].previousElementSibling;let o=l.nextNode();return o&&En(o,!0),o},focusLast(t={}){let n=e.current,{tabbable:r,accept:i}=t,l=Sn(hn(n),{tabbable:r,accept:i},n);l.currentNode=n[n.length-1].nextElementSibling;let o=l.previousNode();return o&&En(o,!0),o}}}(u);return t(o).createElement(un.Provider,{value:{scopeRef:u,focusManager:m}},t(o).createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:a}),n,t(o).createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:s}))}const pn=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[contenteditable]"],fn=pn.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";pn.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const mn=pn.join(':not([hidden]):not([tabindex="-1"]),');function hn(e){return e[0].parentElement}function gn(e){let t=Tn.getTreeNode(cn);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function yn(e){return bn(e)}function vn(e,t){return t.some((t=>t.contains(e)))}function bn(e,t=null){for(let{scopeRef:n}of Tn.traverse(Tn.getTreeNode(t)))if(vn(e,n.current))return!0;return!1}function wn(e,t){var n;let r=null===(n=Tn.getTreeNode(t))||void 0===n?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function En(e,t=!1){if(null==e||t){if(null!=e)try{e.focus()}catch(e){}}else try{an(e)}catch(e){}}function kn(e,t=!0){let n=e[0].previousElementSibling,r=Sn(hn(e),{tabbable:t},e);r.currentNode=n;let i=r.nextNode();t&&!i&&(r=Sn(hn(e),{tabbable:!1},e),r.currentNode=n,i=r.nextNode()),En(i)}function Sn(e,t,n){let r=(null==t?void 0:t.tabbable)?mn:fn,i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(e){var i;return(null==t||null===(i=t.from)||void 0===i?void 0:i.contains(e))?NodeFilter.FILTER_REJECT:!e.matches(r)||!sn(e)||n&&!vn(e,n)||(null==t?void 0:t.accept)&&!t.accept(e)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT}});return(null==t?void 0:t.from)&&(i.currentNode=t.from),i}class xn{get size(){return this.fastMap.size}getTreeNode(e){return this.fastMap.get(e)}addTreeNode(e,t,n){let r=this.fastMap.get(null!=t?t:null),i=new Pn({scopeRef:e});r.addChild(i),i.parent=r,this.fastMap.set(e,i),n&&(i.nodeToRestore=n)}removeTreeNode(e){if(null===e)return;let t=this.fastMap.get(e),n=t.parent;for(let e of this.traverse())e!==t&&t.nodeToRestore&&e.nodeToRestore&&t.scopeRef.current&&vn(e.nodeToRestore,t.scopeRef.current)&&(e.nodeToRestore=t.nodeToRestore);let r=t.children;n.removeChild(t),r.length>0&&r.forEach((e=>n.addChild(e))),this.fastMap.delete(t.scopeRef)}*traverse(e=this.root){if(null!=e.scopeRef&&(yield e),e.children.length>0)for(let t of e.children)yield*this.traverse(t)}clone(){let e=new xn;for(let t of this.traverse())e.addTreeNode(t.scopeRef,t.parent.scopeRef,t.nodeToRestore);return e}constructor(){ae(this,"fastMap",new Map),this.root=new Pn({scopeRef:null}),this.fastMap.set(null,this.root)}}class Pn{addChild(e){this.children.push(e),e.parent=this}removeChild(e){this.children.splice(this.children.indexOf(e),1),e.parent=void 0}constructor(e){ae(this,"children",[]),ae(this,"contain",!1),this.scopeRef=e.scopeRef}}let Tn=new xn;function _n(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,i=(0,o.useRef)({isFocused:!1,isFocusVisible:t||jt()}),[l,a]=(0,o.useState)(!1),[s,u]=(0,o.useState)((()=>i.current.isFocused&&i.current.isFocusVisible)),c=(0,o.useCallback)((()=>u(i.current.isFocused&&i.current.isFocusVisible)),[]),d=(0,o.useCallback)((e=>{i.current.isFocused=e,a(e),c()}),[c]);Wt((e=>{i.current.isFocusVisible=e,c()}),[],{isTextInput:n});let{focusProps:p}=It({isDisabled:r,onFocusChange:d}),{focusWithinProps:f}=qt({isDisabled:!r,onFocusWithinChange:d});return{isFocused:l,isFocusVisible:i.current.isFocused&&s,focusProps:r?f:p}}function Cn(e){let{children:n,focusClass:r,focusRingClass:i}=e,{isFocused:l,isFocusVisible:a,focusProps:s}=_n(e),u=t(o).Children.only(n);return t(o).cloneElement(u,x(u.props,{...s,className:g({[r||""]:l,[i||""]:a})}))}let In=t(o).createContext(null);t(o).forwardRef((function(e,n){let{children:r,...i}=e,l={...i,ref:n};return t(o).createElement(In.Provider,{value:l},r)}));function Mn(e,t){let{focusProps:n}=It(e),{keyboardProps:r}=rn(e),i=x(n,r),l=function(e){let t=(0,o.useContext)(In)||{};K(t,e);let{ref:n,...r}=t;return r}(t),a=e.isDisabled?{}:l,s=(0,o.useRef)(e.autoFocus);return(0,o.useEffect)((()=>{s.current&&t.current&&an(t.current),s.current=!1}),[t]),{focusableProps:x({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},a)}}o=l("acw62");const Ln=(0,(o=l("acw62")).forwardRef)((function(e,n){e=lt(e,"text");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("span",{...C(i),...l,ref:a},r)}));(0,o.forwardRef)((function(e,n){e=lt(e,"heading");let{children:r,level:i=3,...l}=e,{styleProps:a}=tt(l),s=Oe(n),u=`h${i}`;return t(o).createElement(u,{...C(l),...a,ref:s},r)}));(0,o.forwardRef)((function(e,n){e=lt(e,"keyboard");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("kbd",{...C(i),...l,dir:"ltr",ref:a},r)}));function Nn(e,t){let n,{elementType:r="button",isDisabled:i,onPress:l,onPressStart:o,onPressEnd:a,onPressChange:s,preventFocusOnPress:u,allowFocusWhenDisabled:c,onClick:d,href:p,target:f,rel:m,type:h="button"}=e;n="button"===r?{type:h,disabled:i}:{role:"button",tabIndex:i?void 0:0,href:"a"===r&&i?void 0:p,target:"a"===r?f:void 0,type:"input"===r?h:void 0,disabled:"input"===r?i:void 0,"aria-disabled":i&&"input"!==r?i:void 0,rel:"a"===r?m:void 0};let{pressProps:g,isPressed:y}=gt({onPressStart:o,onPressEnd:a,onPressChange:s,onPress:l,isDisabled:i,preventFocusOnPress:u,ref:t}),{focusableProps:v}=Mn(e,t);c&&(v.tabIndex=i?-1:v.tabIndex);let b=x(v,g,C(e,{labelable:!0}));return{isPressed:y,buttonProps:x(n,b,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:e=>{d&&(d(e),console.warn("onClick is deprecated, please use onPress"))}})}}function Rn(e,t,n){const{isSelected:r}=t,{isPressed:i,buttonProps:l}=Nn({...e,onPress:S(t.toggle,e.onPress)},n);return{isPressed:i,buttonProps:x(l,{"aria-pressed":r})}}o=l("acw62"),o=l("acw62");const On={border:0,clip:"rect(0 0 0 0)",clipPath:"inset(50%)",height:1,margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:1,whiteSpace:"nowrap"};function An(e={}){let{style:t,isFocusable:n}=e,[r,i]=(0,o.useState)(!1),{focusWithinProps:l}=qt({isDisabled:!n,onFocusWithinChange:e=>i(e)});return{visuallyHiddenProps:{...l,style:(0,o.useMemo)((()=>r?t:t?{...On,...t}:On),[r])}}}function Fn(e){let{children:n,elementType:r="div",isFocusable:i,style:l,...a}=e,{visuallyHiddenProps:s}=An(e);return t(o).createElement(r,x(a,s),n)}function zn(e){return e&&e.__esModule?e.default:e}const Dn={top:"top",bottom:"top",left:"left",right:"left"},Kn={top:"bottom",bottom:"top",left:"right",right:"left"},Vn={top:"left",left:"top"},Un={top:"height",left:"width"},Bn={};let jn="undefined"!=typeof window&&window.visualViewport;function $n(e,t,n,r,i){let l=r.scroll[e],o=r[Un[e]],a=t-i-l,s=t+i-l+n;return a<0?-a:s>o?Math.max(o-s,-a):0}function Hn(e){if(Bn[e])return Bn[e];let[t,n]=e.split(" "),r=Dn[t]||"right",i=Vn[r];Dn[n]||(n="center");let l=Un[r],o=Un[i];return Bn[e]={placement:t,crossPlacement:n,axis:r,crossAxis:i,size:l,crossSize:o},Bn[e]}function Wn(e,t,n,r,i,l,o,a){let{placement:s,crossPlacement:u,axis:c,crossAxis:d,size:p,crossSize:f}=r,m={};m[d]=e[d],"center"===u?m[d]+=(e[f]-n[f])/2:u!==d&&(m[d]+=e[f]-n[f]),m[d]+=l;let h=e[d]+e[f]/2-n[f],g=e[d]+e[f]/2;if(m[d]=Math.min(Math.max(h,m[d]),g),s===c){const n=a?o[p]:t[p];m[Kn[c]]=Math.floor(n-e[c]+i)}else m[c]=Math.floor(e[c]+e[p]+i);return m}function qn(e,t,n,r,i,l){let{placement:o,axis:a,size:s}=l;return o===a?Math.max(0,n[a]-e[a]-e.scroll[a]+t[a]-r[a]-r[Kn[a]]-i):Math.max(0,e[s]+e[a]+e.scroll[a]-t[a]-n[a]-n[s]-r[a]-r[Kn[a]]-i)}function Gn(e,t,n,r,i,l,o,a,s,u,c,d,p){let f=Hn(e),{size:m,crossAxis:h,crossSize:g,placement:y,crossPlacement:v}=f,b=Wn(t,a,n,f,u,c,s,d),w=u,E=qn(a,s,t,i,l+u,f);if(o&&r[m]>E){let e=Hn(`${Kn[y]} ${v}`),r=Wn(t,a,n,e,u,c,s,d);qn(a,s,t,i,l+u,e)>E&&(f=e,b=r,w=u)}let k=$n(h,b[h],n[g],a,l);b[h]+=k;let S=function(e,t,n,r,i,l){return null!=e.top?Math.max(0,t.height+t.top+t.scroll.top-(n.top+e.top)-(i.top+i.bottom+l)):Math.max(0,r.top+n.top-(t.top+t.scroll.top)-(i.top+i.bottom+l))}(b,a,s,t,i,l);p&&p{!1!==p&&f&&r.current&&n.current&&i.current&&u&&v(Qn({placement:tr(l,t),overlayNode:r.current,targetNode:n.current,scrollNode:i.current,padding:a,shouldFlip:s,boundaryElement:u,offset:c,crossOffset:d,maxHeight:h}))}),b);var E;y(w,b),y((()=>(window.addEventListener("resize",E,!1),()=>{window.removeEventListener("resize",E,!1)})),[E=w]),D({ref:r,onResize:w});let k=(0,o.useRef)(!1);y((()=>{let e,t=()=>{k.current=!0,clearTimeout(e),e=setTimeout((()=>{k.current=!1}),500),w()};return null==Jn||Jn.addEventListener("resize",t),()=>{null==Jn||Jn.removeEventListener("resize",t)}}),[w]);let S=(0,o.useCallback)((()=>{k.current||m()}),[m,k]);return function(e){let{triggerRef:t,isOpen:n,onClose:r}=e;(0,o.useEffect)((()=>{if(!n||null===r)return;let e=e=>{let n=e.target;if(!t.current||n instanceof Node&&!n.contains(t.current))return;let i=r||Zn.get(t.current);i&&i()};return window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("scroll",e,!0)}}),[n,r,t])}({triggerRef:n,isOpen:f,onClose:m&&S}),{overlayProps:{style:{position:"absolute",zIndex:1e5,...g.position,maxHeight:g.maxHeight}},placement:g.placement,arrowProps:{style:{left:g.arrowOffsetLeft,top:g.arrowOffsetTop}},updatePosition:w}}function tr(e,t){return"rtl"===t?e.replace("start","right").replace("end","left"):e.replace("start","left").replace("end","right")}const nr=[];function rr(e,t){let{onClose:n,shouldCloseOnBlur:r,isOpen:i,isDismissable:l=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:s}=e;(0,o.useEffect)((()=>(i&&nr.push(t),()=>{let e=nr.indexOf(t);e>=0&&nr.splice(e,1)})),[i,t]);let u=()=>{nr[nr.length-1]===t&&n&&n()};en({ref:t,onInteractOutside:l?e=>{s&&!s(e.target)||(nr[nr.length-1]===t&&(e.stopPropagation(),e.preventDefault()),u())}:null,onInteractOutsideStart:e=>{s&&!s(e.target)||nr[nr.length-1]===t&&(e.stopPropagation(),e.preventDefault())}});let{focusWithinProps:c}=qt({isDisabled:!r,onBlurWithin:e=>{e.relatedTarget&&bn(e.relatedTarget,cn)||(s&&!s(e.relatedTarget)||n())}});return{overlayProps:{onKeyDown:e=>{"Escape"!==e.key||a||(e.stopPropagation(),e.preventDefault(),u())},...c},underlayProps:{onPointerDown:e=>{e.target===e.currentTarget&&e.preventDefault()}}}}function ir(e,t,n){let r,{type:i}=e,{isOpen:l}=t;(0,o.useEffect)((()=>{n&&n.current&&Zn.set(n.current,t.close)})),"menu"===i?r=!0:"listbox"===i&&(r="listbox");let a=w();return{triggerProps:{"aria-haspopup":r,"aria-expanded":l,"aria-controls":l?a:null,onPress:t.toggle},overlayProps:{id:a}}}const lr="undefined"!=typeof window&&window.visualViewport,or=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let ar,sr=0;function ur(e={}){let{isDisabled:t}=e;y((()=>{if(!t)return sr++,1===sr&&(ar=X()?function(){let e,t=0,n=n=>{e=V(n.target),e===document.documentElement&&e===document.body||(t=n.changedTouches[0].pageY)},r=n=>{if(e===document.documentElement||e===document.body)return void n.preventDefault();let r=n.changedTouches[0].pageY,i=e.scrollTop,l=e.scrollHeight-e.clientHeight;(i<=0&&r>t||i>=l&&r{let t=e.target;fr(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame((()=>{t.style.transform=""})))},l=e=>{let t=e.target;fr(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame((()=>{t.style.transform="",lr&&(lr.height{pr(t)})):lr.addEventListener("resize",(()=>pr(t)),{once:!0}))})))},o=()=>{window.scrollTo(0,0)},a=window.pageXOffset,s=window.pageYOffset,u=S(cr(document.documentElement,"paddingRight",window.innerWidth-document.documentElement.clientWidth+"px"),cr(document.documentElement,"overflow","hidden"),cr(document.body,"marginTop",`-${s}px`));window.scrollTo(0,0);let c=S(dr(document,"touchstart",n,{passive:!1,capture:!0}),dr(document,"touchmove",r,{passive:!1,capture:!0}),dr(document,"touchend",i,{passive:!1,capture:!0}),dr(document,"focus",l,!0),dr(window,"scroll",o));return()=>{u(),c(),window.scrollTo(a,s)}}():S(cr(document.documentElement,"paddingRight",window.innerWidth-document.documentElement.clientWidth+"px"),cr(document.documentElement,"overflow","hidden"))),()=>{sr--,0===sr&&ar()}}),[t])}function cr(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function dr(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function pr(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=V(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;r>n+e.clientHeight&&(t.scrollTop+=r-n)}e=t.parentElement}}function fr(e){return e instanceof HTMLInputElement&&!or.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}const mr=t(o).createContext(null);function hr(e){let{children:n}=e,r=(0,o.useContext)(mr),[i,l]=(0,o.useState)(0),a=(0,o.useMemo)((()=>({parent:r,modalCount:i,addModal(){l((e=>e+1)),r&&r.addModal()},removeModal(){l((e=>e-1)),r&&r.removeModal()}})),[r,i]);return t(o).createElement(mr.Provider,{value:a},n)}function gr(){let e=(0,o.useContext)(mr);return{modalProviderProps:{"aria-hidden":!!(e&&e.modalCount>0)||null}}}var yr;function vr(e){let{onDismiss:n,...r}=e,i=F(r,Pe(zn(yr)).format("dismiss"));return t(o).createElement(Fn,null,t(o).createElement("button",{...i,tabIndex:-1,onClick:()=>{n&&n()}}))}yr={"ar-AE":{dismiss:"تجاهل"},"bg-BG":{dismiss:"Отхвърляне"},"cs-CZ":{dismiss:"Odstranit"},"da-DK":{dismiss:"Luk"},"de-DE":{dismiss:"Schließen"},"el-GR":{dismiss:"Απόρριψη"},"en-US":{dismiss:"Dismiss"},"es-ES":{dismiss:"Descartar"},"et-EE":{dismiss:"Lõpeta"},"fi-FI":{dismiss:"Hylkää"},"fr-FR":{dismiss:"Rejeter"},"he-IL":{dismiss:"התעלם"},"hr-HR":{dismiss:"Odbaci"},"hu-HU":{dismiss:"Elutasítás"},"it-IT":{dismiss:"Ignora"},"ja-JP":{dismiss:"閉じる"},"ko-KR":{dismiss:"무시"},"lt-LT":{dismiss:"Atmesti"},"lv-LV":{dismiss:"Nerādīt"},"nb-NO":{dismiss:"Lukk"},"nl-NL":{dismiss:"Negeren"},"pl-PL":{dismiss:"Zignoruj"},"pt-BR":{dismiss:"Descartar"},"pt-PT":{dismiss:"Dispensar"},"ro-RO":{dismiss:"Revocare"},"ru-RU":{dismiss:"Пропустить"},"sk-SK":{dismiss:"Zrušiť"},"sl-SI":{dismiss:"Opusti"},"sr-SP":{dismiss:"Odbaci"},"sv-SE":{dismiss:"Avvisa"},"tr-TR":{dismiss:"Kapat"},"uk-UA":{dismiss:"Скасувати"},"zh-CN":{dismiss:"取消"},"zh-TW":{dismiss:"關閉"}};let br=new WeakMap,wr=[];function Er(e,t=document.body){let n=new Set(e),r=new Set,i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>((t instanceof HTMLElement||t instanceof SVGElement)&&"true"===t.dataset.liveAnnouncer&&n.add(t),n.has(t)||r.has(t.parentElement)&&"row"!==t.parentElement.getAttribute("role")?NodeFilter.FILTER_REJECT:e.some((e=>t.contains(e)))?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT)}),l=e=>{var t;let n=null!==(t=br.get(e))&&void 0!==t?t:0;"true"===e.getAttribute("aria-hidden")&&0===n||(0===n&&e.setAttribute("aria-hidden","true"),r.add(e),br.set(e,n+1))};wr.length&&wr[wr.length-1].disconnect();let o=i.nextNode();for(;null!=o;)l(o),o=i.nextNode();let a=new MutationObserver((e=>{for(let t of e)if("childList"===t.type&&0!==t.addedNodes.length&&![...n,...r].some((e=>e.contains(t.target))))for(let e of t.addedNodes)(e instanceof HTMLElement||e instanceof SVGElement)&&"true"===e.dataset.liveAnnouncer?n.add(e):e instanceof Element&&l(e)}));a.observe(t,{childList:!0,subtree:!0});let s={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return wr.push(s),()=>{a.disconnect();for(let e of r){let t=br.get(e);1===t?(e.removeAttribute("aria-hidden"),br.delete(e)):br.set(e,t-1)}s===wr[wr.length-1]?(wr.pop(),wr.length&&wr[wr.length-1].observe()):wr.splice(wr.indexOf(s),1)}}function kr(e,t){let{triggerRef:n,popoverRef:r,isNonModal:i,isKeyboardDismissDisabled:l,...a}=e,{overlayProps:s,underlayProps:u}=rr({isOpen:t.isOpen,onClose:t.close,shouldCloseOnBlur:!0,isDismissable:!i,isKeyboardDismissDisabled:l},r),{overlayProps:c,arrowProps:d,placement:p}=er({...a,targetRef:n,overlayRef:r,isOpen:t.isOpen,onClose:null}),[f,m]=(0,o.useState)(!1);return y((()=>{!i&&p&&m(!0)}),[i,p]),ur({isDisabled:i||!f}),y((()=>{if(t.isOpen&&!i&&r.current)return Er([r.current])}),[i,t.isOpen,r]),{popoverProps:x(s,c),arrowProps:d,underlayProps:u,placement:p}}const Sr=t(o).createContext(null);function xr(e){let n=m(),{portalContainer:r=(n?null:document.body)}=e,[i,l]=(0,o.useState)(!1),s=(0,o.useMemo)((()=>({contain:i,setContain:l})),[i,l]);if(!r)return null;let u=t(o).createElement(Sr.Provider,{value:s},t(o).createElement(dn,{restoreFocus:!0,contain:i},e.children));return t(a).createPortal(u,r)}function Pr(e,t,n){let{overlayProps:r,underlayProps:i}=rr({...e,isOpen:t.isOpen,onClose:t.close},n);return ur({isDisabled:!t.isOpen}),function(){let e=(0,o.useContext)(Sr),t=null==e?void 0:e.setContain;y((()=>{null==t||t(!0)}),[t])}(),(0,o.useEffect)((()=>{if(t.isOpen)return Er([n.current])}),[t.isOpen,n]),{modalProps:x(r),underlayProps:i}}o=l("acw62");function Tr(e){return e&&e.__esModule?e.default:e}function _r(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Cr,Ir={};_r(Ir,"spectrum",(()=>Cr),(e=>Cr=e)),Cr="spectrum_b37d53";var Mr,Lr,Nr,Rr={};_r(Rr,"spectrum",(()=>Mr),(e=>Mr=e)),_r(Rr,"spectrum-Body",(()=>Lr),(e=>Lr=e)),_r(Rr,"spectrum-Body--italic",(()=>Nr),(e=>Nr=e)),Mr="spectrum_2a241c",Lr="spectrum-Body_2a241c",Nr="spectrum-Body--italic_2a241c";var Or;Or=JSON.parse('{"name":"@react-spectrum/provider","version":"3.6.1","description":"Spectrum UI components in React","license":"Apache-2.0","main":"dist/main.js","module":"dist/module.js","types":"dist/types.d.ts","source":"src/index.ts","files":["dist","src"],"sideEffects":["*.css"],"targets":{"main":{"includeNodeModules":["@adobe/spectrum-css-temp"]},"module":{"includeNodeModules":["@adobe/spectrum-css-temp"]}},"repository":{"type":"git","url":"https://github.com/adobe/react-spectrum"},"dependencies":{"@react-aria/i18n":"^3.6.3","@react-aria/overlays":"^3.12.1","@react-aria/utils":"^3.14.2","@react-spectrum/utils":"^3.8.1","@react-types/provider":"^3.5.5","@react-types/shared":"^3.16.0","@swc/helpers":"^0.4.14","clsx":"^1.1.1"},"devDependencies":{"@adobe/spectrum-css-temp":"3.0.0-alpha.1"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"},"publishConfig":{"access":"public"}}');const Ar=t(o).createContext(null);Ar.displayName="ProviderContext";const Fr={S:640,M:768,L:1024,XL:1280,XXL:1536};let zr=t(o).forwardRef((function(e,n){let r=Kr(),i=r&&r.colorScheme,l=r&&r.breakpoints,{theme:a=r&&r.theme,defaultColorScheme:s}=e;if(!a)throw new Error("theme not found, the parent provider must have a theme provided");let u=function(e,t){let n=Ne("(prefers-color-scheme: dark)"),r=Ne("(prefers-color-scheme: light)");return e.dark&&n?"dark":e.light&&r?"light":e.dark&&"dark"===t?"dark":e.light&&"light"===t?"light":e.dark?e.light?"light":"dark":"light"}(a,s),c=function(e){return Ne("(any-pointer: fine)")&&e.medium?"medium":e.large?"large":"medium"}(a),{locale:d}=Se(),p=!!a[i],{colorScheme:f=(p?i:u),scale:m=(r?r.scale:c),locale:h=(r?d:null),breakpoints:g=(r?l:Fr),children:y,isQuiet:v,isEmphasized:b,isDisabled:w,isRequired:E,isReadOnly:k,validationState:S,...x}=e,P={version:Or.version,theme:a,breakpoints:g,colorScheme:f,scale:m,isQuiet:v,isEmphasized:b,isDisabled:w,isRequired:E,isReadOnly:k,validationState:S},T=Ke(g),_={};Object.entries(P).forEach((([e,t])=>void 0!==t&&(_[e]=t)));let I=Object.assign({},r,_),M=y,L=C(x),{styleProps:N}=tt(x,void 0,{matchedBreakpoints:T});return(!r||e.locale||a!==r.theme||f!==r.colorScheme||m!==r.scale||Object.keys(L).length>0||x.UNSAFE_className||Object.keys(N.style).length>0)&&(M=t(o).createElement(Dr,{...e,UNSAFE_style:{isolation:r?void 0:"isolate",...N.style},ref:n},M)),t(o).createElement(Ar.Provider,{value:I},t(o).createElement(ke,{locale:h},t(o).createElement(De,{matchedBreakpoints:T},t(o).createElement(hr,null,M))))}));const Dr=t(o).forwardRef((function(e,n){let{children:r,...i}=e,{locale:l,direction:a}=Se(),{theme:s,colorScheme:u,scale:c}=Kr(),{modalProviderProps:d}=gr(),{styleProps:p}=tt(i),f=Oe(n),m=Object.keys(s[u])[0],h=Object.keys(s[c])[0],y=g(p.className,Tr(Ir).spectrum,Tr(Rr).spectrum,Object.values(s[u]),Object.values(s[c]),s.global?Object.values(s.global):null,{"react-spectrum-provider":Ie,spectrum:Ie,[m]:Ie,[h]:Ie});var v,b;let w={...p.style,colorScheme:null!==(b=null!==(v=e.colorScheme)&&void 0!==v?v:u)&&void 0!==b?b:Object.keys(s).filter((e=>"light"===e||"dark"===e)).join(" ")},E=(0,o.useRef)(!1);return(0,o.useEffect)((()=>{if(a&&f.current){let e=f.current.parentElement.closest("[dir]"),t=e&&e.getAttribute("dir");t&&t!==a&&!E.current&&(console.warn(`Language directions cannot be nested. ${a} inside ${t}.`),E.current=!0)}}),[a,f,E]),t(o).createElement("div",{...C(i),...p,...d,className:y,style:w,lang:l,dir:a,ref:f},r)}));function Kr(){return(0,o.useContext)(Ar)}function Vr(e){let t=Kr();return t?Object.assign({},{isQuiet:t.isQuiet,isEmphasized:t.isEmphasized,isDisabled:t.isDisabled,isRequired:t.isRequired,isReadOnly:t.isReadOnly,validationState:t.validationState},e):e}var Ur,Br={};Br=function(e){return e&&e.__esModule?e:{default:e}},Br.__esModule=!0,Br.default=Br,Ur=function(e){return Xi.default.createElement(Gi,e,Xi.default.createElement(jr.CornerTriangle,null))};var jr={};Object.defineProperty(jr,"__esModule",{value:!0}),jr.CornerTriangle=Gr;var $r,Hr=($r=l("acw62"))&&$r.__esModule?$r:{default:$r};function Wr(){return Wr=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Gr(e){var t=e.scale,n=void 0===t?"M":t,r=qr(e,["scale"]);return Hr.default.createElement("svg",Wr({},r,r),"L"===n&&Hr.default.createElement("path",{d:"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"}),"M"===n&&Hr.default.createElement("path",{d:"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z"}))}Gr.displayName="CornerTriangle";o=l("acw62");function Qr(e){return e&&e.__esModule?e.default:e}function Yr(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Xr,Zr,Jr,ei,ti,ni,ri,ii,li,oi,ai,si,ui,ci,di,pi,fi,mi,hi,gi,yi,vi,bi,wi,Ei,ki,Si,xi,Pi,Ti,_i,Ci,Ii,Mi,Li,Ni,Ri,Oi,Ai,Fi,zi,Di,Ki,Vi,Ui,Bi,ji,$i,Hi={};Yr(Hi,"spectrum-Icon",(()=>Xr),(e=>Xr=e)),Yr(Hi,"spectrum-UIIcon",(()=>Zr),(e=>Zr=e)),Yr(Hi,"spectrum-Icon--sizeXXS",(()=>Jr),(e=>Jr=e)),Yr(Hi,"spectrum-Icon--sizeXS",(()=>ei),(e=>ei=e)),Yr(Hi,"spectrum-Icon--sizeS",(()=>ti),(e=>ti=e)),Yr(Hi,"spectrum-Icon--sizeM",(()=>ni),(e=>ni=e)),Yr(Hi,"spectrum-Icon--sizeL",(()=>ri),(e=>ri=e)),Yr(Hi,"spectrum-Icon--sizeXL",(()=>ii),(e=>ii=e)),Yr(Hi,"spectrum-Icon--sizeXXL",(()=>li),(e=>li=e)),Yr(Hi,"spectrum--medium",(()=>oi),(e=>oi=e)),Yr(Hi,"spectrum-UIIcon--large",(()=>ai),(e=>ai=e)),Yr(Hi,"spectrum-UIIcon--medium",(()=>si),(e=>si=e)),Yr(Hi,"spectrum--large",(()=>ui),(e=>ui=e)),Yr(Hi,"spectrum-UIIcon-AlertMedium",(()=>ci),(e=>ci=e)),Yr(Hi,"spectrum-UIIcon-AlertSmall",(()=>di),(e=>di=e)),Yr(Hi,"spectrum-UIIcon-ArrowDownSmall",(()=>pi),(e=>pi=e)),Yr(Hi,"spectrum-UIIcon-ArrowLeftMedium",(()=>fi),(e=>fi=e)),Yr(Hi,"spectrum-UIIcon-Asterisk",(()=>mi),(e=>mi=e)),Yr(Hi,"spectrum-UIIcon-CheckmarkMedium",(()=>hi),(e=>hi=e)),Yr(Hi,"spectrum-UIIcon-CheckmarkSmall",(()=>gi),(e=>gi=e)),Yr(Hi,"spectrum-UIIcon-ChevronDownMedium",(()=>yi),(e=>yi=e)),Yr(Hi,"spectrum-UIIcon-ChevronDownSmall",(()=>vi),(e=>vi=e)),Yr(Hi,"spectrum-UIIcon-ChevronLeftLarge",(()=>bi),(e=>bi=e)),Yr(Hi,"spectrum-UIIcon-ChevronLeftMedium",(()=>wi),(e=>wi=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightLarge",(()=>Ei),(e=>Ei=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightMedium",(()=>ki),(e=>ki=e)),Yr(Hi,"spectrum-UIIcon-ChevronRightSmall",(()=>Si),(e=>Si=e)),Yr(Hi,"spectrum-UIIcon-ChevronUpSmall",(()=>xi),(e=>xi=e)),Yr(Hi,"spectrum-UIIcon-CornerTriangle",(()=>Pi),(e=>Pi=e)),Yr(Hi,"spectrum-UIIcon-CrossLarge",(()=>Ti),(e=>Ti=e)),Yr(Hi,"spectrum-UIIcon-CrossMedium",(()=>_i),(e=>_i=e)),Yr(Hi,"spectrum-UIIcon-CrossSmall",(()=>Ci),(e=>Ci=e)),Yr(Hi,"spectrum-UIIcon-DashSmall",(()=>Ii),(e=>Ii=e)),Yr(Hi,"spectrum-UIIcon-DoubleGripper",(()=>Mi),(e=>Mi=e)),Yr(Hi,"spectrum-UIIcon-FolderBreadcrumb",(()=>Li),(e=>Li=e)),Yr(Hi,"spectrum-UIIcon-HelpMedium",(()=>Ni),(e=>Ni=e)),Yr(Hi,"spectrum-UIIcon-HelpSmall",(()=>Ri),(e=>Ri=e)),Yr(Hi,"spectrum-UIIcon-InfoMedium",(()=>Oi),(e=>Oi=e)),Yr(Hi,"spectrum-UIIcon-InfoSmall",(()=>Ai),(e=>Ai=e)),Yr(Hi,"spectrum-UIIcon-ListGripper",(()=>Fi),(e=>Fi=e)),Yr(Hi,"spectrum-UIIcon-Magnifier",(()=>zi),(e=>zi=e)),Yr(Hi,"spectrum-UIIcon-SkipLeft",(()=>Di),(e=>Di=e)),Yr(Hi,"spectrum-UIIcon-SkipRight",(()=>Ki),(e=>Ki=e)),Yr(Hi,"spectrum-UIIcon-Star",(()=>Vi),(e=>Vi=e)),Yr(Hi,"spectrum-UIIcon-StarOutline",(()=>Ui),(e=>Ui=e)),Yr(Hi,"spectrum-UIIcon-SuccessMedium",(()=>Bi),(e=>Bi=e)),Yr(Hi,"spectrum-UIIcon-SuccessSmall",(()=>ji),(e=>ji=e)),Yr(Hi,"spectrum-UIIcon-TripleGripper",(()=>$i),(e=>$i=e)),Xr="spectrum-Icon_368b34",Zr="spectrum-UIIcon_368b34",Jr="spectrum-Icon--sizeXXS_368b34",ei="spectrum-Icon--sizeXS_368b34",ti="spectrum-Icon--sizeS_368b34",ni="spectrum-Icon--sizeM_368b34",ri="spectrum-Icon--sizeL_368b34",ii="spectrum-Icon--sizeXL_368b34",li="spectrum-Icon--sizeXXL_368b34",oi="spectrum--medium_368b34",ai="spectrum-UIIcon--large_368b34",si="spectrum-UIIcon--medium_368b34",ui="spectrum--large_368b34",ci="spectrum-UIIcon-AlertMedium_368b34",di="spectrum-UIIcon-AlertSmall_368b34",pi="spectrum-UIIcon-ArrowDownSmall_368b34",fi="spectrum-UIIcon-ArrowLeftMedium_368b34",mi="spectrum-UIIcon-Asterisk_368b34",hi="spectrum-UIIcon-CheckmarkMedium_368b34",gi="spectrum-UIIcon-CheckmarkSmall_368b34",yi="spectrum-UIIcon-ChevronDownMedium_368b34",vi="spectrum-UIIcon-ChevronDownSmall_368b34",bi="spectrum-UIIcon-ChevronLeftLarge_368b34",wi="spectrum-UIIcon-ChevronLeftMedium_368b34",Ei="spectrum-UIIcon-ChevronRightLarge_368b34",ki="spectrum-UIIcon-ChevronRightMedium_368b34",Si="spectrum-UIIcon-ChevronRightSmall_368b34",xi="spectrum-UIIcon-ChevronUpSmall_368b34",Pi="spectrum-UIIcon-CornerTriangle_368b34",Ti="spectrum-UIIcon-CrossLarge_368b34",_i="spectrum-UIIcon-CrossMedium_368b34",Ci="spectrum-UIIcon-CrossSmall_368b34",Ii="spectrum-UIIcon-DashSmall_368b34",Mi="spectrum-UIIcon-DoubleGripper_368b34",Li="spectrum-UIIcon-FolderBreadcrumb_368b34",Ni="spectrum-UIIcon-HelpMedium_368b34",Ri="spectrum-UIIcon-HelpSmall_368b34",Oi="spectrum-UIIcon-InfoMedium_368b34",Ai="spectrum-UIIcon-InfoSmall_368b34",Fi="spectrum-UIIcon-ListGripper_368b34",zi="spectrum-UIIcon-Magnifier_368b34",Di="spectrum-UIIcon-SkipLeft_368b34",Ki="spectrum-UIIcon-SkipRight_368b34",Vi="spectrum-UIIcon-Star_368b34",Ui="spectrum-UIIcon-StarOutline_368b34",Bi="spectrum-UIIcon-SuccessMedium_368b34",ji="spectrum-UIIcon-SuccessSmall_368b34",$i="spectrum-UIIcon-TripleGripper_368b34";const Wi={...Ue,color:["color",function(e){return`var(--spectrum-semantic-${e}-color-icon)`}]};function qi(e){e=lt(e,"icon");let{children:n,size:r,"aria-label":i,"aria-hidden":l,...a}=e,{styleProps:s}=tt(a,Wi),u=Kr(),c="M";null!==u&&(c="large"===u.scale?"L":"M"),l||(l=void 0);let d=r||c;return t(o).cloneElement(n,{...C(a),...s,focusable:"false","aria-label":i,"aria-hidden":!i||(l||void 0),role:"img",className:Me(Qr(Hi),n.props.className,"spectrum-Icon",`spectrum-Icon--size${d}`,s.className)})}function Gi(e){e=lt(e,"icon");let{children:n,"aria-label":r,"aria-hidden":i,...l}=e,{styleProps:a}=tt(l),s=Kr(),u="M";return null!==s&&(u="large"===s.scale?"L":"M"),i||(i=void 0),t(o).cloneElement(n,{...C(l),...a,scale:u,focusable:"false","aria-label":r,"aria-hidden":!r||(i||void 0),role:"img",className:Me(Qr(Hi),n.props.className,"spectrum-Icon",{[`spectrum-UIIcon-${n.type.displayName}`]:n.type.displayName},a.className)})}function Qi(e){e=lt(e,"illustration");let{children:n,"aria-label":r,"aria-labelledby":i,"aria-hidden":l,...a}=e,{styleProps:s}=tt(a),u=r||i;return l||(l=void 0),t(o).cloneElement(n,{...C(a),...s,focusable:"false","aria-label":r,"aria-labelledby":i,"aria-hidden":l,role:u?"img":void 0})}var Yi,Xi=Br(l("acw62"));Yi=function(e){return rl.default.createElement(Gi,e,rl.default.createElement(Zi.CrossSmall,null))};var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.CrossSmall=nl;var Ji=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function el(){return el=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function nl(e){var t=e.scale,n=void 0===t?"M":t,r=tl(e,["scale"]);return Ji.default.createElement("svg",el({},r,r),"L"===n&&Ji.default.createElement("path",{d:"M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z"}),"M"===n&&Ji.default.createElement("path",{d:"M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z"}))}nl.displayName="CrossSmall";var rl=Br(l("acw62"));function il(e={}){let{isReadOnly:t}=e,[n,r]=s(e.isSelected,e.defaultSelected||!1,e.onChange);return{isSelected:n,setSelected:function(e){t||r(e)},toggle:function(){t||r(!n)}}}function ll(e){return e&&e.__esModule?e.default:e}function ol(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var al,sl,ul,cl,dl,pl,fl,ml,hl,gl,yl,vl,bl,wl,El,kl,Sl,xl,Pl,Tl,_l,Cl,Il,Ml,Ll,Nl,Rl,Ol,Al,Fl={};ol(Fl,"spectrum-Button",(()=>al),(e=>al=e)),ol(Fl,"spectrum-ActionButton",(()=>sl),(e=>sl=e)),ol(Fl,"spectrum-LogicButton",(()=>ul),(e=>ul=e)),ol(Fl,"spectrum-FieldButton",(()=>cl),(e=>cl=e)),ol(Fl,"spectrum-ClearButton",(()=>dl),(e=>dl=e)),ol(Fl,"focus-ring",(()=>pl),(e=>pl=e)),ol(Fl,"spectrum-FieldButton--quiet",(()=>fl),(e=>fl=e)),ol(Fl,"spectrum-Icon",(()=>ml),(e=>ml=e)),ol(Fl,"is-hovered",(()=>hl),(e=>hl=e)),ol(Fl,"spectrum-Button-label",(()=>gl),(e=>gl=e)),ol(Fl,"spectrum-Button--iconOnly",(()=>yl),(e=>yl=e)),ol(Fl,"spectrum-ActionButton-label",(()=>vl),(e=>vl=e)),ol(Fl,"spectrum-ActionButton-hold",(()=>bl),(e=>bl=e)),ol(Fl,"spectrum-ActionButton--quiet",(()=>wl),(e=>wl=e)),ol(Fl,"is-disabled",(()=>El),(e=>El=e)),ol(Fl,"is-open",(()=>kl),(e=>kl=e)),ol(Fl,"spectrum-ClearButton--small",(()=>Sl),(e=>Sl=e)),ol(Fl,"is-active",(()=>xl),(e=>xl=e)),ol(Fl,"is-selected",(()=>Pl),(e=>Pl=e)),ol(Fl,"spectrum-ActionButton--emphasized",(()=>Tl),(e=>Tl=e)),ol(Fl,"spectrum-ActionButton--staticWhite",(()=>_l),(e=>_l=e)),ol(Fl,"spectrum-ActionButton--staticBlack",(()=>Cl),(e=>Cl=e)),ol(Fl,"spectrum-ActionButton--staticColor",(()=>Il),(e=>Il=e)),ol(Fl,"spectrum-LogicButton--and",(()=>Ml),(e=>Ml=e)),ol(Fl,"spectrum-LogicButton--or",(()=>Ll),(e=>Ll=e)),ol(Fl,"is-focused",(()=>Nl),(e=>Nl=e)),ol(Fl,"is-placeholder",(()=>Rl),(e=>Rl=e)),ol(Fl,"spectrum-FieldButton--invalid",(()=>Ol),(e=>Ol=e)),ol(Fl,"spectrum-Button--overBackground",(()=>Al),(e=>Al=e)),al="spectrum-Button_e2d99e",sl="spectrum-ActionButton_e2d99e",ul="spectrum-LogicButton_e2d99e",cl="spectrum-FieldButton_e2d99e",dl="spectrum-ClearButton_e2d99e",pl="focus-ring_e2d99e",fl="spectrum-FieldButton--quiet_e2d99e",ml="spectrum-Icon_e2d99e",hl="is-hovered_e2d99e",gl="spectrum-Button-label_e2d99e",yl="spectrum-Button--iconOnly_e2d99e",vl="spectrum-ActionButton-label_e2d99e",bl="spectrum-ActionButton-hold_e2d99e",wl="spectrum-ActionButton--quiet_e2d99e",El="is-disabled_e2d99e",kl="is-open_e2d99e",Sl="spectrum-ClearButton--small_e2d99e",xl="is-active_e2d99e",Pl="is-selected_e2d99e",Tl="spectrum-ActionButton--emphasized_e2d99e",_l="spectrum-ActionButton--staticWhite_e2d99e",Cl="spectrum-ActionButton--staticBlack_e2d99e",Il="spectrum-ActionButton--staticColor_e2d99e",Ml="spectrum-LogicButton--and_e2d99e",Ll="spectrum-LogicButton--or_e2d99e",Nl="is-focused_e2d99e",Rl="is-placeholder_e2d99e",Ol="spectrum-FieldButton--invalid_e2d99e",Al="spectrum-Button--overBackground_e2d99e";t(o).forwardRef((function(e,n){e=lt(e=Vr(e),"button");let{elementType:r="button",children:i,variant:l,style:a=("accent"===l||"cta"===l?"fill":"outline"),staticColor:s,isDisabled:u,autoFocus:c,...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn(e,p),{hoverProps:h,isHovered:g}=Jt({isDisabled:u}),{styleProps:y}=tt(d),v=st(`.${ll(Fl)["spectrum-Button-label"]}`,p),b=st(`.${ll(Fl)["spectrum-Icon"]}`,p);return"cta"===l?l="accent":"overBackground"===l&&(l="primary",s="white"),t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:c},t(o).createElement(r,{...y,...x(f,h),ref:p,"data-variant":l,"data-style":a,"data-static-color":s||void 0,className:Me(ll(Fl),"spectrum-Button",{"spectrum-Button--iconOnly":b&&!v,"is-disabled":u,"is-active":m,"is-hovered":g},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-Button-label")}}},"string"==typeof i?t(o).createElement(Ln,null,i):i)))}));let zl=t(o).forwardRef((function(e,n){e=lt(e=Vr(e),"actionButton");let{isQuiet:r,isDisabled:i,staticColor:l,children:a,autoFocus:s,holdAffordance:u,...c}=e,d=Ae(n),{buttonProps:p,isPressed:f}=Nn(e,d),{hoverProps:m,isHovered:h}=Jt({isDisabled:i}),{styleProps:g}=tt(c),y=t(o).Children.toArray(e.children).every((e=>!t(o).isValidElement(e)));return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:s},t(o).createElement("button",{...g,...x(p,m),ref:d,className:Me(ll(Fl),"spectrum-ActionButton",{"spectrum-ActionButton--quiet":r,"spectrum-ActionButton--staticColor":!!l,"spectrum-ActionButton--staticWhite":"white"===l,"spectrum-ActionButton--staticBlack":"black"===l,"is-active":f,"is-disabled":i,"is-hovered":h},g.className)},u&&t(o).createElement(Ur,{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-hold")}),t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-label")}}},"string"==typeof a||y?t(o).createElement(Ln,null,a):a)))}));let Dl=t(o).forwardRef((function(e,n){e=lt(e,"button");let{isQuiet:r,isDisabled:i,validationState:l,children:a,autoFocus:s,isActive:u,focusRingClass:c,...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn(e,p),{hoverProps:h,isHovered:g}=Jt({isDisabled:i}),{styleProps:y}=tt(d);return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring",c),autoFocus:s},t(o).createElement("button",{...x(f,h),ref:p,className:Me(ll(Fl),"spectrum-FieldButton",{"spectrum-FieldButton--quiet":r,"is-active":u||m,"is-disabled":i,"spectrum-FieldButton--invalid":"invalid"===l,"is-hovered":g},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")}}},a)))}));t(o).forwardRef((function(e,n){e=Vr(e);let{variant:r,children:i,isDisabled:l,autoFocus:a,...s}=e,u=Ae(n),{buttonProps:c,isPressed:d}=Nn(e,u),{hoverProps:p,isHovered:f}=Jt({isDisabled:l}),{styleProps:m}=tt(s);return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:a},t(o).createElement("button",{...m,...x(c,p),ref:u,className:Me(ll(Fl),"spectrum-LogicButton",{[`spectrum-LogicButton--${r}`]:r,"is-disabled":l,"is-active":d,"is-hovered":f},m.className)},t(o).createElement("span",{className:Me(ll(Fl),"spectrum-Button-label")},i)))}));t(o).forwardRef((function(e,n){let{children:r=t(o).createElement(Yi,{UNSAFE_className:ll(Fl)["spectrum-Icon"]}),focusClassName:i,variant:l,autoFocus:a,isDisabled:s,preventFocus:u,elementType:c=(u?"div":"button"),...d}=e,p=Ae(n),{buttonProps:f,isPressed:m}=Nn({...e,elementType:c},p),{hoverProps:h,isHovered:g}=Jt({isDisabled:s}),{styleProps:y}=tt(d);u&&delete f.tabIndex;let v=c;return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring",i),autoFocus:a},t(o).createElement(v,{...y,...x(f,h),ref:p,className:Me(ll(Fl),"spectrum-ClearButton",{[`spectrum-ClearButton--${l}`]:l,"is-disabled":s,"is-active":m,"is-hovered":g},y.className)},r))}));t(o).forwardRef((function(e,n){e=Vr(e);let{isQuiet:r,isDisabled:i,isEmphasized:l,staticColor:a,children:s,autoFocus:u,...c}=e,d=Ae(n),p=il(e),{buttonProps:f,isPressed:m}=Rn(e,p,d),{hoverProps:h,isHovered:g}=Jt({isDisabled:i}),{styleProps:y}=tt(c),v=t(o).Children.toArray(e.children).every((e=>!t(o).isValidElement(e)));return t(o).createElement(Cn,{focusRingClass:Me(ll(Fl),"focus-ring"),autoFocus:u},t(o).createElement("button",{...y,...x(f,h),ref:d,className:Me(ll(Fl),"spectrum-ActionButton",{"spectrum-ActionButton--quiet":r,"spectrum-ActionButton--emphasized":l,"spectrum-ActionButton--staticColor":!!a,"spectrum-ActionButton--staticWhite":"white"===a,"spectrum-ActionButton--staticBlack":"black"===a,"is-active":m,"is-disabled":i,"is-hovered":g,"is-selected":p.isSelected},y.className)},t(o).createElement(ot,{slots:{icon:{size:"S",UNSAFE_className:Me(ll(Fl),"spectrum-Icon")},text:{UNSAFE_className:Me(ll(Fl),"spectrum-ActionButton-label")}}},"string"==typeof s||v?t(o).createElement(Ln,null,s):s)))}));var Kl;Kl=function(e){return Hl.default.createElement(Gi,e,Hl.default.createElement(Vl.FolderBreadcrumb,null))};var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0}),Vl.FolderBreadcrumb=$l;var Ul=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Bl(){return Bl=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function $l(e){var t=e.scale,n=void 0===t?"M":t,r=jl(e,["scale"]);return Ul.default.createElement("svg",Bl({},r,r),"L"===n&&Ul.default.createElement("path",{d:"M19.5 6l-9.166.004-1.668-1.7A.998.998 0 0 0 7.946 4H3a1 1 0 0 0-1 1v13a.5.5 0 0 0 .5.5h17a.5.5 0 0 0 .5-.5V6.5a.5.5 0 0 0-.5-.5zm-16-.5h4.237l1.964 2H3.5zm11.544 6.044l-3.5 3.5a.77.77 0 0 1-1.088 0l-3.5-3.5a.77.77 0 0 1 1.088-1.088L11 13.41l2.956-2.955a.77.77 0 0 1 1.088 1.088z"}),"M"===n&&Ul.default.createElement("path",{d:"M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z"}))}$l.displayName="FolderBreadcrumb";var Hl=Br(l("acw62"));o=l("acw62");function Wl(e,t){if(null==e)return{};var n,r,i={},l=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function ql(e,t){return ql=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ql(e,t)}function Gl(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,ql(e,t)}o=l("acw62");var Ql={disabled:!1},Yl=t(o=l("acw62")).createContext(null),Xl=function(e){return e.scrollTop},Zl="unmounted",Jl="exited",eo="entering",to="entered",no="exiting",ro=function(e){function n(t,n){var r;r=e.call(this,t,n)||this;var i,l=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?l?(i=Jl,r.appearStatus=eo):i=to:i=t.unmountOnExit||t.mountOnEnter?Zl:Jl,r.state={status:i},r.nextCallback=null,r}Gl(n,e),n.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Zl?{status:Jl}:null};var r=n.prototype;return r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==eo&&n!==to&&(t=eo):n!==eo&&n!==to||(t=no)}this.updateStatus(!1,t)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},r.updateStatus=function(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),n===eo){if(this.props.unmountOnExit||this.props.mountOnEnter){var r=this.props.nodeRef?this.props.nodeRef.current:t(a).findDOMNode(this);r&&Xl(r)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Jl&&this.setState({status:Zl})},r.performEnter=function(e){var n=this,r=this.props.enter,i=this.context?this.context.isMounting:e,l=this.props.nodeRef?[i]:[t(a).findDOMNode(this),i],o=l[0],s=l[1],u=this.getTimeouts(),c=i?u.appear:u.enter;!e&&!r||Ql.disabled?this.safeSetState({status:to},(function(){n.props.onEntered(o)})):(this.props.onEnter(o,s),this.safeSetState({status:eo},(function(){n.props.onEntering(o,s),n.onTransitionEnd(c,(function(){n.safeSetState({status:to},(function(){n.props.onEntered(o,s)}))}))})))},r.performExit=function(){var e=this,n=this.props.exit,r=this.getTimeouts(),i=this.props.nodeRef?void 0:t(a).findDOMNode(this);n&&!Ql.disabled?(this.props.onExit(i),this.safeSetState({status:no},(function(){e.props.onExiting(i),e.onTransitionEnd(r.exit,(function(){e.safeSetState({status:Jl},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:Jl},(function(){e.props.onExited(i)}))},r.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},r.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},r.onTransitionEnd=function(e,n){this.setNextCallback(n);var r=this.props.nodeRef?this.props.nodeRef.current:t(a).findDOMNode(this),i=null==e&&!this.props.addEndListener;if(r&&!i){if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[r,this.nextCallback],o=l[0],s=l[1];this.props.addEndListener(o,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},r.render=function(){var e=this.state.status;if(e===Zl)return null;var n=this.props,r=n.children,i=(n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef,Wl(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return t(o).createElement(Yl.Provider,{value:null},"function"==typeof r?r(e,i):t(o).cloneElement(t(o).Children.only(r),i))},n}(t(o).Component);function io(){}ro.contextType=Yl,ro.propTypes={},ro.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:io,onEntering:io,onEntered:io,onExit:io,onExiting:io,onExited:io},ro.UNMOUNTED=Zl,ro.EXITED=Jl,ro.ENTERING=eo,ro.ENTERED=to,ro.EXITING=no;var lo=ro;function oo(e){return e&&e.__esModule?e.default:e}function ao(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const so={entering:!1,entered:!0};function uo(e){return t(o).createElement(lo,{timeout:{enter:0,exit:350},...e},(n=>t(o).Children.map(e.children,(e=>e&&t(o).cloneElement(e,{isOpen:!!so[n]})))))}let co=t(o).forwardRef((function(e,n){let{children:r,isOpen:i,container:l,onEnter:a,onEntering:s,onEntered:u,onExit:c,onExiting:d,onExited:p}=e,[f,m]=(0,o.useState)(!i),h=(0,o.useCallback)((()=>{m(!1),u&&u()}),[u]),g=(0,o.useCallback)((()=>{m(!0),p&&p()}),[p]);return i||!f?t(o).createElement(xr,{portalContainer:l},t(o).createElement(zr,{ref:n,UNSAFE_style:{background:"transparent",isolation:"isolate"},isDisabled:!1},t(o).createElement(uo,{in:i,appear:!0,onExit:c,onExiting:d,onExited:g,onEnter:a,onEntering:s,onEntered:h},r))):null}));var po,fo,mo,ho,go,yo,vo,bo,wo,Eo={};ao(Eo,"spectrum-Popover",(()=>po),(e=>po=e)),ao(Eo,"react-spectrum-Popover",(()=>fo),(e=>fo=e)),ao(Eo,"spectrum-Dialog-content",(()=>mo),(e=>mo=e)),ao(Eo,"spectrum-Modal-wrapper",(()=>ho),(e=>ho=e)),ao(Eo,"react-spectrum-Modal-wrapper",(()=>go),(e=>go=e)),ao(Eo,"spectrum-Modal",(()=>yo),(e=>yo=e)),ao(Eo,"react-spectrum-Modal",(()=>vo),(e=>vo=e)),ao(Eo,"spectrum-Tray",(()=>bo),(e=>bo=e)),ao(Eo,"react-spectrum-Tray",(()=>wo),(e=>wo=e)),po="spectrum-Popover_38efea",fo="react-spectrum-Popover_38efea",mo="spectrum-Dialog-content_38efea",ho="spectrum-Modal-wrapper_38efea",go="react-spectrum-Modal-wrapper_38efea",yo="spectrum-Modal_38efea",vo="react-spectrum-Modal_38efea",bo="spectrum-Tray_38efea",wo="react-spectrum-Tray_38efea";var ko,So,xo,Po,To,_o,Co,Io,Mo,Lo,No={};ao(No,"spectrum-Popover",(()=>ko),(e=>ko=e)),ao(No,"is-open",(()=>So),(e=>So=e)),ao(No,"spectrum-Popover--bottom",(()=>xo),(e=>xo=e)),ao(No,"spectrum-Popover--top",(()=>Po),(e=>Po=e)),ao(No,"spectrum-Popover--right",(()=>To),(e=>To=e)),ao(No,"spectrum-Popover--left",(()=>_o),(e=>_o=e)),ao(No,"spectrum-Popover-tip",(()=>Co),(e=>Co=e)),ao(No,"spectrum-Popover-tip-triangle",(()=>Io),(e=>Io=e)),ao(No,"spectrum-Popover--dialog",(()=>Mo),(e=>Mo=e)),ao(No,"spectrum-Popover--withTip",(()=>Lo),(e=>Lo=e)),ko="spectrum-Popover_6115b8",So="is-open_6115b8",xo="spectrum-Popover--bottom_6115b8",Po="spectrum-Popover--top_6115b8",To="spectrum-Popover--right_6115b8",_o="spectrum-Popover--left_6115b8",Co="spectrum-Popover-tip_6115b8",Io="spectrum-Popover-tip-triangle_6115b8",Mo="spectrum-Popover--dialog_6115b8",Lo="spectrum-Popover--withTip_6115b8";var Ro,Oo,Ao,Fo={};function zo({isOpen:e,isTransparent:n}){return t(o).createElement("div",{className:Me(oo(Fo),"spectrum-Underlay",{"is-open":e,"spectrum-Underlay--transparent":n})})}ao(Fo,"spectrum-Underlay",(()=>Ro),(e=>Ro=e)),ao(Fo,"is-open",(()=>Oo),(e=>Oo=e)),ao(Fo,"spectrum-Underlay--transparent",(()=>Ao),(e=>Ao=e)),Ro="spectrum-Underlay_eb7615",Oo="is-open_eb7615",Ao="spectrum-Underlay--transparent_eb7615";let Do={left:"right",right:"right",top:"bottom",bottom:"bottom"};const Ko=(0,o.forwardRef)(((e,n)=>{let{children:r,isOpen:i,hideArrow:l,isNonModal:a,state:s}=e,{styleProps:u}=tt(e),{popoverProps:c,arrowProps:d,underlayProps:p,placement:f}=kr({...e,popoverRef:n,maxHeight:null},s);return t(o).createElement(t(o).Fragment,null,!a&&t(o).createElement(zo,{isTransparent:!0,...p,isOpen:i}),t(o).createElement("div",{...u,...c,style:{...u.style,...c.style},ref:n,className:Me(oo(No),"spectrum-Popover",`spectrum-Popover--${f}`,{"spectrum-Popover--withTip":!l,"is-open":i},Me(oo(Eo),"spectrum-Popover","react-spectrum-Popover"),u.className),role:"presentation","data-testid":"popover"},!a&&t(o).createElement(vr,{onDismiss:s.close}),r,l?null:t(o).createElement(Uo,{arrowProps:d,direction:Do[f]}),t(o).createElement(vr,{onDismiss:s.close})))}));let Vo=Math.sqrt(2);function Uo(e){let[n,r]=(0,o.useState)(20),[i,l]=(0,o.useState)(1),a=(0,o.useRef)();y((()=>{if(a.current){let e=window.getComputedStyle(a.current).getPropertyValue("--spectrum-popover-tip-size");""!==e&&r(parseInt(e,10)/2);let t=window.getComputedStyle(a.current).getPropertyValue("--spectrum-popover-tip-borderWidth");""!==t&&l(parseInt(t,10))}}),[a]);let s="top"===e.direction||"bottom"===e.direction,u="left"===e.direction||"top"===e.direction,c=i*Vo,d=c/2,p=2*n+2*c,f=n+c,m=u?f:0,h=u?d:f-d,g=p/2,v=p-d,b=s?["M",d,m,"L",g,h,"L",v,m]:["M",m,d,"L",h,g,"L",m,v],w=e.arrowProps;return t(o).createElement("svg",{xmlns:"http://www.w3.org/svg/2000",width:Math.ceil(s?p:f),height:Math.ceil(s?f:p),style:e.style,className:Me(oo(No),"spectrum-Popover-tip"),ref:a,...w},t(o).createElement("path",{className:Me(oo(No),"spectrum-Popover-tip-triangle"),d:b.join(" ")}))}let Bo=(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(Ko,{ref:a,...e},r))}));var jo,$o,Ho,Wo,qo,Go,Qo={};ao(Qo,"spectrum-Modal",(()=>jo),(e=>jo=e)),ao(Qo,"is-open",(()=>$o),(e=>$o=e)),ao(Qo,"spectrum-Modal-wrapper",(()=>Ho),(e=>Ho=e)),ao(Qo,"spectrum-Modal--responsive",(()=>Wo),(e=>Wo=e)),ao(Qo,"spectrum-Modal--fullscreen",(()=>qo),(e=>qo=e)),ao(Qo,"spectrum-Modal--fullscreenTakeover",(()=>Go),(e=>Go=e)),jo="spectrum-Modal_f81956",$o="is-open_f81956",Ho="spectrum-Modal-wrapper_f81956",Wo="spectrum-Modal--responsive_f81956",qo="spectrum-Modal--fullscreen_f81956",Go="spectrum-Modal--fullscreenTakeover_f81956";let Yo={fullscreen:"fullscreen",fullscreenTakeover:"fullscreenTakeover"},Xo=(0,o.forwardRef)((function(e,n){let{type:r,children:i,state:l,isOpen:a}=e,s=Yo[r],{styleProps:u}=tt(e),{modalProps:c,underlayProps:d}=Pr(e,l,n),p=Me(oo(Qo),"spectrum-Modal-wrapper",Me(oo(Eo),"spectrum-Modal-wrapper","react-spectrum-Modal-wrapper")),f=Me(oo(Qo),"spectrum-Modal",{"is-open":a},Me(oo(Eo),"spectrum-Modal","react-spectrum-Modal"),{[`spectrum-Modal--${s}`]:s},u.className),m={"--spectrum-visual-viewport-height":j().height+"px"};return t(o).createElement(t(o).Fragment,null,t(o).createElement(zo,{...d,isOpen:a}),t(o).createElement("div",{className:p,style:m},t(o).createElement("div",{...u,...c,ref:n,className:f,"data-testid":"modal"},i)))}));(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(Xo,{...e,ref:a},r))}));var Zo,Jo,ea,ta,na={};ao(na,"spectrum-Tray",(()=>Zo),(e=>Zo=e)),ao(na,"is-open",(()=>Jo),(e=>Jo=e)),ao(na,"spectrum-Tray-wrapper",(()=>ea),(e=>ea=e)),ao(na,"spectrum-Tray--fixedHeight",(()=>ta),(e=>ta=e)),Zo="spectrum-Tray_23bf66",Jo="is-open_23bf66",ea="spectrum-Tray-wrapper_23bf66",ta="spectrum-Tray--fixedHeight_23bf66";let ra=(0,o.forwardRef)((function(e,n){let{children:r,isOpen:i,isFixedHeight:l,state:a}=e,{styleProps:s}=tt(e),{modalProps:u,underlayProps:c}=Pr({...e,isDismissable:!0},a,n),d={"--spectrum-visual-viewport-height":j().height+"px"},p=Me(oo(na),"spectrum-Tray-wrapper"),f=Me(oo(na),"spectrum-Tray",{"is-open":i,"spectrum-Tray--fixedHeight":l},Me(oo(Eo),"spectrum-Tray","react-spectrum-Tray"),s.className);return t(o).createElement(t(o).Fragment,null,t(o).createElement(zo,{...c,isOpen:i}),t(o).createElement("div",{className:p,style:d},t(o).createElement("div",{...s,...u,className:f,ref:n,"data-testid":"tray"},t(o).createElement(vr,{onDismiss:a.close}),r,t(o).createElement(vr,{onDismiss:a.close}))))})),ia=(0,o.forwardRef)((function(e,n){let{children:r,state:i,...l}=e,a=Oe(n);return t(o).createElement(co,{...l,isOpen:i.isOpen},t(o).createElement(ra,{...e,ref:a},r))}));o=l("acw62"),o=l("acw62");function la(e){return Y()||X()?e.altKey:e.ctrlKey}function oa(e){return Y()?e.metaKey:e.ctrlKey}function aa(e){let{keyboardDelegate:t,selectionManager:n,onTypeSelect:r}=e,i=(0,o.useRef)({search:"",timeout:null}).current;return{typeSelectProps:{onKeyDownCapture:t.getKeyForSearch?e=>{let l=function(e){return 1!==e.length&&/^[A-Z]/i.test(e)?"":e}(e.key);if(!l||e.ctrlKey||e.metaKey)return;" "===l&&i.search.trim().length>0&&(e.preventDefault(),"continuePropagation"in e||e.stopPropagation()),i.search+=l;let o=t.getKeyForSearch(i.search,n.focusedKey);null==o&&(o=t.getKeyForSearch(i.search)),null!=o&&(n.setFocusedKey(o),r&&r(o)),clearTimeout(i.timeout),i.timeout=setTimeout((()=>{i.search=""}),1e3)}:null}}}function sa(e){let{selectionManager:t,keyboardDelegate:n,ref:r,autoFocus:i=!1,shouldFocusWrap:l=!1,disallowEmptySelection:a=!1,disallowSelectAll:s=!1,selectOnFocus:u="replace"===t.selectionBehavior,disallowTypeAhead:c=!1,shouldUseVirtualFocus:d,allowsTabNavigation:p=!1,isVirtualized:f,scrollRef:m=r}=e,{direction:h}=Se(),g=(0,o.useRef)({top:0,left:0});J(m,"scroll",f?null:()=>{g.current={top:m.current.scrollTop,left:m.current.scrollLeft}});const y=(0,o.useRef)(i);(0,o.useEffect)((()=>{if(y.current){let e=null;"first"===i&&(e=n.getFirstKey()),"last"===i&&(e=n.getLastKey());let l=t.selectedKeys;l.size&&(e=l.values().next().value),t.setFocused(!0),t.setFocusedKey(e),null!=e||d||an(r.current)}y.current=!1}),[]),(0,o.useEffect)((()=>{if(!f&&t.focusedKey&&(null==m?void 0:m.current)){let e=m.current.querySelector(`[data-key="${t.focusedKey}"]`);e&&ee(m.current,e)}}),[f,m,t.focusedKey]);let v,b={onKeyDown:e=>{if(e.altKey&&"Tab"===e.key&&e.preventDefault(),!r.current.contains(e.target))return;const i=(n,r)=>{null!=n&&(t.setFocusedKey(n,r),e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(n):u&&!la(e)&&t.replaceSelection(n))};switch(e.key){case"ArrowDown":if(n.getKeyBelow){var o,c;e.preventDefault();let r=null!=t.focusedKey?n.getKeyBelow(t.focusedKey):null===(o=n.getFirstKey)||void 0===o?void 0:o.call(n);null==r&&l&&(r=null===(c=n.getFirstKey)||void 0===c?void 0:c.call(n,t.focusedKey)),i(r)}break;case"ArrowUp":if(n.getKeyAbove){var d,f;e.preventDefault();let r=null!=t.focusedKey?n.getKeyAbove(t.focusedKey):null===(d=n.getLastKey)||void 0===d?void 0:d.call(n);null==r&&l&&(r=null===(f=n.getLastKey)||void 0===f?void 0:f.call(n,t.focusedKey)),i(r)}break;case"ArrowLeft":if(n.getKeyLeftOf){e.preventDefault(),i(n.getKeyLeftOf(t.focusedKey),"rtl"===h?"first":"last")}break;case"ArrowRight":if(n.getKeyRightOf){e.preventDefault(),i(n.getKeyRightOf(t.focusedKey),"rtl"===h?"last":"first")}break;case"Home":if(n.getFirstKey){e.preventDefault();let r=n.getFirstKey(t.focusedKey,oa(e));t.setFocusedKey(r),oa(e)&&e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(r):u&&t.replaceSelection(r)}break;case"End":if(n.getLastKey){e.preventDefault();let r=n.getLastKey(t.focusedKey,oa(e));t.setFocusedKey(r),oa(e)&&e.shiftKey&&"multiple"===t.selectionMode?t.extendSelection(r):u&&t.replaceSelection(r)}break;case"PageDown":if(n.getKeyPageBelow){e.preventDefault(),i(n.getKeyPageBelow(t.focusedKey))}break;case"PageUp":if(n.getKeyPageAbove){e.preventDefault(),i(n.getKeyPageAbove(t.focusedKey))}break;case"a":oa(e)&&"multiple"===t.selectionMode&&!0!==s&&(e.preventDefault(),t.selectAll());break;case"Escape":e.preventDefault(),a||t.clearSelection();break;case"Tab":if(!p){if(e.shiftKey)r.current.focus();else{let e,t,n=Sn(r.current,{tabbable:!0});do{t=n.lastChild(),t&&(e=t)}while(t);e&&!e.contains(document.activeElement)&&I(e)}break}}},onFocus:e=>{if(t.isFocused)e.currentTarget.contains(e.target)||t.setFocused(!1);else if(e.currentTarget.contains(e.target))if(t.setFocused(!0),null==t.focusedKey){let l=e=>{null!=e&&(t.setFocusedKey(e),u&&t.replaceSelection(e))},o=e.relatedTarget;var r,i;o&&e.currentTarget.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING?l(null!==(r=t.lastSelectedKey)&&void 0!==r?r:n.getLastKey()):l(null!==(i=t.firstSelectedKey)&&void 0!==i?i:n.getFirstKey())}else if(!f){m.current.scrollTop=g.current.top,m.current.scrollLeft=g.current.left;let e=m.current.querySelector(`[data-key="${t.focusedKey}"]`);e&&(I(e),ee(m.current,e))}},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||t.setFocused(!1)},onMouseDown(e){m.current===e.target&&e.preventDefault()}},{typeSelectProps:w}=aa({keyboardDelegate:n,selectionManager:t});return c||(b=x(w,b)),d||(v=null==t.focusedKey?0:-1),{collectionProps:{...b,tabIndex:v}}}function ua(e){let{selectionManager:t,key:n,ref:r,shouldSelectOnPressUp:i,isVirtualized:l,shouldUseVirtualFocus:a,focus:s,isDisabled:u,onAction:c,allowsDifferentPressOrigin:d}=e,p=e=>{if("keyboard"===e.pointerType&&la(e))t.toggleSelection(n);else{if("none"===t.selectionMode)return;"single"===t.selectionMode?t.isSelected(n)&&!t.disallowEmptySelection?t.toggleSelection(n):t.replaceSelection(n):e&&e.shiftKey?t.extendSelection(n):"toggle"===t.selectionBehavior||e&&(oa(e)||"touch"===e.pointerType||"virtual"===e.pointerType)?t.toggleSelection(n):t.replaceSelection(n)}};(0,o.useEffect)((()=>{n===t.focusedKey&&t.isFocused&&!a&&document.activeElement!==r.current&&(s?s():an(r.current))}),[r,n,t.focusedKey,t.childFocusStrategy,t.isFocused,a]),u=u||t.isDisabled(n);let f={};a||u?u&&(f.onMouseDown=e=>{e.preventDefault()}):f={tabIndex:n===t.focusedKey?0:-1,onFocus(e){e.target===r.current&&t.setFocusedKey(n)}};let m=!u&&t.canSelectItem(n),h=c&&!u,g=h&&("replace"===t.selectionBehavior?!m:t.isEmpty),y=h&&m&&"replace"===t.selectionBehavior,v=g||y,b=(0,o.useRef)(null),w=v&&m,E=(0,o.useRef)(!1),k=(0,o.useRef)(!1),S={};i?(S.onPressStart=e=>{b.current=e.pointerType,E.current=w,"keyboard"!==e.pointerType||v&&!da()||p(e)},d?(S.onPressUp=e=>{"keyboard"!==e.pointerType&&p(e)},S.onPress=g?()=>c():null):S.onPress=e=>{if(g||y&&"mouse"!==e.pointerType){if("keyboard"===e.pointerType&&!ca())return;c()}else"keyboard"!==e.pointerType&&p(e)}):(S.onPressStart=e=>{b.current=e.pointerType,E.current=w,k.current=g,("mouse"===e.pointerType&&!g||"keyboard"===e.pointerType&&(!c||da()))&&p(e)},S.onPress=e=>{("touch"===e.pointerType||"pen"===e.pointerType||"virtual"===e.pointerType||"keyboard"===e.pointerType&&v&&ca()||"mouse"===e.pointerType&&k.current)&&(v?c():p(e))}),l||(f["data-key"]=n),S.preventFocusOnPress=a;let{pressProps:P,isPressed:T}=gt(S),_=y?e=>{"mouse"===b.current&&(e.stopPropagation(),e.preventDefault(),c())}:void 0,{longPressProps:C}=on({isDisabled:!w,onLongPress(e){"touch"===e.pointerType&&(p(e),t.setSelectionBehavior("toggle"))}});return{itemProps:x(f,m||g?P:{},w?C:{},{onDoubleClick:_,onDragStartCapture:e=>{"touch"===b.current&&E.current&&e.preventDefault()}}),isPressed:T,isSelected:t.isSelected(n),isDisabled:u,allowsSelection:m,hasAction:v}}function ca(){let e=window.event;return"Enter"===(null==e?void 0:e.key)}function da(){let e=window.event;return" "===(null==e?void 0:e.key)||"Space"===(null==e?void 0:e.code)}class pa{getKeyBelow(e){for(e=this.collection.getKeyAfter(e);null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyAfter(e)}}getKeyAbove(e){for(e=this.collection.getKeyBefore(e);null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyBefore(e)}}getFirstKey(){let e=this.collection.getFirstKey();for(;null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyAfter(e)}}getLastKey(){let e=this.collection.getLastKey();for(;null!=e;){if("item"===this.collection.getItem(e).type&&!this.disabledKeys.has(e))return e;e=this.collection.getKeyBefore(e)}}getItem(e){return this.ref.current.querySelector(`[data-key="${e}"]`)}getKeyPageAbove(e){let t=this.ref.current,n=this.getItem(e);if(!n)return null;let r=Math.max(0,n.offsetTop+n.offsetHeight-t.offsetHeight);for(;n&&n.offsetTop>r;)e=this.getKeyAbove(e),n=this.getItem(e);return e}getKeyPageBelow(e){let t=this.ref.current,n=this.getItem(e);if(!n)return null;let r=Math.min(t.scrollHeight,n.offsetTop-n.offsetHeight+t.offsetHeight);for(;n&&n.offsetTopl||new pa(n,"selection"===g?new Set:r,i,h)),[l,n,r,i,h,g]),{collectionProps:v}=sa({ref:i,selectionManager:t,keyboardDelegate:y,autoFocus:a,shouldFocusWrap:s,disallowEmptySelection:c,selectOnFocus:d,disallowTypeAhead:p,shouldUseVirtualFocus:f,allowsTabNavigation:m,isVirtualized:u,scrollRef:i});return{listProps:v}}o=l("acw62");function ma(e){return null}function ha(e){return null!=e.hasChildItems?e.hasChildItems:!!e.childItems||!!(e.title&&t(o).Children.count(e.children)>0)}ma.getCollectionNode=function*(e,n){let{childItems:r,title:i,children:l}=e,a=e.title||e.children,s=e.textValue||("string"==typeof a?a:"")||e["aria-label"]||"";s||(null==n?void 0:n.suppressTextValueWarning)||console.warn(" with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop."),yield{type:"item",props:e,rendered:a,textValue:s,"aria-label":e["aria-label"],hasChildNodes:ha(e),*childNodes(){if(r)for(let e of r)yield{type:"item",value:e};else if(i){let e=[];t(o).Children.forEach(l,(t=>{e.push({type:"item",element:t})})),yield*e}}}};let ga=ma;function ya(e){return null}ya.getCollectionNode=function*(e){let{children:n,title:r,items:i}=e;yield{type:"section",props:e,hasChildNodes:!0,rendered:r,"aria-label":e["aria-label"],*childNodes(){if("function"==typeof n){if(!i)throw new Error("props.children was a function but props.items is missing");for(let e of i)yield{type:"item",value:e,renderer:n}}else{let e=[];t(o).Children.forEach(n,(t=>{e.push({type:"item",element:t})})),yield*e}}}};class va{build(e,t){return this.context=t,ba((()=>this.iterateCollection(e)))}*iterateCollection(e){let{children:n,items:r}=e;if("function"==typeof n){if(!r)throw new Error("props.children was a function but props.items is missing");for(let t of e.items)yield*this.getFullNode({value:t},{renderer:n})}else{let e=[];t(o).Children.forEach(n,(t=>{e.push(t)}));let r=0;for(let t of e){let e=this.getFullNode({element:t,index:r},{});for(let t of e)r++,yield t}}}getKey(e,t,n,r){if(null!=e.key)return e.key;if("cell"===t.type&&null!=t.key)return`${r}${t.key}`;let i=t.value;if(null!=i){var l;let e=null!==(l=i.key)&&void 0!==l?l:i.id;if(null==e)throw new Error("No key found for item");return e}return r?`${r}.${t.index}`:`$.${t.index}`}getChildState(e,t){return{renderer:t.renderer||e.renderer}}*getFullNode(e,n,r,i){let l=e.element;if(!l&&e.value&&n&&n.renderer){let t=this.cache.get(e.value);if(t&&(!t.shouldInvalidate||!t.shouldInvalidate(this.context)))return t.index=e.index,t.parentKey=i?i.key:null,void(yield t);l=n.renderer(e.value)}if(t(o).isValidElement(l)){let t=l.type;if("function"!=typeof t&&"function"!=typeof t.getCollectionNode){let e="function"==typeof l.type?l.type.name:l.type;throw new Error(`Unknown element <${e}> in collection.`)}let o=t.getCollectionNode(l.props,this.context),a=e.index,s=o.next();for(;!s.done&&s.value;){let t=s.value;e.index=a;let u=t.key;u||(u=t.element?null:this.getKey(l,e,n,r));let c=[...this.getFullNode({...t,key:u,index:a,wrapper:wa(e.wrapper,t.wrapper)},this.getChildState(n,t),r?`${r}${l.key}`:l.key,i)];for(let n of c){if(n.value=t.value||e.value,n.value&&this.cache.set(n.value,n),e.type&&n.type!==e.type)throw new Error(`Unsupported type <${Ea(n.type)}> in <${Ea(i.type)}>. Only <${Ea(e.type)}> is supported.`);a++,yield n}s=o.next(c)}return}if(null==e.key)return;let a=this,s={type:e.type,props:e.props,key:e.key,parentKey:i?i.key:null,value:e.value,level:i?i.level+1:0,index:e.index,rendered:e.rendered,textValue:e.textValue,"aria-label":e["aria-label"],wrapper:e.wrapper,shouldInvalidate:e.shouldInvalidate,hasChildNodes:e.hasChildNodes,childNodes:ba((function*(){if(!e.hasChildNodes)return;let t=0;for(let r of e.childNodes()){null!=r.key&&(r.key=`${s.key}${r.key}`),r.index=t;let e=a.getFullNode(r,a.getChildState(n,r),s.key,s);for(let n of e)t++,yield n}}))};yield s}constructor(){ae(this,"cache",new WeakMap)}}function ba(e){let t=[],n=null;return{*[Symbol.iterator](){for(let e of t)yield e;n||(n=e());for(let e of n)t.push(e),yield e}}}function wa(e,t){return e&&t?n=>e(t(n)):e||(t||void 0)}function Ea(e){return e[0].toUpperCase()+e.slice(1)}function ka(e,t,n,r=[]){let i=(0,o.useMemo)((()=>new va),[]),l=(0,o.useRef)(null);return(0,o.useMemo)((()=>{let r=i.build(e,n);return l.current=t(r,l.current),l.current}),[i,e.children,e.items,n,...r])}const Sa=new WeakMap;function xa(e){let t=Sa.get(e);if(null!=t)return t;t=0;for(let n of e)"section"===n.type?t+=xa(n.childNodes):t++;return Sa.set(e,t),t}function Pa(e){return e&&e.__esModule?e.default:e}var Ta;function _a(e,t,n){let{type:r="menu",isDisabled:i,trigger:l="press"}=e,o=w(),{triggerProps:a,overlayProps:s}=ir({type:r},t,n),u=Pe(Pa(Ta)),{longPressProps:c}=on({isDisabled:i||"longPress"!==l,accessibilityDescription:u.format("longPressMessage"),onLongPressStart(){t.close()},onLongPress(){t.open("first")}}),d={onPressStart(e){"touch"===e.pointerType||"keyboard"===e.pointerType||i||t.toggle("virtual"===e.pointerType?"first":null)},onPress(e){"touch"!==e.pointerType||i||t.toggle()}};return delete a.onPress,{menuTriggerProps:{...a,..."press"===l?d:c,id:o,onKeyDown:e=>{if(!i&&("longPress"!==l||e.altKey)&&n&&n.current)switch(e.key){case"Enter":case" ":if("longPress"===l)return;case"ArrowDown":"continuePropagation"in e||e.stopPropagation(),e.preventDefault(),t.toggle("first");break;case"ArrowUp":"continuePropagation"in e||e.stopPropagation(),e.preventDefault(),t.toggle("last")}}},menuProps:{...s,"aria-labelledby":o,autoFocus:t.focusStrategy||!0,onClose:t.close}}}Ta={"ar-AE":{longPressMessage:"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة"},"bg-BG":{longPressMessage:"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто"},"cs-CZ":{longPressMessage:"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku"},"da-DK":{longPressMessage:"Langt tryk eller tryk på Alt + pil ned for at åbne menuen"},"de-DE":{longPressMessage:"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen"},"el-GR":{longPressMessage:"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού"},"en-US":{longPressMessage:"Long press or press Alt + ArrowDown to open menu"},"es-ES":{longPressMessage:"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú"},"et-EE":{longPressMessage:"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool"},"fi-FI":{longPressMessage:"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli"},"fr-FR":{longPressMessage:"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu."},"he-IL":{longPressMessage:"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט"},"hr-HR":{longPressMessage:"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika"},"hu-HU":{longPressMessage:"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához"},"it-IT":{longPressMessage:"Premere a lungo o premere Alt + Freccia giù per aprire il menu"},"ja-JP":{longPressMessage:"長押しまたは Alt+下矢印キーでメニューを開く"},"ko-KR":{longPressMessage:"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기"},"lt-LT":{longPressMessage:"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“."},"lv-LV":{longPressMessage:"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa"},"nb-NO":{longPressMessage:"Langt trykk eller trykk Alt + PilNed for å åpne menyen"},"nl-NL":{longPressMessage:"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen"},"pl-PL":{longPressMessage:"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu"},"pt-BR":{longPressMessage:"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu"},"pt-PT":{longPressMessage:"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu"},"ro-RO":{longPressMessage:"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul"},"ru-RU":{longPressMessage:"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню"},"sk-SK":{longPressMessage:"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol"},"sl-SI":{longPressMessage:"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol"},"sr-SP":{longPressMessage:"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni"},"sv-SE":{longPressMessage:"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn"},"tr-TR":{longPressMessage:"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın"},"uk-UA":{longPressMessage:"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню"},"zh-CN":{longPressMessage:"长按或按 Alt + 向下方向键以打开菜单"},"zh-TW":{longPressMessage:"長按或按 Alt+向下鍵以開啟功能表"}};const Ca=new WeakMap;function Ia(e,t,n){let{shouldFocusWrap:r=!0,...i}=e;e["aria-label"]||e["aria-labelledby"]||console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let l=C(e,{labelable:!0}),{listProps:o}=fa({...i,ref:n,selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys,shouldFocusWrap:r});return Ca.set(t,{onClose:e.onClose,onAction:e.onAction}),{menuProps:x(l,{role:"menu",...o})}}function Ma(e,t,n){let{key:r,closeOnSelect:i,isVirtualized:l}=e;var o;let a=null!==(o=e.isDisabled)&&void 0!==o?o:t.disabledKeys.has(r);var s;let u=null!==(s=e.isSelected)&&void 0!==s?s:t.selectionManager.isSelected(r),c=t.selectionManager.focusedKey===r,d=Ca.get(t),p=e.onClose||d.onClose,f=e.onAction||d.onAction,m="menuitem";"single"===t.selectionManager.selectionMode?m="menuitemradio":"multiple"===t.selectionManager.selectionMode&&(m="menuitemcheckbox");let h=k(),g=k(),y=k(),v={"aria-disabled":a,role:m,"aria-label":e["aria-label"],"aria-labelledby":h,"aria-describedby":[g,y].filter(Boolean).join(" ")||void 0};"none"!==t.selectionManager.selectionMode&&(v["aria-checked"]=u),l&&(v["aria-posinset"]=t.collection.getItem(r).index,v["aria-setsize"]=xa(t.collection));let{itemProps:b}=ua({selectionManager:t.selectionManager,key:r,ref:n,shouldSelectOnPressUp:!0,allowsDifferentPressOrigin:!0}),{pressProps:w,isPressed:E}=gt({onPressStart:e=>{"keyboard"===e.pointerType&&f&&f(r)},onPressUp:e=>{"keyboard"!==e.pointerType&&(f&&f(r),p&&(null!=i?i:"multiple"!==t.selectionManager.selectionMode)&&p())},isDisabled:a}),{hoverProps:S}=Jt({isDisabled:a,onHoverStart(){jt()||(t.selectionManager.setFocused(!0),t.selectionManager.setFocusedKey(r))}});return{menuItemProps:{...v,...x(b,w,S,{onKeyDown:e=>{if(!e.repeat)switch(e.key){case" ":!a&&"none"===t.selectionManager.selectionMode&&!1!==i&&p&&p();break;case"Enter":!a&&!1!==i&&p&&p()}}})},labelProps:{id:h},descriptionProps:{id:g},keyboardShortcutProps:{id:y},isFocused:c,isSelected:u,isPressed:E,isDisabled:a}}function La(e){let{heading:t,"aria-label":n}=e,r=w();return{itemProps:{role:"presentation"},headingProps:t?{id:r,"aria-hidden":!0}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":t?r:void 0}}}function Na(e){let[t,n]=s(e.isOpen,e.defaultOpen||!1,e.onOpenChange);return{isOpen:t,setOpen:n,open(){n(!0)},close(){n(!1)},toggle(){n(!t)}}}o=l("acw62");function Ra(e){let t=Na(e),[n,r]=(0,o.useState)(null);return{focusStrategy:n,...t,open(e=null){r(e),t.open()},toggle(e=null){r(e),t.toggle()}}}o=l("acw62"),o=l("acw62");class Oa extends Set{constructor(e,t,n){super(e),e instanceof Oa?(this.anchorKey=t||e.anchorKey,this.currentKey=n||e.currentKey):(this.anchorKey=t,this.currentKey=n)}}function Aa(e){let{selectionMode:t="none",disallowEmptySelection:n,allowDuplicateSelectionEvents:r,selectionBehavior:i="toggle",disabledBehavior:l="all"}=e,a=(0,o.useRef)(!1),[,u]=(0,o.useState)(!1),c=(0,o.useRef)(null),d=(0,o.useRef)(null),[,p]=(0,o.useState)(null),f=(0,o.useMemo)((()=>Fa(e.selectedKeys)),[e.selectedKeys]),m=(0,o.useMemo)((()=>Fa(e.defaultSelectedKeys,new Oa)),[e.defaultSelectedKeys]),[h,g]=s(f,m,e.onSelectionChange),y=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),[v,b]=(0,o.useState)(i);"replace"===i&&"toggle"===v&&"object"==typeof h&&0===h.size&&b("replace");let w=(0,o.useRef)(i);return(0,o.useEffect)((()=>{i!==w.current&&(b(i),w.current=i)}),[i]),{selectionMode:t,disallowEmptySelection:n,selectionBehavior:v,setSelectionBehavior:b,get isFocused(){return a.current},setFocused(e){a.current=e,u(e)},get focusedKey(){return c.current},get childFocusStrategy(){return d.current},setFocusedKey(e,t="first"){c.current=e,d.current=t,p(e)},selectedKeys:h,setSelectedKeys(e){!r&&function(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}(e,h)||g(e)},disabledKeys:y,disabledBehavior:l}}function Fa(e,t){return e?"all"===e?"all":new Oa(e):t}class za{get selectionMode(){return this.state.selectionMode}get disallowEmptySelection(){return this.state.disallowEmptySelection}get selectionBehavior(){return this.state.selectionBehavior}setSelectionBehavior(e){this.state.setSelectionBehavior(e)}get isFocused(){return this.state.isFocused}setFocused(e){this.state.setFocused(e)}get focusedKey(){return this.state.focusedKey}get childFocusStrategy(){return this.state.childFocusStrategy}setFocusedKey(e,t){(null==e||this.collection.getItem(e))&&this.state.setFocusedKey(e,t)}get selectedKeys(){return"all"===this.state.selectedKeys?new Set(this.getSelectAllKeys()):this.state.selectedKeys}get rawSelection(){return this.state.selectedKeys}isSelected(e){return"none"!==this.state.selectionMode&&(e=this.getKey(e),"all"===this.state.selectedKeys?this.canSelectItem(e):this.state.selectedKeys.has(e))}get isEmpty(){return"all"!==this.state.selectedKeys&&0===this.state.selectedKeys.size}get isSelectAll(){if(this.isEmpty)return!1;if("all"===this.state.selectedKeys)return!0;if(null!=this._isSelectAll)return this._isSelectAll;let e=this.getSelectAllKeys(),t=this.state.selectedKeys;return this._isSelectAll=e.every((e=>t.has(e))),this._isSelectAll}get firstSelectedKey(){let e=null;for(let t of this.state.selectedKeys){let n=this.collection.getItem(t);(!e||(null==n?void 0:n.index)e.index)&&(e=n)}return null==e?void 0:e.key}get disabledKeys(){return this.state.disabledKeys}get disabledBehavior(){return this.state.disabledBehavior}extendSelection(e){if("none"===this.selectionMode)return;if("single"===this.selectionMode)return void this.replaceSelection(e);let t;if(e=this.getKey(e),"all"===this.state.selectedKeys)t=new Oa([e],e,e);else{let n=this.state.selectedKeys,r=n.anchorKey||e;t=new Oa(n,r,e);for(let i of this.getKeyRange(r,n.currentKey||e))t.delete(i);for(let n of this.getKeyRange(e,r))this.canSelectItem(n)&&t.add(n)}this.state.setSelectedKeys(t)}getKeyRange(e,t){let n=this.collection.getItem(e),r=this.collection.getItem(t);return n&&r?n.index<=r.index?this.getKeyRangeInternal(e,t):this.getKeyRangeInternal(t,e):[]}getKeyRangeInternal(e,t){let n=[],r=e;for(;r;){let e=this.collection.getItem(r);if((e&&"item"===e.type||"cell"===e.type&&this.allowsCellSelection)&&n.push(r),r===t)return n;r=this.collection.getKeyAfter(r)}return[]}getKey(e){let t=this.collection.getItem(e);if(!t)return e;if("cell"===t.type&&this.allowsCellSelection)return e;for(;"item"!==t.type&&null!=t.parentKey;)t=this.collection.getItem(t.parentKey);return t&&"item"===t.type?t.key:null}toggleSelection(e){if("none"===this.selectionMode)return;if("single"===this.selectionMode&&!this.isSelected(e))return void this.replaceSelection(e);if(null==(e=this.getKey(e)))return;let t=new Oa("all"===this.state.selectedKeys?this.getSelectAllKeys():this.state.selectedKeys);t.has(e)?t.delete(e):this.canSelectItem(e)&&(t.add(e),t.anchorKey=e,t.currentKey=e),this.disallowEmptySelection&&0===t.size||this.state.setSelectedKeys(t)}replaceSelection(e){if("none"===this.selectionMode)return;if(null==(e=this.getKey(e)))return;let t=this.canSelectItem(e)?new Oa([e],e,e):new Oa;this.state.setSelectedKeys(t)}setSelectedKeys(e){if("none"===this.selectionMode)return;let t=new Oa;for(let n of e)if(n=this.getKey(n),null!=n&&(t.add(n),"single"===this.selectionMode))break;this.state.setSelectedKeys(t)}getSelectAllKeys(){let e=[],t=n=>{for(;n;){if(this.canSelectItem(n)){let r=this.collection.getItem(n);"item"===r.type&&e.push(n),r.hasChildNodes&&(this.allowsCellSelection||"item"!==r.type)&&t([...r.childNodes][0].key)}n=this.collection.getKeyAfter(n)}};return t(this.collection.getFirstKey()),e}selectAll(){"multiple"===this.selectionMode&&this.state.setSelectedKeys("all")}clearSelection(){!this.disallowEmptySelection&&("all"===this.state.selectedKeys||this.state.selectedKeys.size>0)&&this.state.setSelectedKeys(new Oa)}toggleSelectAll(){this.isSelectAll?this.clearSelection():this.selectAll()}select(e,t){"none"!==this.selectionMode&&("single"===this.selectionMode?this.isSelected(e)&&!this.disallowEmptySelection?this.toggleSelection(e):this.replaceSelection(e):"toggle"===this.selectionBehavior||t&&("touch"===t.pointerType||"virtual"===t.pointerType)?this.toggleSelection(e):this.replaceSelection(e))}isSelectionEqual(e){if(e===this.state.selectedKeys)return!0;let t=this.selectedKeys;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;for(let n of t)if(!e.has(n))return!1;return!0}canSelectItem(e){if("none"===this.state.selectionMode||this.state.disabledKeys.has(e))return!1;let t=this.collection.getItem(e);return!(!t||"cell"===t.type&&!this.allowsCellSelection)}isDisabled(e){return this.state.disabledKeys.has(e)&&"all"===this.state.disabledBehavior}constructor(e,t,n){var r;this.collection=e,this.state=t,this.allowsCellSelection=null!==(r=null==n?void 0:n.allowsCellSelection)&&void 0!==r&&r,this._isSelectAll=null}}let Da=Symbol.iterator;class Ka{*[Da](){yield*this.iterable}get size(){return this.keyMap.size}getKeys(){return this.keyMap.keys()}getKeyBefore(e){let t=this.keyMap.get(e);return t?t.prevKey:null}getKeyAfter(e){let t=this.keyMap.get(e);return t?t.nextKey:null}getFirstKey(){return this.firstKey}getLastKey(){return this.lastKey}getItem(e){return this.keyMap.get(e)}at(e){const t=[...this.getKeys()];return this.getItem(t[e])}constructor(e,{expandedKeys:t}={}){ae(this,"keyMap",new Map),this.iterable=e,t=t||new Set;let n,r=e=>{if(this.keyMap.set(e.key,e),e.childNodes&&("section"===e.type||t.has(e.key)))for(let t of e.childNodes)r(t)};for(let t of e)r(t);let i=0;for(let[e,t]of this.keyMap)n?(n.nextKey=e,t.prevKey=n.key):(this.firstKey=e,t.prevKey=void 0),"item"===t.type&&(t.index=i++),n=t,n.nextKey=void 0;this.lastKey=null==n?void 0:n.key}}function Va(e){let[t,n]=s(e.expandedKeys?new Set(e.expandedKeys):void 0,e.defaultExpandedKeys?new Set(e.defaultExpandedKeys):new Set,e.onExpandedChange),r=Aa(e),i=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),l=ka(e,(e=>new Ka(e,{expandedKeys:t})),null,[t]);(0,o.useEffect)((()=>{null==r.focusedKey||l.getItem(r.focusedKey)||r.setFocusedKey(null)}),[l,r.focusedKey]);return{collection:l,expandedKeys:t,disabledKeys:i,toggleKey:e=>{n(function(e,t){let n=new Set(e);n.has(t)?n.delete(t):n.add(t);return n}(t,e))},selectionManager:new za(l,r)}}var Ua;Ua=function(e){return qa.default.createElement(Gi,e,qa.default.createElement(Ba.CheckmarkMedium,null))};var Ba={};Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.CheckmarkMedium=Wa;var ja=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function $a(){return $a=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Wa(e){var t=e.scale,n=void 0===t?"M":t,r=Ha(e,["scale"]);return ja.default.createElement("svg",$a({},r,r),"L"===n&&ja.default.createElement("path",{d:"M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z"}),"M"===n&&ja.default.createElement("path",{d:"M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z"}))}Wa.displayName="CheckmarkMedium";var qa=Br(l("acw62"));o=l("acw62");function Ga(e){return e&&e.__esModule?e.default:e}function Qa(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const Ya={...Ue,autoFlow:["gridAutoFlow",nt],autoColumns:["gridAutoColumns",Xa],autoRows:["gridAutoRows",Xa],areas:["gridTemplateAreas",function(e){return e.map((e=>`"${e}"`)).join("\n")}],columns:["gridTemplateColumns",Za],rows:["gridTemplateRows",Za],gap:["gap",Ge],rowGap:["rowGap",Ge],columnGap:["columnGap",Ge],justifyItems:["justifyItems",nt],justifyContent:["justifyContent",nt],alignItems:["alignItems",nt],alignContent:["alignContent",nt]};function Xa(e){return/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(e)?e:Ge(e)}function Za(e){return Array.isArray(e)?e.map(Xa).join(" "):Xa(e)}const Ja=(0,o.forwardRef)((function(e,n){let{children:r,...i}=e,{styleProps:l}=tt(i,Ya);l.style.display="grid";let a=Oe(n);return t(o).createElement("div",{...C(i),...l,ref:a},r)}));var es,ts,ns,rs={};Qa(rs,"flex-container",(()=>es),(e=>es=e)),Qa(rs,"flex",(()=>ts),(e=>ts=e)),Qa(rs,"flex-gap",(()=>ns),(e=>ns=e)),es="flex-container_e15493",ts="flex_e15493",ns="flex-gap_e15493";const is={direction:["flexDirection",nt],wrap:["flexWrap",function(e){return"boolean"==typeof e?e?"wrap":"nowrap":e}],justifyContent:["justifyContent",ls],alignItems:["alignItems",ls],alignContent:["alignContent",ls]};function ls(e){return"start"===e?"flex-start":"end"===e?"flex-end":e}let os=null;const as=(0,o.forwardRef)((function(e,n){let{children:r,...i}=e,l=Ve(),a=(null==l?void 0:l.matchedBreakpoints)||["base"],{styleProps:s}=tt(i),{styleProps:u}=tt(i,is),c=Oe(n),d=m();if((e.gap||e.rowGap||e.columnGap)&&(d||!function(){if(null!=os)return os;if("undefined"==typeof document)return!1;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),os=1===e.scrollHeight,e.parentNode.removeChild(e),os}())){let n={...u.style,"--column-gap":null!=e.columnGap?Qe(e.columnGap,a):void 0,"--row-gap":null!=e.rowGap?Qe(e.rowGap,a):void 0,"--gap":null!=e.gap?Qe(e.gap,a):void 0};return t(o).createElement("div",{...C(i),...s,className:Me(Ga(rs),"flex-container",s.className),ref:c},t(o).createElement("div",{className:Me(Ga(rs),"flex","flex-gap"),style:n},r))}let p={...s.style,...u.style};return null!=e.gap&&(p.gap=Qe(e.gap,a)),null!=e.columnGap&&(p.columnGap=Qe(e.columnGap,a)),null!=e.rowGap&&(p.rowGap=Qe(e.rowGap,a)),t(o).createElement("div",{...C(i),className:Me(Ga(rs),"flex",s.className),style:p,ref:c},r)}));function ss(e){let t,n=C(e,{labelable:!0});return"vertical"===e.orientation&&(t="vertical"),"hr"!==e.elementType?{separatorProps:{...n,role:"separator","aria-orientation":t}}:{separatorProps:n}}var us;us=function(e){return fs.default.createElement(qi,e,fs.default.createElement(cs.A4uMore,null))};var cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.A4uMore=function(e){var t=ps({},e);return ds.default.createElement("svg",ps({viewBox:"0 0 36 36"},t,t),ds.default.createElement("circle",{fillRule:"evenodd",cx:"17.8",cy:"18.2",r:"3.4"}),ds.default.createElement("circle",{fillRule:"evenodd",cx:"29.5",cy:"18.2",r:"3.4"}),ds.default.createElement("circle",{fillRule:"evenodd",cx:"6.1",cy:"18.2",r:"3.4"}))};var ds=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function ps(){return ps=Object.assign||function(e){for(var t=1;tys),(e=>ys=e)),hs(Us,"spectrum-Menu",(()=>vs),(e=>vs=e)),hs(Us,"spectrum-Menu-sectionHeading",(()=>bs),(e=>bs=e)),hs(Us,"spectrum-Menu-checkmark",(()=>ws),(e=>ws=e)),hs(Us,"spectrum-Menu-item",(()=>Es),(e=>Es=e)),hs(Us,"is-selected",(()=>ks),(e=>ks=e)),hs(Us,"spectrum-Icon",(()=>Ss),(e=>Ss=e)),hs(Us,"spectrum-Menu-itemLabel",(()=>xs),(e=>xs=e)),hs(Us,"spectrum-Menu-itemIcon",(()=>Ps),(e=>Ps=e)),hs(Us,"spectrum-Menu-itemLabel--wrapping",(()=>Ts),(e=>Ts=e)),hs(Us,"spectrum-Menu-divider",(()=>_s),(e=>_s=e)),hs(Us,"spectrum-Menu-itemGrid",(()=>Cs),(e=>Cs=e)),hs(Us,"is-selectable",(()=>Is),(e=>Is=e)),hs(Us,"spectrum-Menu-end",(()=>Ms),(e=>Ms=e)),hs(Us,"spectrum-Menu-icon",(()=>Ls),(e=>Ls=e)),hs(Us,"spectrum-Menu-description",(()=>Ns),(e=>Ns=e)),hs(Us,"spectrum-Menu-keyboard",(()=>Rs),(e=>Rs=e)),hs(Us,"focus-ring",(()=>Os),(e=>Os=e)),hs(Us,"is-focused",(()=>As),(e=>As=e)),hs(Us,"is-hovered",(()=>Fs),(e=>Fs=e)),hs(Us,"is-highlighted",(()=>zs),(e=>zs=e)),hs(Us,"is-open",(()=>Ds),(e=>Ds=e)),hs(Us,"is-active",(()=>Ks),(e=>Ks=e)),hs(Us,"is-disabled",(()=>Vs),(e=>Vs=e)),ys="spectrum-Menu-popover_7ea47c",vs="spectrum-Menu_7ea47c",bs="spectrum-Menu-sectionHeading_7ea47c",ws="spectrum-Menu-checkmark_7ea47c",Es="spectrum-Menu-item_7ea47c",ks="is-selected_7ea47c",Ss="spectrum-Icon_7ea47c",xs="spectrum-Menu-itemLabel_7ea47c",Ps="spectrum-Menu-itemIcon_7ea47c",Ts="spectrum-Menu-itemLabel--wrapping_7ea47c",_s="spectrum-Menu-divider_7ea47c",Cs="spectrum-Menu-itemGrid_7ea47c",Is="is-selectable_7ea47c",Ms="spectrum-Menu-end_7ea47c",Ls="spectrum-Menu-icon_7ea47c",Ns="spectrum-Menu-description_7ea47c",Rs="spectrum-Menu-keyboard_7ea47c",Os="focus-ring_7ea47c",As="is-focused_7ea47c",Fs="is-hovered_7ea47c",zs="is-highlighted_7ea47c",Ds="is-open_7ea47c",Ks="is-active_7ea47c",Vs="is-disabled_7ea47c";let Bs=(0,o.forwardRef)((function(e,n){let r,i=(0,o.useRef)(),l=Oe(n)||i,a=(0,o.useRef)(),{children:s,align:u="start",shouldFlip:c=!0,direction:d="bottom",closeOnSelect:p,trigger:f="press"}=e,[m,h]=t(o).Children.toArray(s),g=Ra(e),{menuTriggerProps:y,menuProps:v}=_a({trigger:f},g,l);switch(d){case"left":case"right":case"start":case"end":r=`${d} ${"end"===u?"bottom":"top"}`;break;default:r=`${d} ${u}`}let b,w=ut(),E={...v,ref:a,onClose:g.close,closeOnSelect:p,autoFocus:g.focusStrategy||!0,UNSAFE_style:w?{width:"100%",maxHeight:"inherit"}:void 0,UNSAFE_className:Me(ms(Us),{"spectrum-Menu-popover":!w})};return b=w?t(o).createElement(ia,{state:g},h):t(o).createElement(Bo,{state:g,triggerRef:l,scrollRef:a,placement:r,hideArrow:!0,shouldFlip:c},h),t(o).createElement(o.Fragment,null,t(o).createElement(ot,{slots:{actionButton:{holdAffordance:"longPress"===f}}},t(o).createElement(Tt,{...y,ref:l,isPressed:g.isOpen},m)),t(o).createElement(gs.Provider,{value:E},b))}));function js(e){let{item:n,state:r,isVirtualized:i,onAction:l}=e,{onClose:a,closeOnSelect:s}=(0,o.useContext)(gs),{rendered:u,key:c}=n,d=r.selectionManager.isSelected(c),p=r.disabledKeys.has(c),f=(0,o.useRef)(),{menuItemProps:m,labelProps:h,descriptionProps:g,keyboardShortcutProps:y}=Ma({isSelected:d,isDisabled:p,"aria-label":n["aria-label"],key:c,onClose:a,closeOnSelect:s,isVirtualized:i,onAction:l},r,f),{hoverProps:v,isHovered:b}=Jt({isDisabled:p}),w="string"==typeof u?t(o).createElement(Ln,null,u):u;return t(o).createElement(Cn,{focusRingClass:Me(ms(Us),"focus-ring")},t(o).createElement("li",{...x(m,v),ref:f,className:Me(ms(Us),"spectrum-Menu-item",{"is-disabled":p,"is-selected":d,"is-selectable":"none"!==r.selectionManager.selectionMode,"is-hovered":b})},t(o).createElement(Ja,{UNSAFE_className:Me(ms(Us),"spectrum-Menu-itemGrid")},t(o).createElement(at,null,t(o).createElement(ot,{slots:{text:{UNSAFE_className:ms(Us)["spectrum-Menu-itemLabel"],...h},end:{UNSAFE_className:ms(Us)["spectrum-Menu-end"],...g},icon:{UNSAFE_className:ms(Us)["spectrum-Menu-icon"],size:"S"},description:{UNSAFE_className:ms(Us)["spectrum-Menu-description"],...g},keyboard:{UNSAFE_className:ms(Us)["spectrum-Menu-keyboard"],...y}}},w,d&&t(o).createElement(Ua,{slot:"checkmark",UNSAFE_className:Me(ms(Us),"spectrum-Menu-checkmark")}))))))}function $s(e){let{item:n,state:r,onAction:i}=e,{itemProps:l,headingProps:a,groupProps:s}=La({heading:n.rendered,"aria-label":n["aria-label"]}),{separatorProps:u}=ss({elementType:"li"});return t(o).createElement(o.Fragment,null,n.key!==r.collection.getFirstKey()&&t(o).createElement("li",{...u,className:Me(ms(Us),"spectrum-Menu-divider")}),t(o).createElement("li",l,n.rendered&&t(o).createElement("span",{...a,className:Me(ms(Us),"spectrum-Menu-sectionHeading")},n.rendered),t(o).createElement("ul",{...s,className:Me(ms(Us),"spectrum-Menu")},[...n.childNodes].map((e=>{let n=t(o).createElement(js,{key:e.key,item:e,state:r,onAction:i});return e.wrapper&&(n=e.wrapper(n)),n})))))}const Hs=t(o).forwardRef((function(e,n){let r=(0,o.useContext)(gs),i={...x(r,e)},l=Oe(n),a=Va(i),{menuProps:s}=Ia(i,a,l),{styleProps:u}=tt(i);return K(r,l),t(o).createElement("ul",{...s,...u,ref:l,className:Me(ms(Us),"spectrum-Menu",u.className)},[...a.collection].map((e=>{if("section"===e.type)return t(o).createElement($s,{key:e.key,item:e,state:a,onAction:i.onAction});let n=t(o).createElement(js,{key:e.key,item:e,state:a,onAction:i.onAction});return e.wrapper&&(n=e.wrapper(n)),n})))}));var Ws;Ws={"ar-AE":{moreActions:"المزيد من الإجراءات"},"bg-BG":{moreActions:"Повече действия"},"cs-CZ":{moreActions:"Další akce"},"da-DK":{moreActions:"Flere handlinger"},"de-DE":{moreActions:"Mehr Aktionen"},"el-GR":{moreActions:"Περισσότερες ενέργειες"},"en-US":{moreActions:"More actions"},"es-ES":{moreActions:"Más acciones"},"et-EE":{moreActions:"Veel toiminguid"},"fi-FI":{moreActions:"Lisää toimintoja"},"fr-FR":{moreActions:"Autres actions"},"he-IL":{moreActions:"פעולות נוספות"},"hr-HR":{moreActions:"Dodatne radnje"},"hu-HU":{moreActions:"További lehetőségek"},"it-IT":{moreActions:"Altre azioni"},"ja-JP":{moreActions:"その他のアクション"},"ko-KR":{moreActions:"기타 작업"},"lt-LT":{moreActions:"Daugiau veiksmų"},"lv-LV":{moreActions:"Citas darbības"},"nb-NO":{moreActions:"Flere handlinger"},"nl-NL":{moreActions:"Meer handelingen"},"pl-PL":{moreActions:"Więcej akcji"},"pt-BR":{moreActions:"Mais ações"},"pt-PT":{moreActions:"Mais ações"},"ro-RO":{moreActions:"Mai multe acțiuni"},"ru-RU":{moreActions:"Дополнительные действия"},"sk-SK":{moreActions:"Ďalšie akcie"},"sl-SI":{moreActions:"Več možnosti"},"sr-SP":{moreActions:"Dodatne radnje"},"sv-SE":{moreActions:"Fler åtgärder"},"tr-TR":{moreActions:"Daha fazla eylem"},"uk-UA":{moreActions:"Більше дій"},"zh-CN":{moreActions:"更多操作"},"zh-TW":{moreActions:"更多動作"}};(0,o.forwardRef)((function(e,n){e=lt(e,"actionMenu");let r=Pe(ms(Ws)),i=C(e,{labelable:!0});return void 0===i["aria-label"]&&(i["aria-label"]=r.format("moreActions")),t(o).createElement(Bs,{isOpen:e.isOpen,defaultOpen:e.defaultOpen,onOpenChange:e.onOpenChange,align:e.align,direction:e.direction,shouldFlip:e.shouldFlip},t(o).createElement(zl,{ref:n,...e,...i},t(o).createElement(us,null)),t(o).createElement(Hs,{children:e.children,items:e.items,disabledKeys:e.disabledKeys,onAction:e.onAction}))}));o=l("acw62");function qs(e,t){let n,{elementType:r="a",onPress:i,onPressStart:l,onPressEnd:o,onClick:a,isDisabled:s,...u}=e;"a"!==r&&(n={role:"link",tabIndex:s?void 0:0});let{focusableProps:c}=Mn(e,t),{pressProps:d,isPressed:p}=gt({onPress:i,onPressStart:l,onPressEnd:o,isDisabled:s,ref:t}),f=C(u,{labelable:!0}),m=x(c,d);return{isPressed:p,linkProps:x(f,{...m,...n,"aria-disabled":s||void 0,onClick:e=>{d.onClick(e),a&&(a(e),console.warn("onClick is deprecated, please use onPress"))}})}}function Gs(e){return e&&e.__esModule?e.default:e}function Qs(e,t){let{isCurrent:n,isDisabled:r,"aria-current":i,elementType:l="a",...o}=e,{linkProps:a}=qs({isDisabled:r||n,elementType:l,...o},t),s={};return/^h[1-6]$/.test(l)||(s=a),n&&(s["aria-current"]=i||"page",s.tabIndex=e.autoFocus?-1:void 0),{itemProps:{"aria-disabled":r,...s}}}var Ys,Xs;function Zs(e){let{"aria-label":t,...n}=e,r=Pe(Gs(Ys));return{navProps:{...C(n,{labelable:!0}),"aria-label":t||r.format("breadcrumbs")}}}Ys={"ar-AE":{breadcrumbs:"عناصر الواجهة"},"bg-BG":{breadcrumbs:"Трохи хляб"},"cs-CZ":{breadcrumbs:"Popis cesty"},"da-DK":{breadcrumbs:"Brødkrummer"},"de-DE":{breadcrumbs:"Breadcrumbs"},"el-GR":{breadcrumbs:"Πλοηγήσεις breadcrumb"},"en-US":{breadcrumbs:"Breadcrumbs"},"es-ES":{breadcrumbs:"Migas de pan"},"et-EE":{breadcrumbs:"Lingiread"},"fi-FI":{breadcrumbs:"Navigointilinkit"},"fr-FR":{breadcrumbs:"Chemin de navigation"},"he-IL":{breadcrumbs:"שבילי ניווט"},"hr-HR":{breadcrumbs:"Navigacijski putovi"},"hu-HU":{breadcrumbs:"Morzsamenü"},"it-IT":{breadcrumbs:"Breadcrumb"},"ja-JP":{breadcrumbs:"パンくずリスト"},"ko-KR":{breadcrumbs:"탐색 표시"},"lt-LT":{breadcrumbs:"Naršymo kelias"},"lv-LV":{breadcrumbs:"Atpakaļceļi"},"nb-NO":{breadcrumbs:"Navigasjonsstier"},"nl-NL":{breadcrumbs:"Broodkruimels"},"pl-PL":{breadcrumbs:"Struktura nawigacyjna"},"pt-BR":{breadcrumbs:"Caminho detalhado"},"pt-PT":{breadcrumbs:"Categorias"},"ro-RO":{breadcrumbs:"Miez de pâine"},"ru-RU":{breadcrumbs:"Навигация"},"sk-SK":{breadcrumbs:"Navigačné prvky Breadcrumbs"},"sl-SI":{breadcrumbs:"Drobtine"},"sr-SP":{breadcrumbs:"Putanje navigacije"},"sv-SE":{breadcrumbs:"Sökvägar"},"tr-TR":{breadcrumbs:"İçerik haritaları"},"uk-UA":{breadcrumbs:"Навігаційна стежка"},"zh-CN":{breadcrumbs:"导航栏"},"zh-TW":{breadcrumbs:"導覽列"}},Xs=function(e){return iu.default.createElement(Gi,e,iu.default.createElement(Js.ChevronRightSmall,null))};var Js={};Object.defineProperty(Js,"__esModule",{value:!0}),Js.ChevronRightSmall=ru;var eu=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function tu(){return tu=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ru(e){var t=e.scale,n=void 0===t?"M":t,r=nu(e,["scale"]);return eu.default.createElement("svg",tu({},r,r),"L"===n&&eu.default.createElement("path",{d:"M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z"}),"M"===n&&eu.default.createElement("path",{d:"M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z"}))}ru.displayName="ChevronRightSmall";var iu=Br(l("acw62"));function lu(e){return e&&e.__esModule?e.default:e}function ou(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var au,su,uu,cu,du,pu,fu,mu,hu,gu,yu,vu,bu,wu,Eu,ku,Su={};function xu(e){let{children:n,isCurrent:r,isDisabled:i}=e,{direction:l}=Se(),a=(0,o.useRef)(),{itemProps:s}=Qs({...e,elementType:"string"==typeof n?"span":"a"},a),{hoverProps:u,isHovered:c}=Jt(e),d=t(o).cloneElement(Le(n),{...x(s,u),ref:a,className:Me(lu(Su),"spectrum-Breadcrumbs-itemLink",{"is-disabled":!r&&i,"is-hovered":c})});return t(o).createElement(o.Fragment,null,t(o).createElement(Cn,{focusRingClass:Me(lu(Su),"focus-ring")},d),!1===r&&t(o).createElement(Xs,{UNSAFE_className:Me(lu(Su),"spectrum-Breadcrumbs-itemSeparator",{"is-reversed":"rtl"===l})}))}ou(Su,"spectrum-Breadcrumbs",(()=>au),(e=>au=e)),ou(Su,"spectrum-Breadcrumbs-itemSeparator",(()=>su),(e=>su=e)),ou(Su,"is-reversed",(()=>uu),(e=>uu=e)),ou(Su,"spectrum-Breadcrumbs-item",(()=>cu),(e=>cu=e)),ou(Su,"spectrum-ActionButton",(()=>du),(e=>du=e)),ou(Su,"spectrum-Breadcrumbs-itemLink",(()=>pu),(e=>pu=e)),ou(Su,"is-hovered",(()=>fu),(e=>fu=e)),ou(Su,"focus-ring",(()=>mu),(e=>mu=e)),ou(Su,"is-dragged",(()=>hu),(e=>hu=e)),ou(Su,"spectrum-Breadcrumbs--small",(()=>gu),(e=>gu=e)),ou(Su,"spectrum-Breadcrumbs--medium",(()=>yu),(e=>yu=e)),ou(Su,"spectrum-Breadcrumbs--multiline",(()=>vu),(e=>vu=e)),ou(Su,"spectrum-Heading--pageTitle",(()=>bu),(e=>bu=e)),ou(Su,"is-disabled",(()=>wu),(e=>wu=e)),ou(Su,"is-selected",(()=>Eu),(e=>Eu=e)),ou(Su,"spectrum-Breadcrumb",(()=>ku),(e=>ku=e)),au="spectrum-Breadcrumbs_3fe6e8",su="spectrum-Breadcrumbs-itemSeparator_3fe6e8",uu="is-reversed_3fe6e8",cu="spectrum-Breadcrumbs-item_3fe6e8",du="spectrum-ActionButton_3fe6e8",pu="spectrum-Breadcrumbs-itemLink_3fe6e8",fu="is-hovered_3fe6e8",mu="focus-ring_3fe6e8",hu="is-dragged_3fe6e8",gu="spectrum-Breadcrumbs--small_3fe6e8",yu="spectrum-Breadcrumbs--medium_3fe6e8",vu="spectrum-Breadcrumbs--multiline_3fe6e8",bu="spectrum-Heading--pageTitle_3fe6e8",wu="is-disabled_3fe6e8",Eu="is-selected_3fe6e8",ku="spectrum-Breadcrumb_3fe6e8";let Pu=t(o).forwardRef((function(e,n){e=Vr(e);let{size:r="L",isMultiline:i,children:l,showRoot:a,isDisabled:s,onAction:u,autoFocusCurrent:c,...d}=e,p=[];t(o).Children.forEach(l,(e=>{t(o).isValidElement(e)&&p.push(e)}));let f=Oe(n),m=(0,o.useRef)(null),[h,g]=v(p.length),{navProps:b}=Zs(e),{styleProps:w}=tt(d),E=(0,o.useCallback)((()=>{let e=e=>{let t=m.current;if(!t)return;let n=Array.from(t.children),r=t.offsetWidth,l=p.length>e,o=0,s=0,u=4;if(a&&(o+=n.shift().offsetWidth,s++),l&&(o+=n.shift().offsetWidth,u--),a&&o>=r&&s--,i)n.pop(),s++;else if(n.length>0){let e=n.pop();e.style.overflow="visible",o+=e.offsetWidth,o1&&(yield e(t))}))}),[p.length,g,a,i]);D({ref:f,onResize:E}),y(E,[l]);let k=p;if(p.length>h){var S;let e=null!==(S=p[p.length-1].key)&&void 0!==S?S:p.length-1,n=t=>{t!==e&&u&&u(t)};k=[t(o).createElement(xu,{key:"menu"},t(o).createElement(Bs,null,t(o).createElement(zl,{"aria-label":"…",isQuiet:!0,isDisabled:s},t(o).createElement(Kl,null)),t(o).createElement(Hs,{selectionMode:"single",selectedKeys:[e],onAction:n},p)))];let r=[...p],i=h;a&&h>1&&(k.unshift(r.shift()),i--),k.push(...r.slice(-i))}let x=k.length-1,P=k.map(((e,n)=>{let r=n===x;var i;let l=null!==(i=e.key)&&void 0!==i?i:n;return t(o).createElement("li",{key:n,className:Me(lu(Su),"spectrum-Breadcrumbs-item")},t(o).createElement(xu,{key:l,isCurrent:r,isDisabled:s,onPress:()=>{u&&u(l)},autoFocus:r&&c},e.props.children))}));return t(o).createElement("nav",{...w,...b,ref:f},t(o).createElement("ul",{ref:m,className:Me(lu(Su),"spectrum-Breadcrumbs",{"spectrum-Breadcrumbs--small":"S"===r,"spectrum-Breadcrumbs--medium":"M"===r,"spectrum-Breadcrumbs--multiline":i,"spectrum-Breadcrumbs--showRoot":a,"is-disabled":s},w.className)},P))}));function Tu(e){return e&&e.__esModule?e.default:e}function _u(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Cu,Iu={};_u(Iu,"spectrum--darkest",(()=>Cu),(e=>Cu=e)),Cu="spectrum--darkest_256eeb";var Mu,Lu,Nu,Ru,Ou,Au,Fu,zu={};_u(zu,"spectrum",(()=>Mu),(e=>Mu=e)),_u(zu,"spectrum--medium",(()=>Lu),(e=>Lu=e)),_u(zu,"spectrum--large",(()=>Nu),(e=>Nu=e)),_u(zu,"spectrum--darkest",(()=>Ru),(e=>Ru=e)),_u(zu,"spectrum--dark",(()=>Ou),(e=>Ou=e)),_u(zu,"spectrum--light",(()=>Au),(e=>Au=e)),_u(zu,"spectrum--lightest",(()=>Fu),(e=>Fu=e)),Mu="spectrum_9e130c",Lu="spectrum--medium_9e130c",Nu="spectrum--large_9e130c",Ru="spectrum--darkest_9e130c",Ou="spectrum--dark_9e130c",Au="spectrum--light_9e130c",Fu="spectrum--lightest_9e130c";var Du,Ku={};_u(Ku,"spectrum--large",(()=>Du),(e=>Du=e)),Du="spectrum--large_c40598";var Vu,Uu={};_u(Uu,"spectrum--light",(()=>Vu),(e=>Vu=e)),Vu="spectrum--light_a40724";var Bu,ju={};_u(ju,"spectrum--medium",(()=>Bu),(e=>Bu=e)),Bu="spectrum--medium_4b172c";let $u={global:Tu(zu),light:Tu(Uu),dark:Tu(Iu),medium:Tu(ju),large:Tu(Ku)};o=l("acw62");function Hu(e){return e&&e.__esModule?e.default:e}var Wu,qu,Gu,Qu,Yu,Xu={};Wu=Xu,qu="spectrum-Image-img",Gu=()=>Yu,Qu=e=>Yu=e,Object.defineProperty(Wu,qu,{get:Gu,set:Qu,enumerable:!0,configurable:!0}),Yu="spectrum-Image-img_fdc794";const Zu=t(o).forwardRef((function(e,n){let r=e.alt;e=Vr(e=lt(e,"image"));let{objectFit:i,src:l,alt:a,...s}=e,{styleProps:u}=tt(s),c=Oe(n);return null==a&&console.warn('The `alt` prop was not provided to an image. Add `alt` text for screen readers, or set `alt=""` prop to indicate that the image is decorative or redundant with displayed text and should not be announced by screen readers.'),t(o).createElement("div",{...C(e),...u,className:Me(Hu(Xu),u.className),style:{...u.style,overflow:"hidden"},ref:c},t(o).createElement("img",{src:l,alt:r||a,style:{objectFit:i},className:Me(Hu(Xu),"spectrum-Image-img")}))}));o=l("acw62");class Ju{shouldInvalidate(e,t){return e.width!==t.width||e.height!==t.height}validate(e){}getInitialLayoutInfo(e){return e}getFinalLayoutInfo(e){return e}}class ec{copy(){let e=new ec(this.type,this.key,this.rect.copy());return e.estimatedSize=this.estimatedSize,e.opacity=this.opacity,e.transform=this.transform,e.parentKey=this.parentKey,e.isSticky=this.isSticky,e.zIndex=this.zIndex,e.allowOverflow=this.allowOverflow,e}constructor(e,t,n){this.type=e,this.key=t,this.parentKey=null,this.rect=n,this.estimatedSize=!1,this.isSticky=!1,this.opacity=1,this.transform=null,this.zIndex=0,this.allowOverflow=!1}}class tc{copy(){return new tc(this.x,this.y)}equals(e){return this.x===e.x&&this.y===e.y}isOrigin(){return 0===this.x&&0===this.y}constructor(e=0,t=0){this.x=e,this.y=t}}class nc{get maxX(){return this.x+this.width}get maxY(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new tc(this.x,this.y)}get topRight(){return new tc(this.maxX,this.y)}get bottomLeft(){return new tc(this.x,this.maxY)}get bottomRight(){return new tc(this.maxX,this.maxY)}intersects(e){return this.x<=e.x+e.width&&e.x<=this.x+this.width&&this.y<=e.y+e.height&&e.y<=this.y+this.height}containsRect(e){return this.x<=e.x&&this.y<=e.y&&this.maxX>=e.maxX&&this.maxY>=e.maxY}containsPoint(e){return this.x<=e.x&&this.y<=e.y&&this.maxX>=e.x&&this.maxY>=e.y}getCornerInRect(e){for(let t of["topLeft","topRight","bottomLeft","bottomRight"])if(e.containsPoint(this[t]))return t;return null}equals(e){return e.x===this.x&&e.y===this.y&&e.width===this.width&&e.height===this.height}pointEquals(e){return this.x===e.x&&this.y===e.y}sizeEquals(e){return this.width===e.width&&this.height===e.height}union(e){let t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),r=Math.max(this.maxX,e.maxX)-t,i=Math.max(this.maxY,e.maxY)-n;return new nc(t,n,r,i)}intersection(e){if(!this.intersects(e))return new nc(0,0,0,0);let t=Math.max(this.x,e.x),n=Math.max(this.y,e.y);return new nc(t,n,Math.min(this.maxX,e.maxX)-t,Math.min(this.maxY,e.maxY)-n)}copy(){return new nc(this.x,this.y,this.width,this.height)}constructor(e=0,t=0,n=0,r=0){this.x=e,this.y=t,this.width=n,this.height=r}}class rc{copy(){return new rc(this.width,this.height)}equals(e){return this.width===e.width&&this.height===e.height}get area(){return this.width*this.height}constructor(e=0,t=0){this.width=e,this.height=t}}let ic=0;class lc{prepareForReuse(){this.content=null,this.rendered=null,this.layoutInfo=null}constructor(e){this.virtualizer=e,this.key=++ic}}let oc,ac="undefined"!=typeof window?window.performance:null,sc=ac&&(ac.now||ac.webkitNow||ac.msNow||ac.mozNow),uc=sc?sc.bind(ac):function(){return Date.now?Date.now():(new Date).getTime()};function cc(e){return Math.sin(e*Math.PI/2)}function dc(e,t){let n=new Set;for(let r of e.keys())t.has(r)||n.add(r);return n}class pc{addSample(e){this.count++,this.value+=(e-this.value)/this.count}constructor(){ae(this,"count",0),ae(this,"value",0)}}class fc{setVisibleRect(e){let t=performance.now()-this.startTime;t<500&&(this.averageTime.addSample(t),e.x!==this.visibleRect.x&&t>0&&(this.velocity.x=(e.x-this.visibleRect.x)/t),e.y!==this.visibleRect.y&&t>0&&(this.velocity.y=(e.y-this.visibleRect.y)/t)),this.startTime=performance.now(),this.visibleRect=e}collectMetrics(){let e=performance.now()-this.startTime;if(e<500&&this.averagePerf.addSample(e),this.visibleRect.height>0){let e=Math.abs(this.velocity.y*(this.averageTime.value+this.averagePerf.value));this.overscanY.addSample(e)}if(this.visibleRect.width>0){let e=Math.abs(this.velocity.x*(this.averageTime.value+this.averagePerf.value));this.overscanX.addSample(e)}}getOverscannedRect(){let e=this.visibleRect.copy(),t=100*Math.round(Math.min(2*this.visibleRect.height,this.overscanY.value)/100);this.velocity.y>0?(e.y-=.2*t,e.height+=t+.2*t):(e.y-=t,e.height+=t+.2*t);let n=100*Math.round(Math.min(2*this.visibleRect.width,this.overscanX.value)/100);return this.velocity.x>0?(e.x-=.2*n,e.width+=n+.2*n):(e.x-=n,e.width+=n+.2*n),e}constructor(){ae(this,"startTime",0),ae(this,"averagePerf",new pc),ae(this,"averageTime",new pc),ae(this,"velocity",new tc(5,5)),ae(this,"overscanX",new pc),ae(this,"overscanY",new pc),ae(this,"visibleRect",new nc)}}class mc{constructor(){ae(this,"level",0),ae(this,"actions",[]),ae(this,"animated",!0),ae(this,"initialMap",new Map),ae(this,"finalMap",new Map),ae(this,"initialLayoutInfo",new Map),ae(this,"finalLayoutInfo",new Map),ae(this,"removed",new Map),ae(this,"toRemove",new Map)}}class hc{_setContentSize(e){this._contentSize=e,this.delegate.setContentSize(e)}_setContentOffset(e){let t=new nc(e.x,e.y,this._visibleRect.width,this._visibleRect.height);this.delegate.setVisibleRect(t)}get contentSize(){return this._contentSize}get visibleRect(){return this._visibleRect}set visibleRect(e){this._setVisibleRect(e)}_setVisibleRect(e,t=!1){let n=this._visibleRect;if(e.equals(n))return;this.shouldOverscan&&this._overscanManager.setVisibleRect(e);let r=this.layout&&this.layout.shouldInvalidate(e,this._visibleRect);this._resetAnimatedContentOffset(),this._visibleRect=e,r?this.relayout({offsetChanged:!e.pointEquals(n),sizeChanged:!e.sizeEquals(n)}):this.updateSubviews(t)}get collection(){return this._collection}set collection(e){this._setData(e)}_setData(e){e!==this._collection&&(this._collection?this._runTransaction((()=>{this._collection=e}),this.transitionDuration>0):(this._collection=e,this.reloadData()))}reloadData(){this.relayout({contentChanged:!0})}getItem(e){return this._collection?this._collection.getItem(e):null}get persistedKeys(){return this._persistedKeys}set persistedKeys(e){(function(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0})(e,this._persistedKeys)||(this._persistedKeys=e,this.updateSubviews())}isPersistedKey(e){if(this._persistedKeys.has(e))return!0;for(let t of this._persistedKeys)for(;null!=t;){let n=this.layout.getLayoutInfo(t);if(!n)break;if(t=n.parentKey,t===e)return!0}return!1}get layout(){return this._layout}set layout(e){this.setLayout(e)}setLayout(e,t=!1){if(e===this._layout)return;let n=()=>{this._layout&&(this._layout.virtualizer=null),e.virtualizer=this,this._layout=e};t?this._runTransaction(n):(n(),this.relayout())}_getReuseType(e,t){if("item"===e.type&&t){let n=this.delegate.getType?this.delegate.getType(t):"item";return{type:n,reuseType:"item"===n?"item":e.type+"_"+n}}return{type:e.type,reuseType:e.type}}getReusableView(e){let t=this.getItem(e.key),{reuseType:n}=this._getReuseType(e,t);this._reusableViews[n]||(this._reusableViews[n]=[]);let r=this._reusableViews[n],i=r.length>0?r.pop():new lc(this);return i.viewType=n,this._animatedContentOffset.isOrigin()||((e=e.copy()).rect.x+=this._animatedContentOffset.x,e.rect.y+=this._animatedContentOffset.y),i.layoutInfo=e,this._renderView(i),i}_renderView(e){let{type:t,key:n}=e.layoutInfo;e.content=this.getItem(n),e.rendered=this._renderContent(t,e.content)}_renderContent(e,t){let n=this._renderedContent.get(t);if(null!=n)return n;let r=this.delegate.renderView(e,t);return t&&this._renderedContent.set(t,r),r}get visibleViews(){return Array.from(this._visibleViews.values())}getView(e){return this._visibleViews.get(e)||null}getViewsOfType(e){return this.visibleViews.filter((t=>t.layoutInfo&&t.layoutInfo.type===e))}keyForView(e){return e&&e.layoutInfo?e.layoutInfo.key:null}keyAtPoint(e){let t=new nc(e.x,e.y,1,1),n=this.layout.getVisibleLayoutInfos(t);for(let e of n)if(e.rect.intersects(t))return e.key;return null}willUnmount(){cancelAnimationFrame(this._relayoutRaf)}relayout(e={}){this._scrollAnimation||"undefined"==typeof requestAnimationFrame||(this._invalidationContext?Object.assign(this._invalidationContext,e):(this._invalidationContext=e,this._relayoutRaf=requestAnimationFrame((()=>{this._relayoutRaf=null,this.relayoutNow()}))))}relayoutNow(e=this._invalidationContext||{}){if(this._relayoutRaf&&(cancelAnimationFrame(this._relayoutRaf),this._relayoutRaf=null,e={...this._invalidationContext,...e}),this._invalidationContext=null,!this.layout||!this._collection||this._scrollAnimation)return;let t=this._getScrollAnchor();"function"==typeof e.beforeLayout&&e.beforeLayout(),this.layout.validate(e),this._setContentSize(this.layout.getContentSize()),"function"==typeof e.afterLayout&&e.afterLayout();let n=this.getVisibleRect(),r=this._restoreScrollAnchor(t,e),i=e.contentChanged?0:r.x,l=e.contentChanged?0:r.y;i=Math.max(0,Math.min(this.contentSize.width-n.width,i)),l=Math.max(0,Math.min(this.contentSize.height-n.height,l));let o=!1;if(i!==n.x||l!==n.y?e.animated||!this._animatedContentOffset.isOrigin()?(this._animatedContentOffset.x+=n.x-i,this._animatedContentOffset.y+=n.y-l,o=this.updateSubviews(e.contentChanged)):this._setContentOffset(new tc(i,l)):o=this.updateSubviews(e.contentChanged),e.transaction&&e.animated||this._applyLayoutInfos(),e.animated&&o){return this._enableTransitions(),void setTimeout((()=>{if(this._disableTransitions(),!this._animatedContentOffset.isOrigin()){let{x:e,y:t}=this.getVisibleRect();this._resetAnimatedContentOffset(),this._setContentOffset(new tc(e,t))}"function"==typeof e.afterAnimation&&e.afterAnimation()}),this.transitionDuration+100)}"function"==typeof e.afterAnimation&&e.afterAnimation()}_correctItemOrder(){if(!this._isScrolling&&!this._transaction)for(let e of this._visibleLayoutInfos.keys()){let t=this._visibleViews.get(e);this._children.delete(t),this._children.add(t)}}_enableTransitions(){this.delegate.beginAnimations()}_disableTransitions(){this.delegate.endAnimations()}_getScrollAnchor(){if(!this.anchorScrollPosition)return null;let e=this.getVisibleRect();if(this.delegate.getScrollAnchor){let t=this.delegate.getScrollAnchor(e);if(null!=t){let n=this.layout.getLayoutInfo(t),r=n.rect.getCornerInRect(e);if(r){return{key:n.key,layoutInfo:n,corner:r,offset:n.rect[r].y-e.y}}}}if(0===e.y&&!this.anchorScrollPositionAtTop)return null;let t=null;for(let[n,r]of this._visibleViews){let i=r.layoutInfo;if(i&&i.rect.area>0){let r=i.rect.getCornerInRect(e);if(r){let l=i.rect[r].y-e.y;(!t||l0||n.size>0||this._hasLayoutUpdates());return a&&requestAnimationFrame((()=>{this._transaction&&requestAnimationFrame((()=>this._applyLayoutInfos()))})),a}afterRender(){this.shouldOverscan&&this._overscanManager.collectMetrics()}_flushVisibleViews(){let e=new Map([[null,[]]]);for(let o of this._children){var t,n,r,i,l;null==(null===(t=o.layoutInfo)||void 0===t?void 0:t.parentKey)||e.has(o.layoutInfo.parentKey)||e.set(o.layoutInfo.parentKey,[]),null===(n=e.get(null===(r=o.layoutInfo)||void 0===r?void 0:r.parentKey))||void 0===n||n.push(o),e.has(null===(i=o.layoutInfo)||void 0===i?void 0:i.key)||e.set(null===(l=o.layoutInfo)||void 0===l?void 0:l.key,[])}let o=(t,n)=>n.map((n=>{let r=e.get(n.layoutInfo.key);return this.delegate.renderWrapper(t,n,r,(e=>o(n,e)))})),a=o(null,e.get(null));this.delegate.setVisibleViews(a)}_applyLayoutInfo(e,t){return e.layoutInfo!==t&&(e.layoutInfo=t,!0)}_applyLayoutInfos(){let e=!1;for(let t of this._visibleViews.values()){let n=t.layoutInfo;if(null!=(null==n?void 0:n.key)){let r=this.layout.getLayoutInfo(n.key);this._applyLayoutInfo(t,r)&&(e=!0)}}if(this._transaction){for(let t of this._transaction.toRemove.values()){let n=t.layoutInfo;if(null!=(null==n?void 0:n.key)){let r=this.layout.getLayoutInfo(n.key);this._applyLayoutInfo(t,r)&&(e=!0)}}for(let t of this._transaction.removed.values()){let n=t.layoutInfo,r=this._transaction.finalLayoutInfo.get(n.key)||n;r=this.layout.getFinalLayoutInfo(r.copy()),this._applyLayoutInfo(t,r)&&(e=!0)}}e&&this._flushVisibleViews()}_hasLayoutUpdates(){if(!this._transaction)return!1;for(let e of this._visibleViews.values()){let t=e.layoutInfo;if(!t)return!0;let n=this.layout.getLayoutInfo(t.key);if(!t.rect.equals(n.rect)||t.opacity!==n.opacity||t.transform!==n.transform)return!0}return!1}reuseView(e){e.prepareForReuse(),this._reusableViews[e.viewType].push(e)}removeViews(e){for(let t of e)this._children.delete(t)}updateItemSize(e,t){if(!this.layout.updateItemSize)return;if(this._scrollAnimation)return void this._sizeUpdateQueue.set(e,t);this.layout.updateItemSize(e,t)&&this.relayout()}startScrolling(){this._isScrolling=!0}endScrolling(){this._isScrolling=!1,this._correctItemOrder(),this._flushVisibleViews()}_resetAnimatedContentOffset(){this._animatedContentOffset.isOrigin()||(this._animatedContentOffset=new tc(0,0),this._applyLayoutInfos())}scrollToItem(e,t){if(null==e)return;let n=this.layout.getLayoutInfo(e);if(!n)return;let{duration:r=300,shouldScrollX:i=!0,shouldScrollY:l=!0,offsetX:o=0,offsetY:a=0}=t,s=this.visibleRect.x,u=this.visibleRect.y,c=n.rect.x-o,d=n.rect.y-a,p=s+this.visibleRect.width,f=u+this.visibleRect.height;return i&&(c<=s||0===p?s=c:n.rect.maxX>p&&(s+=n.rect.maxX-p)),l&&(d<=u||0===f?u=d:n.rect.maxY>f&&(u+=n.rect.maxY-f)),this.scrollTo(new tc(s,u),r)}scrollTo(e,t=300){return this._scrollAnimation&&(this._scrollAnimation.cancel(),this._scrollAnimation=null),t<=0||this.visibleRect.pointEquals(e)?(this._setContentOffset(e),Promise.resolve()):(this.startScrolling(),this._scrollAnimation=function(e,t,n,r,i){let l,o=!1,a=new Promise((a=>{let s=uc(),u=t.x-e.x,c=t.y-e.y;l=requestAnimationFrame((function d(p){null==oc&&(oc=p>1e12!=uc()>1e12),oc&&(p=uc());let f=p-s;f>n?(i(t),a()):!1===i(new tc(e.x+u*r(f/n),e.y+c*r(f/n)))||o||(l=requestAnimationFrame(d))}))}));return a.cancel=function(){o=!0,cancelAnimationFrame(l)},a}(this.visibleRect,e,t,cc,(e=>{this._setContentOffset(e)})),this._scrollAnimation.then((()=>{this._scrollAnimation=null;for(let[e,t]of this._sizeUpdateQueue)this.updateItemSize(e,t);this._sizeUpdateQueue.clear(),this.relayout(),this._processTransactionQueue(),this.endScrolling()})),this._scrollAnimation)}_runTransaction(e,t){this._startTransaction(),this._nextTransaction&&this._nextTransaction.actions.push(e),this._endTransaction(t)}_startTransaction(){this._nextTransaction||(this._nextTransaction=new mc),this._nextTransaction.level++}_endTransaction(e){return!!this._nextTransaction&&(null!=e&&(this._nextTransaction.animated=e),!(--this._nextTransaction.level>0)&&(0===this._nextTransaction.actions.length?(this._nextTransaction=null,!1):(null==this._nextTransaction.animated&&(this._nextTransaction.animated=!0),this._transactionQueue.push(this._nextTransaction),this._nextTransaction=null,this._processTransactionQueue(),!0)))}_processTransactionQueue(){if(this._transaction||this._scrollAnimation)return;let e=this._transactionQueue.shift();e&&this._performTransaction(e)}_getContentRect(){return new nc(0,0,this.contentSize.width,this.contentSize.height)}_performTransaction(e){this._transaction=e,this.relayoutNow({transaction:e,animated:e.animated,beforeLayout:()=>{e.animated&&(e.initialMap=this._getLayoutInfoMap(this._getContentRect(),!0));for(let t of e.actions)t()},afterLayout:()=>{e.animated?(e.finalMap=this._getLayoutInfoMap(this._getContentRect()),this._setupTransactionAnimations(e)):this._transaction=null},afterAnimation:()=>{if(e.toRemove.size>0||e.removed.size>0)for(let t of function*(...e){for(let t of e)yield*t}(e.toRemove.values(),e.removed.values()))this._children.delete(t),this.reuseView(t);this._transaction=null,this._correctItemOrder(),this._flushVisibleViews(),this._processTransactionQueue()}})}_setupTransactionAnimations(e){let{initialMap:t,finalMap:n}=e;for(let[r,i]of t)n.has(r)?e.initialLayoutInfo.set(r,i):e.finalLayoutInfo.set(i.key,i);for(let[r,i]of n)if(!t.has(r)){let t=this.layout.getInitialLayoutInfo(i.copy());e.initialLayoutInfo.set(r,t)}for(let[t,r]of this._visibleViews)!n.has(t)&&r.layoutInfo.rect.width>0&&(e.removed.set(t,r),this._visibleViews.delete(t),r.layoutInfo&&(e.finalLayoutInfo.has(r.layoutInfo.key)||e.finalLayoutInfo.set(r.layoutInfo.key,r.layoutInfo)))}constructor(e={}){var t;this._contentSize=new rc,this._visibleRect=new nc,this._reusableViews={},this._visibleLayoutInfos=new Map,this._visibleViews=new Map,this._renderedContent=new WeakMap,this._children=new Set,this._invalidationContext=null,this._overscanManager=new fc,this._persistedKeys=new Set,this._scrollAnimation=null,this._isScrolling=!1,this._sizeUpdateQueue=new Map,this._animatedContentOffset=new tc(0,0),this._transaction=null,this._nextTransaction=null,this._transactionQueue=[],this.transitionDuration=null!==(t=e.transitionDuration)&&void 0!==t?t:500,this.anchorScrollPosition=e.anchorScrollPosition||!1,this.anchorScrollPositionAtTop=e.anchorScrollPositionAtTop||!1,this.shouldOverscan=!1!==e.shouldOverscan;for(let t of["delegate","size","layout","collection"])e[t]&&(this[t]=e[t])}}function gc(e){let[t,n]=(0,o.useState)([]),[r,i]=(0,o.useState)(new rc),[l,a]=(0,o.useState)(!1),[s,u]=(0,o.useState)(!1),c=(0,o.useMemo)((()=>new hc),[]);c.delegate={setVisibleViews:n,setVisibleRect(t){c.visibleRect=t,e.onVisibleRectChange(t)},setContentSize:i,renderView:e.renderView,renderWrapper:e.renderWrapper,beginAnimations:()=>a(!0),endAnimations:()=>a(!1),getScrollAnchor:e.getScrollAnchor},c.layout=e.layout,c.collection=e.collection,c.transitionDuration=e.transitionDuration,y((()=>{c.afterRender()})),(0,o.useEffect)((()=>()=>c.willUnmount()),[]);let d=(0,o.useCallback)((e=>{c.visibleRect=e}),[c]),p=(0,o.useCallback)((()=>{c.startScrolling(),u(!0)}),[c]),f=(0,o.useCallback)((()=>{c.endScrolling(),u(!1)}),[c]);return(0,o.useMemo)((()=>({virtualizer:c,visibleViews:t,setVisibleRect:d,contentSize:r,isAnimating:l,isScrolling:s,startScrolling:p,endScrolling:f})),[c,t,d,r,l,s,p,f])}o=l("acw62");let yc=null;function vc(e,t="assertive",n=7e3){yc||(yc=new bc),yc.announce(e,t,n)}class bc{createLog(e){let t=document.createElement("div");return t.setAttribute("role","log"),t.setAttribute("aria-live",e),t.setAttribute("aria-relevant","additions"),t}destroy(){this.node&&(document.body.removeChild(this.node),this.node=null)}announce(e,t="assertive",n=7e3){if(!this.node)return;let r=document.createElement("div");r.textContent=e,"assertive"===t?this.assertiveLog.appendChild(r):this.politeLog.appendChild(r),""!==e&&setTimeout((()=>{r.remove()}),n)}clear(e){this.node&&(e&&"assertive"!==e||(this.assertiveLog.innerHTML=""),e&&"polite"!==e||(this.politeLog.innerHTML=""))}constructor(){this.node=document.createElement("div"),this.node.dataset.liveAnnouncer="true",Object.assign(this.node.style,{border:0,clip:"rect(0 0 0 0)",clipPath:"inset(50%)",height:1,margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:1,whiteSpace:"nowrap"}),this.assertiveLog=this.createLog("assertive"),this.node.appendChild(this.assertiveLog),this.politeLog=this.createLog("polite"),this.node.appendChild(this.politeLog),document.body.prepend(this.node)}}function wc(e){return e&&e.__esModule?e.default:e}new WeakMap;var Ec;function kc(e,t){let{getRowText:n=(e=>{var n;return null===(n=t.collection.getItem(e))||void 0===n?void 0:n.textValue})}=e,r=Pe(wc(Ec)),i=t.selectionManager.rawSelection,l=(0,o.useRef)(i);z((()=>{var e;if(!t.selectionManager.isFocused)return void(l.current=i);let o=Sc(i,l.current),a=Sc(l.current,i),s="replace"===t.selectionManager.selectionBehavior,u=[];if(1===t.selectionManager.selectedKeys.size&&s){if(t.collection.getItem(t.selectionManager.selectedKeys.keys().next().value)){let e=n(t.selectionManager.selectedKeys.keys().next().value);e&&u.push(r.format("selectedItem",{item:e}))}}else if(1===o.size&&0===a.size){let e=n(o.keys().next().value);e&&u.push(r.format("selectedItem",{item:e}))}else if(1===a.size&&0===o.size&&t.collection.getItem(a.keys().next().value)){let e=n(a.keys().next().value);e&&u.push(r.format("deselectedItem",{item:e}))}"multiple"===t.selectionManager.selectionMode&&(0===u.length||"all"===i||i.size>1||"all"===l.current||(null===(e=l.current)||void 0===e?void 0:e.size)>1)&&u.push("all"===i?r.format("selectedAll"):r.format("selectedCount",{count:i.size})),u.length>0&&vc(u.join(" ")),l.current=i}),[i])}function Sc(e,t){let n=new Set;if("all"===e||"all"===t)return n;for(let r of e.keys())t.has(r)||n.add(r);return n}function xc(e){let t=Pe(wc(Ec)),n=Ht(),r=("pointer"===n||"virtual"===n||null==n)&&"undefined"!=typeof window&&"ontouchstart"in window;return q((0,o.useMemo)((()=>{let n,i=e.selectionManager.selectionMode,l=e.selectionManager.selectionBehavior;return r&&(n=t.format("longPressToSelect")),"replace"===l&&"none"!==i&&e.hasItemActions?n:void 0}),[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,r]))}function Pc(e,t){let{key:n}=e,r=t.selectionManager,i=w(),l=!t.selectionManager.canSelectItem(n),o=t.selectionManager.isSelected(n);return{checkboxProps:{id:i,"aria-label":Pe(wc(Ec)).format("select"),isSelected:o,isDisabled:l,onChange:()=>r.select(n)}}}Ec={"ar-AE":{deselectedItem:e=>`${e.item} غير المحدد`,longPressToSelect:"اضغط مطولًا للدخول إلى وضع التحديد.",select:"تحديد",selectedAll:"جميع العناصر المحددة.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"لم يتم تحديد عناصر",one:()=>`${t.number(e.count)} عنصر محدد`,other:()=>`${t.number(e.count)} عنصر محدد`})}.`,selectedItem:e=>`${e.item} المحدد`},"bg-BG":{deselectedItem:e=>`${e.item} не е избран.`,longPressToSelect:"Натиснете и задръжте за да влезете в избирателен режим.",select:"Изберете",selectedAll:"Всички елементи са избрани.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Няма избрани елементи",one:()=>`${t.number(e.count)} избран елемент`,other:()=>`${t.number(e.count)} избрани елементи`})}.`,selectedItem:e=>`${e.item} избран.`},"cs-CZ":{deselectedItem:e=>`Položka ${e.item} není vybrána.`,longPressToSelect:"Dlouhým stisknutím přejdete do režimu výběru.",select:"Vybrat",selectedAll:"Vybrány všechny položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nevybrány žádné položky",one:()=>`Vybrána ${t.number(e.count)} položka`,other:()=>`Vybráno ${t.number(e.count)} položek`})}.`,selectedItem:e=>`Vybrána položka ${e.item}.`},"da-DK":{deselectedItem:e=>`${e.item} ikke valgt.`,longPressToSelect:"Lav et langt tryk for at aktivere valgtilstand.",select:"Vælg",selectedAll:"Alle elementer valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer valgt",one:()=>`${t.number(e.count)} element valgt`,other:()=>`${t.number(e.count)} elementer valgt`})}.`,selectedItem:e=>`${e.item} valgt.`},"de-DE":{deselectedItem:e=>`${e.item} nicht ausgewählt.`,longPressToSelect:"Gedrückt halten, um Auswahlmodus zu öffnen.",select:"Auswählen",selectedAll:"Alle Elemente ausgewählt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Keine Elemente ausgewählt",one:()=>`${t.number(e.count)} Element ausgewählt`,other:()=>`${t.number(e.count)} Elemente ausgewählt`})}.`,selectedItem:e=>`${e.item} ausgewählt.`},"el-GR":{deselectedItem:e=>`Δεν επιλέχθηκε το στοιχείο ${e.item}.`,longPressToSelect:"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.",select:"Επιλογή",selectedAll:"Επιλέχθηκαν όλα τα στοιχεία.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Δεν επιλέχθηκαν στοιχεία",one:()=>`Επιλέχθηκε ${t.number(e.count)} στοιχείο`,other:()=>`Επιλέχθηκαν ${t.number(e.count)} στοιχεία`})}.`,selectedItem:e=>`Επιλέχθηκε το στοιχείο ${e.item}.`},"en-US":{deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."},"es-ES":{deselectedItem:e=>`${e.item} no seleccionado.`,longPressToSelect:"Mantenga pulsado para abrir el modo de selección.",select:"Seleccionar",selectedAll:"Todos los elementos seleccionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ningún elemento seleccionado",one:()=>`${t.number(e.count)} elemento seleccionado`,other:()=>`${t.number(e.count)} elementos seleccionados`})}.`,selectedItem:e=>`${e.item} seleccionado.`},"et-EE":{deselectedItem:e=>`${e.item} pole valitud.`,longPressToSelect:"Valikurežiimi sisenemiseks vajutage pikalt.",select:"Vali",selectedAll:"Kõik üksused valitud.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Üksusi pole valitud",one:()=>`${t.number(e.count)} üksus valitud`,other:()=>`${t.number(e.count)} üksust valitud`})}.`,selectedItem:e=>`${e.item} valitud.`},"fi-FI":{deselectedItem:e=>`Kohdetta ${e.item} ei valittu.`,longPressToSelect:"Siirry valintatilaan painamalla pitkään.",select:"Valitse",selectedAll:"Kaikki kohteet valittu.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ei yhtään kohdetta valittu",one:()=>`${t.number(e.count)} kohde valittu`,other:()=>`${t.number(e.count)} kohdetta valittu`})}.`,selectedItem:e=>`${e.item} valittu.`},"fr-FR":{deselectedItem:e=>`${e.item} non sélectionné.`,longPressToSelect:"Appuyez de manière prolongée pour passer en mode de sélection.",select:"Sélectionner",selectedAll:"Tous les éléments sélectionnés.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Aucun élément sélectionné",one:()=>`${t.number(e.count)} élément sélectionné`,other:()=>`${t.number(e.count)} éléments sélectionnés`})}.`,selectedItem:e=>`${e.item} sélectionné.`},"he-IL":{deselectedItem:e=>`${e.item} לא נבחר.`,longPressToSelect:"הקשה ארוכה לכניסה למצב בחירה.",select:"בחר",selectedAll:"כל הפריטים נבחרו.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"לא נבחרו פריטים",one:()=>`פריט ${t.number(e.count)} נבחר`,other:()=>`${t.number(e.count)} פריטים נבחרו`})}.`,selectedItem:e=>`${e.item} נבחר.`},"hr-HR":{deselectedItem:e=>`Stavka ${e.item} nije odabrana.`,longPressToSelect:"Dugo pritisnite za ulazak u način odabira.",select:"Odaberite",selectedAll:"Odabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije odabrana nijedna stavka",one:()=>`Odabrana je ${t.number(e.count)} stavka`,other:()=>`Odabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`Stavka ${e.item} je odabrana.`},"hu-HU":{deselectedItem:e=>`${e.item} nincs kijelölve.`,longPressToSelect:"Nyomja hosszan a kijelöléshez.",select:"Kijelölés",selectedAll:"Az összes elem kijelölve.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Egy elem sincs kijelölve",one:()=>`${t.number(e.count)} elem kijelölve`,other:()=>`${t.number(e.count)} elem kijelölve`})}.`,selectedItem:e=>`${e.item} kijelölve.`},"it-IT":{deselectedItem:e=>`${e.item} non selezionato.`,longPressToSelect:"Premi a lungo per passare alla modalità di selezione.",select:"Seleziona",selectedAll:"Tutti gli elementi selezionati.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nessun elemento selezionato",one:()=>`${t.number(e.count)} elemento selezionato`,other:()=>`${t.number(e.count)} elementi selezionati`})}.`,selectedItem:e=>`${e.item} selezionato.`},"ja-JP":{deselectedItem:e=>`${e.item} が選択されていません。`,longPressToSelect:"長押しして選択モードを開きます。",select:"選択",selectedAll:"すべての項目を選択しました。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"項目が選択されていません",one:()=>`${t.number(e.count)} 項目を選択しました`,other:()=>`${t.number(e.count)} 項目を選択しました`})}。`,selectedItem:e=>`${e.item} を選択しました。`},"ko-KR":{deselectedItem:e=>`${e.item}이(가) 선택되지 않았습니다.`,longPressToSelect:"선택 모드로 들어가려면 길게 누르십시오.",select:"선택",selectedAll:"모든 항목이 선택되었습니다.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"선택된 항목이 없습니다",one:()=>`${t.number(e.count)}개 항목이 선택되었습니다`,other:()=>`${t.number(e.count)}개 항목이 선택되었습니다`})}.`,selectedItem:e=>`${e.item}이(가) 선택되었습니다.`},"lt-LT":{deselectedItem:e=>`${e.item} nepasirinkta.`,longPressToSelect:"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.",select:"Pasirinkti",selectedAll:"Pasirinkti visi elementai.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nepasirinktas nė vienas elementas",one:()=>`Pasirinktas ${t.number(e.count)} elementas`,other:()=>`Pasirinkta elementų: ${t.number(e.count)}`})}.`,selectedItem:e=>`Pasirinkta: ${e.item}.`},"lv-LV":{deselectedItem:e=>`Vienums ${e.item} nav atlasīts.`,longPressToSelect:"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.",select:"Atlasīt",selectedAll:"Atlasīti visi vienumi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nav atlasīts neviens vienums",one:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`,other:()=>`Atlasīto vienumu skaits: ${t.number(e.count)}`})}.`,selectedItem:e=>`Atlasīts vienums ${e.item}.`},"nb-NO":{deselectedItem:e=>`${e.item} er ikke valgt.`,longPressToSelect:"Bruk et langt trykk for å gå inn i valgmodus.",select:"Velg",selectedAll:"Alle elementer er valgt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Ingen elementer er valgt",one:()=>`${t.number(e.count)} element er valgt`,other:()=>`${t.number(e.count)} elementer er valgt`})}.`,selectedItem:e=>`${e.item} er valgt.`},"nl-NL":{deselectedItem:e=>`${e.item} niet geselecteerd.`,longPressToSelect:"Druk lang om de selectiemodus te openen.",select:"Selecteren",selectedAll:"Alle items geselecteerd.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Geen items geselecteerd",one:()=>`${t.number(e.count)} item geselecteerd`,other:()=>`${t.number(e.count)} items geselecteerd`})}.`,selectedItem:e=>`${e.item} geselecteerd.`},"pl-PL":{deselectedItem:e=>`Nie zaznaczono ${e.item}.`,longPressToSelect:"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.",select:"Zaznacz",selectedAll:"Wszystkie zaznaczone elementy.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nie zaznaczono żadnych elementów",one:()=>`${t.number(e.count)} zaznaczony element`,other:()=>`${t.number(e.count)} zaznaczonych elementów`})}.`,selectedItem:e=>`Zaznaczono ${e.item}.`},"pt-BR":{deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Mantenha pressionado para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`},"pt-PT":{deselectedItem:e=>`${e.item} não selecionado.`,longPressToSelect:"Prima continuamente para entrar no modo de seleção.",select:"Selecionar",selectedAll:"Todos os itens selecionados.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nenhum item selecionado",one:()=>`${t.number(e.count)} item selecionado`,other:()=>`${t.number(e.count)} itens selecionados`})}.`,selectedItem:e=>`${e.item} selecionado.`},"ro-RO":{deselectedItem:e=>`${e.item} neselectat.`,longPressToSelect:"Apăsați lung pentru a intra în modul de selectare.",select:"Selectare",selectedAll:"Toate elementele selectate.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Niciun element selectat",one:()=>`${t.number(e.count)} element selectat`,other:()=>`${t.number(e.count)} elemente selectate`})}.`,selectedItem:e=>`${e.item} selectat.`},"ru-RU":{deselectedItem:e=>`${e.item} не выбрано.`,longPressToSelect:"Нажмите и удерживайте для входа в режим выбора.",select:"Выбрать",selectedAll:"Выбраны все элементы.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Нет выбранных элементов",one:()=>`${t.number(e.count)} элемент выбран`,other:()=>`${t.number(e.count)} элементов выбрано`})}.`,selectedItem:e=>`${e.item} выбрано.`},"sk-SK":{deselectedItem:e=>`Nevybraté položky: ${e.item}.`,longPressToSelect:"Dlhším stlačením prejdite do režimu výberu.",select:"Vybrať",selectedAll:"Všetky vybraté položky.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Žiadne vybraté položky",one:()=>`${t.number(e.count)} vybratá položka`,other:()=>`Počet vybratých položiek:${t.number(e.count)}`})}.`,selectedItem:e=>`Vybraté položky: ${e.item}.`},"sl-SI":{deselectedItem:e=>`Element ${e.item} ni izbran.`,longPressToSelect:"Za izbirni način pritisnite in dlje časa držite.",select:"Izberite",selectedAll:"Vsi elementi so izbrani.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Noben element ni izbran",one:()=>`${t.number(e.count)} element je izbran`,other:()=>`${t.number(e.count)} elementov je izbranih`})}.`,selectedItem:e=>`Element ${e.item} je izbran.`},"sr-SP":{deselectedItem:e=>`${e.item} nije izabrano.`,longPressToSelect:"Dugo pritisnite za ulazak u režim biranja.",select:"Izaberite",selectedAll:"Izabrane su sve stavke.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Nije izabrana nijedna stavka",one:()=>`Izabrana je ${t.number(e.count)} stavka`,other:()=>`Izabrano je ${t.number(e.count)} stavki`})}.`,selectedItem:e=>`${e.item} je izabrano.`},"sv-SE":{deselectedItem:e=>`${e.item} ej markerat.`,longPressToSelect:"Tryck länge när du vill öppna väljarläge.",select:"Markera",selectedAll:"Alla markerade objekt.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Inga markerade objekt",one:()=>`${t.number(e.count)} markerat objekt`,other:()=>`${t.number(e.count)} markerade objekt`})}.`,selectedItem:e=>`${e.item} markerat.`},"tr-TR":{deselectedItem:e=>`${e.item} seçilmedi.`,longPressToSelect:"Seçim moduna girmek için uzun basın.",select:"Seç",selectedAll:"Tüm ögeler seçildi.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Hiçbir öge seçilmedi",one:()=>`${t.number(e.count)} öge seçildi`,other:()=>`${t.number(e.count)} öge seçildi`})}.`,selectedItem:e=>`${e.item} seçildi.`},"uk-UA":{deselectedItem:e=>`${e.item} не вибрано.`,longPressToSelect:"Виконайте довге натиснення, щоб перейти в режим вибору.",select:"Вибрати",selectedAll:"Усі елементи вибрано.",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"Жодних елементів не вибрано",one:()=>`${t.number(e.count)} елемент вибрано`,other:()=>`Вибрано елементів: ${t.number(e.count)}`})}.`,selectedItem:e=>`${e.item} вибрано.`},"zh-CN":{deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`},"zh-TW":{deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未選取任何項目",one:()=>`已選取 ${t.number(e.count)} 個項目`,other:()=>`已選取 ${t.number(e.count)} 個項目`})}。`,selectedItem:e=>`已選取「${e.item}」。`}};const Tc=new WeakMap;function _c(e,t){let{id:n}=Tc.get(e);if(!n)throw new Error("Unknown list");return`${n}-${function(e){return"string"==typeof e?e.replace(/\s*/g,""):""+e}(t)}`}function Cc(e,t,n){let{isVirtualized:r,keyboardDelegate:i,onAction:l}=e;e["aria-label"]||e["aria-labelledby"]||console.warn("An aria-label or aria-labelledby prop is required for accessibility.");let{listProps:o}=fa({selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys,ref:n,keyboardDelegate:i,isVirtualized:r,selectOnFocus:"replace"===t.selectionManager.selectionBehavior}),a=w();Tc.set(t,{id:a,onAction:l});let s=xc({selectionManager:t.selectionManager,hasItemActions:!!l}),u=x(C(e,{labelable:!0}),{role:"grid",id:a,"aria-multiselectable":"multiple"===t.selectionManager.selectionMode?"true":void 0},0===t.collection.size?{}:o,s);return r&&(u["aria-rowcount"]=t.collection.size,u["aria-colcount"]=1),kc({},t),{gridProps:u}}function Ic(e,t,n){let{node:r,isVirtualized:i,shouldSelectOnPressUp:l}=e,{direction:o}=Se(),{onAction:a}=Tc.get(t),s=k(),{itemProps:u,...c}=ua({selectionManager:t.selectionManager,key:r.key,ref:n,isVirtualized:i,shouldSelectOnPressUp:l,onAction:a?()=>a(r.key):void 0,focus:()=>{n.current.contains(document.activeElement)||an(n.current)}}),d=x(u,{role:"row",onKeyDownCapture:e=>{if(!e.currentTarget.contains(e.target))return;let t=Sn(n.current);switch(t.currentNode=document.activeElement,e.key){case"ArrowLeft":{let r="rtl"===o?t.nextNode():t.previousNode();if(r)e.preventDefault(),e.stopPropagation(),an(r);else if(e.preventDefault(),e.stopPropagation(),"rtl"===o)an(n.current);else{t.currentNode=n.current;let e=Mc(t);e&&an(e)}break}case"ArrowRight":{let r="rtl"===o?t.previousNode():t.nextNode();if(r)e.preventDefault(),e.stopPropagation(),an(r);else if(e.preventDefault(),e.stopPropagation(),"ltr"===o)an(n.current);else{t.currentNode=n.current;let e=Mc(t);e&&an(e)}break}case"ArrowUp":case"ArrowDown":!e.altKey&&n.current.contains(e.target)&&(e.stopPropagation(),e.preventDefault(),n.current.parentElement.dispatchEvent(new KeyboardEvent(e.nativeEvent.type,e.nativeEvent)))}},onFocus:e=>{e.target===n.current||jt()||t.selectionManager.setFocusedKey(r.key)},"aria-label":r.textValue||void 0,"aria-selected":t.selectionManager.canSelectItem(r.key)?t.selectionManager.isSelected(r.key):void 0,"aria-disabled":t.selectionManager.isDisabled(r.key)||void 0,"aria-labelledby":s&&r.textValue?`${_c(t,r.key)} ${s}`:void 0,id:_c(t,r.key)});i&&(d["aria-rowindex"]=r.index+1);return{rowProps:d,gridCellProps:{role:"gridcell","aria-colindex":1},descriptionProps:{id:s},...c}}function Mc(e){let t,n;do{n=e.lastChild(),n&&(t=n)}while(n);return t}function Lc(e,t){let{key:n}=e;const{checkboxProps:r}=Pc(e,t);return{checkboxProps:{...r,"aria-labelledby":`${r.id} ${_c(t,n)}`}}}class Nc extends Ju{getLayoutInfo(e){let t=this.layoutInfos.get(e);return!t&&this.validRect.area{for(let i of r)this.isVisible(i,e)&&(t.push(i.layoutInfo),i.header&&t.push(i.header),i.children&&n(i.children))};return n(this.rootNodes),t}isVisible(e,t){return e.layoutInfo.rect.intersects(t)||e.layoutInfo.isSticky||this.virtualizer.isPersistedKey(e.layoutInfo.key)}shouldInvalidateEverything(e){return e.sizeChanged}validate(e){if(this.collection=this.virtualizer.collection,this.invalidateEverything=this.shouldInvalidateEverything(e),this.invalidateEverything&&(this.lastValidRect=this.validRect,this.validRect=this.virtualizer.getVisibleRect()),this.rootNodes=this.buildCollection(),this.lastCollection&&this.collection!==this.lastCollection)for(let e of this.lastCollection.getKeys())if(!this.collection.getItem(e)){let n=this.layoutNodes.get(e);var t;if(n)this.layoutInfos.delete(n.layoutInfo.key),this.layoutInfos.delete(null===(t=n.header)||void 0===t?void 0:t.key),this.layoutNodes.delete(e)}this.lastWidth=this.virtualizer.visibleRect.width,this.lastCollection=this.collection,this.invalidateEverything=!1}buildCollection(){let e=this.padding,t=0,n=[];for(let i of this.collection){var r;let l=null!==(r=this.rowHeight)&&void 0!==r?r:this.estimatedRowHeight;if("item"===i.type&&e+lthis.validRect.maxY){e+=(this.collection.size-(n.length+t))*l;break}}if(this.isLoading){var i;let t=new nc(0,e,this.virtualizer.visibleRect.width,null!==(i=this.loaderHeight)&&void 0!==i?i:this.virtualizer.visibleRect.height),r=new ec("loader","loader",t);this.layoutInfos.set("loader",r),n.push({layoutInfo:r}),e=r.rect.maxY}if(0===n.length){var l;let t=new nc(0,e,this.virtualizer.visibleRect.width,null!==(l=this.placeholderHeight)&&void 0!==l?l:this.virtualizer.visibleRect.height),r=new ec("placeholder","placeholder",t);this.layoutInfos.set("placeholder",r),n.push({layoutInfo:r}),e=r.rect.maxY}return this.contentSize=new rc(this.virtualizer.visibleRect.width,e+this.padding),n}isValid(e,t){let n=this.layoutNodes.get(e.key);return!this.invalidateEverything&&n&&n.node===e&&t===(n.header||n.layoutInfo).rect.y&&n.layoutInfo.rect.intersects(this.lastValidRect)&&n.validRect.containsRect(n.layoutInfo.rect.intersection(this.validRect))}buildChild(e,t,n){if(this.isValid(e,n))return this.layoutNodes.get(e.key);let r=this.buildNode(e,t,n);var i;return r.node=e,r.layoutInfo.parentKey=null!==(i=e.parentKey)&&void 0!==i?i:null,this.layoutInfos.set(r.layoutInfo.key,r.layoutInfo),r.header&&this.layoutInfos.set(r.header.key,r.header),this.layoutNodes.set(e.key,r),r}buildNode(e,t,n){switch(e.type){case"section":return this.buildSection(e,t,n);case"item":return this.buildItem(e,t,n)}}buildSection(e,t,n){let r=this.virtualizer.visibleRect.width,i=this.headingHeight,l=!1;if(null==i){let t=this.layoutNodes.get(e.key);if(t&&t.header){let n=this.collection.getItem(e.key),o=this.lastCollection?this.lastCollection.getItem(e.key):null;i=t.header.rect.height,l=r!==this.lastWidth||n!==o||t.header.estimatedSize}else i=e.rendered?this.estimatedHeadingHeight:0,l=!0}null==i&&(i=48);let o=new nc(0,n,r,i),a=new ec("header",e.key+":header",o);a.estimatedSize=l,a.parentKey=e.key,n+=a.rect.height;let s=new nc(0,n,r,0),u=new ec(e.type,e.key,s),c=n,d=0,p=[];for(let r of e.childNodes){var f;let i=null!==(f=this.rowHeight)&&void 0!==f?f:this.estimatedRowHeight;if(n+ithis.validRect.maxY){n+=([...e.childNodes].length-(p.length+d))*i;break}}return s.height=n-c,{header:a,layoutInfo:u,children:p,validRect:u.rect.intersection(this.validRect)}}buildItem(e,t,n){let r=this.virtualizer.visibleRect.width,i=this.rowHeight,l=!1;if(null==i){let t=this.layoutNodes.get(e.key);t?(i=t.layoutInfo.rect.height,l=r!==this.lastWidth||e!==t.node||t.layoutInfo.estimatedSize):(i=this.estimatedRowHeight,l=!0)}null==i&&(i=48),"function"==typeof this.indentationForItem&&(t+=this.indentationForItem(this.collection,e.key)||0);let o=new nc(t,n,r-t,i),a=new ec(e.type,e.key,o);return a.allowOverflow=!0,a.estimatedSize=l,{layoutInfo:a,validRect:a.rect}}updateItemSize(e,t){let n=this.layoutInfos.get(e);if(!n)return!1;if(n.estimatedSize=!1,n.rect.height!==t.height){let r=n.copy();r.rect.height=t.height,this.layoutInfos.set(e,r),this.updateLayoutNode(e,n,r);let i=this.collection.getItem(n.parentKey);for(;i;)this.updateLayoutNode(i.key,n,r),i=this.collection.getItem(i.parentKey);return!0}return!1}updateLayoutNode(e,t,n){let r=this.layoutNodes.get(e);r&&(r.validRect=new nc,r.header===t?r.header=n:r.layoutInfo===t&&(r.layoutInfo=n))}getContentSize(){return this.contentSize}getKeyAbove(e){let t=this.collection;for(e=t.getKeyBefore(e);null!=e;){let n=t.getItem(e);if("item"===n.type&&(this.allowDisabledKeyFocus||!this.disabledKeys.has(n.key)))return e;e=t.getKeyBefore(e)}}getKeyBelow(e){let t=this.collection;for(e=t.getKeyAfter(e);null!=e;){let n=t.getItem(e);if("item"===n.type&&(this.allowDisabledKeyFocus||!this.disabledKeys.has(n.key)))return e;e=t.getKeyAfter(e)}}getKeyPageAbove(e){let t=this.getLayoutInfo(e);if(t){let e=Math.max(0,t.rect.y+t.rect.height-this.virtualizer.visibleRect.height);for(;t&&t.rect.y>e;){let e=this.getKeyAbove(t.key);t=this.getLayoutInfo(e)}if(t)return t.key}return this.getFirstKey()}getKeyPageBelow(e){let t=this.getLayoutInfo(null!=e?e:this.getFirstKey());if(t){let e=Math.min(this.virtualizer.contentSize.height,t.rect.y-t.rect.height+this.virtualizer.visibleRect.height);for(;t&&t.rect.y=l.maxY-10&&n({...o,dropPosition:"after"})&&(o.dropPosition="after"):t<=l.y+l.height/2&&n({...o,dropPosition:"before"})?o.dropPosition="before":n({...o,dropPosition:"after"})&&(o.dropPosition="after"),o}constructor(e={}){super(),ae(this,"disabledKeys",new Set),ae(this,"allowDisabledKeyFocus",!1),this.rowHeight=e.rowHeight,this.estimatedRowHeight=e.estimatedRowHeight,this.headingHeight=e.headingHeight,this.estimatedHeadingHeight=e.estimatedHeadingHeight,this.padding=e.padding||0,this.indentationForItem=e.indentationForItem,this.collator=e.collator,this.loaderHeight=e.loaderHeight,this.placeholderHeight=e.placeholderHeight,this.layoutInfos=new Map,this.layoutNodes=new Map,this.rootNodes=[],this.lastWidth=0,this.lastCollection=null,this.allowDisabledKeyFocus=e.allowDisabledKeyFocus,this.lastValidRect=new nc,this.validRect=new nc,this.contentSize=new rc}}o=l("acw62");let Rc=Symbol.iterator;class Oc{*[Rc](){yield*this.iterable}get size(){return this.keyMap.size}getKeys(){return this.keyMap.keys()}getKeyBefore(e){let t=this.keyMap.get(e);return t?t.prevKey:null}getKeyAfter(e){let t=this.keyMap.get(e);return t?t.nextKey:null}getFirstKey(){return this.firstKey}getLastKey(){return this.lastKey}getItem(e){return this.keyMap.get(e)}at(e){const t=[...this.getKeys()];return this.getItem(t[e])}constructor(e){ae(this,"keyMap",new Map),this.iterable=e;let t,n=e=>{if(this.keyMap.set(e.key,e),e.childNodes&&"section"===e.type)for(let t of e.childNodes)n(t)};for(let t of e)n(t);let r=0;for(let[e,n]of this.keyMap)t?(t.nextKey=e,n.prevKey=t.key):(this.firstKey=e,n.prevKey=void 0),"item"===n.type&&(n.index=r++),t=n,t.nextKey=void 0;this.lastKey=null==t?void 0:t.key}}function Ac(e){let{filter:t}=e,n=Aa(e),r=(0,o.useMemo)((()=>e.disabledKeys?new Set(e.disabledKeys):new Set),[e.disabledKeys]),i=(0,o.useMemo)((()=>({suppressTextValueWarning:e.suppressTextValueWarning})),[e.suppressTextValueWarning]),l=ka(e,(e=>new Oc(t?t(e):e)),i,[t]);return(0,o.useEffect)((()=>{null==n.focusedKey||l.getItem(n.focusedKey)||n.setFocusedKey(null)}),[l,n.focusedKey]),{collection:l,disabledKeys:r,selectionManager:new za(l,n)}}function Fc(e){var t;let[n,r]=s(e.selectedKey,null!==(t=e.defaultSelectedKey)&&void 0!==t?t:null,e.onSelectionChange),i=(0,o.useMemo)((()=>null!=n?[n]:[]),[n]),{collection:l,disabledKeys:a,selectionManager:u}=Ac({...e,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:i,onSelectionChange:t=>{let i=t.values().next().value;i===n&&e.onSelectionChange&&e.onSelectionChange(i),r(i)}}),c=null!=n?l.getItem(n):null;return{collection:l,disabledKeys:a,selectionManager:u,selectedKey:n,setSelectedKey:r,selectedItem:c}}o=l("acw62");function zc(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:l="label"}=e;t=w(t);let o=w(),a={};return n?(r=r?`${r} ${o}`:o,a={id:o,htmlFor:"label"===l?t:void 0}):r||i||console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility"),{labelProps:a,fieldProps:F({id:t,"aria-label":i,"aria-labelledby":r})}}function Dc(e){let{description:t,errorMessage:n,validationState:r}=e,{labelProps:i,fieldProps:l}=zc(e),o=k([Boolean(t),Boolean(n),r]),a=k([Boolean(t),Boolean(n),r]);return l=x(l,{"aria-describedby":[o,a,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:i,fieldProps:l,descriptionProps:{id:o},errorMessageProps:{id:a}}}function Kc(e){let{value:t=0,minValue:n=0,maxValue:r=100,valueLabel:i,isIndeterminate:l,formatOptions:o={style:"percent"}}=e,a=C(e,{labelable:!0}),{labelProps:s,fieldProps:c}=zc({...e,labelElementType:"span"});t=u(t,n,r);let d=(t-n)/(r-n),p=Te(o);if(!l&&!i){let e="percent"===o.style?d:t;i=p.format(e)}return{progressBarProps:x(a,{...c,"aria-valuenow":l?void 0:t,"aria-valuemin":n,"aria-valuemax":r,"aria-valuetext":l?void 0:i,role:"progressbar"}),labelProps:s}}function Vc(e){return e&&e.__esModule?e.default:e}function Uc(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Bc,jc,$c,Hc,Wc,qc,Gc,Qc,Yc,Xc,Zc,Jc,ed,td,nd={};Uc(nd,"spectrum-BarLoader",(()=>Bc),(e=>Bc=e)),Uc(nd,"spectrum-BarLoader--indeterminate",(()=>jc),(e=>jc=e)),Uc(nd,"spectrum-BarLoader--sideLabel",(()=>$c),(e=>$c=e)),Uc(nd,"spectrum-BarLoader-track",(()=>Hc),(e=>Hc=e)),Uc(nd,"spectrum-BarLoader-fill",(()=>Wc),(e=>Wc=e)),Uc(nd,"spectrum-BarLoader-label",(()=>qc),(e=>qc=e)),Uc(nd,"spectrum-BarLoader-percentage",(()=>Gc),(e=>Gc=e)),Uc(nd,"spectrum-BarLoader--small",(()=>Qc),(e=>Qc=e)),Uc(nd,"indeterminate-loop-ltr",(()=>Yc),(e=>Yc=e)),Uc(nd,"indeterminate-loop-rtl",(()=>Xc),(e=>Xc=e)),Uc(nd,"spectrum-BarLoader--overBackground",(()=>Zc),(e=>Zc=e)),Uc(nd,"is-positive",(()=>Jc),(e=>Jc=e)),Uc(nd,"is-warning",(()=>ed),(e=>ed=e)),Uc(nd,"is-critical",(()=>td),(e=>td=e)),Bc="spectrum-BarLoader_48541f",jc="spectrum-BarLoader--indeterminate_48541f",$c="spectrum-BarLoader--sideLabel_48541f",Hc="spectrum-BarLoader-track_48541f",Wc="spectrum-BarLoader-fill_48541f",qc="spectrum-BarLoader-label_48541f",Gc="spectrum-BarLoader-percentage_48541f",Qc="spectrum-BarLoader--small_48541f",Yc="indeterminate-loop-ltr_48541f",Xc="indeterminate-loop-rtl_48541f",Zc="spectrum-BarLoader--overBackground_48541f",Jc="is-positive_48541f",ed="is-warning_48541f",td="is-critical_48541f";let rd=t(o).forwardRef((function(e,n){let{value:r=0,minValue:i=0,maxValue:l=100,size:a="L",label:s,barClassName:c,showValueLabel:d=!!s,labelPosition:p="top",isIndeterminate:f=!1,barProps:m,labelProps:h,"aria-label":g,"aria-labelledby":y,...v}=e,b=Oe(n),{styleProps:w}=tt(v);r=u(r,i,l);let E={};if(!f){let e=(r-i)/(l-i);E.width=`${Math.round(100*e)}%`}return s||g||y||console.warn("If you do not provide a visible label via children, you must specify an aria-label or aria-labelledby attribute for accessibility"),t(o).createElement("div",{...m,ref:b,className:Me(Vc(nd),"spectrum-BarLoader",{"spectrum-BarLoader--small":"S"===a,"spectrum-BarLoader--large":"L"===a,"spectrum-BarLoader--indeterminate":f,"spectrum-BarLoader--sideLabel":"side"===p},c,w.className),style:{minWidth:"-moz-fit-content",...w.style}},s&&t(o).createElement("span",{...h,className:Me(Vc(nd),"spectrum-BarLoader-label")},s),d&&t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-percentage")},m["aria-valuetext"]),t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-track")},t(o).createElement("div",{className:Me(Vc(nd),"spectrum-BarLoader-fill"),style:E})))}));t(o).forwardRef((function(e,n){let{variant:r,...i}=e;const{progressBarProps:l,labelProps:a}=Kc(e);return t(o).createElement(rd,{...i,ref:n,barProps:l,labelProps:a,barClassName:Me(Vc(nd),{"spectrum-BarLoader--overBackground":"overBackground"===r})})}));var id,ld,od,ad,sd,ud,cd,dd,pd,fd,md,hd,gd,yd,vd,bd,wd={};Uc(wd,"spectrum-CircleLoader--indeterminate-fill-submask-2",(()=>id),(e=>id=e)),Uc(wd,"spectrum-fill-mask-2",(()=>ld),(e=>ld=e)),Uc(wd,"spectrum-CircleLoader",(()=>od),(e=>od=e)),Uc(wd,"spectrum-CircleLoader-track",(()=>ad),(e=>ad=e)),Uc(wd,"spectrum-CircleLoader-fills",(()=>sd),(e=>sd=e)),Uc(wd,"spectrum-CircleLoader-fill",(()=>ud),(e=>ud=e)),Uc(wd,"spectrum-CircleLoader-fillMask1",(()=>cd),(e=>cd=e)),Uc(wd,"spectrum-CircleLoader-fillMask2",(()=>dd),(e=>dd=e)),Uc(wd,"spectrum-CircleLoader-fillSubMask1",(()=>pd),(e=>pd=e)),Uc(wd,"spectrum-CircleLoader-fillSubMask2",(()=>fd),(e=>fd=e)),Uc(wd,"spectrum-CircleLoader--small",(()=>md),(e=>md=e)),Uc(wd,"spectrum-CircleLoader--large",(()=>hd),(e=>hd=e)),Uc(wd,"spectrum-CircleLoader--indeterminate",(()=>gd),(e=>gd=e)),Uc(wd,"spectrum-fills-rotate",(()=>yd),(e=>yd=e)),Uc(wd,"spectrum-fill-mask-1",(()=>vd),(e=>vd=e)),Uc(wd,"spectrum-CircleLoader--overBackground",(()=>bd),(e=>bd=e)),id="spectrum-CircleLoader--indeterminate-fill-submask-2_7c1153",ld="spectrum-fill-mask-2_7c1153",od="spectrum-CircleLoader_7c1153",ad="spectrum-CircleLoader-track_7c1153",sd="spectrum-CircleLoader-fills_7c1153",ud="spectrum-CircleLoader-fill_7c1153",cd="spectrum-CircleLoader-fillMask1_7c1153",dd="spectrum-CircleLoader-fillMask2_7c1153",pd="spectrum-CircleLoader-fillSubMask1_7c1153",fd="spectrum-CircleLoader-fillSubMask2_7c1153",md="spectrum-CircleLoader--small_7c1153",hd="spectrum-CircleLoader--large_7c1153",gd="spectrum-CircleLoader--indeterminate_7c1153",yd="spectrum-fills-rotate_7c1153",vd="spectrum-fill-mask-1_7c1153",bd="spectrum-CircleLoader--overBackground_7c1153";let Ed=t(o).forwardRef((function(e,n){let{value:r=0,minValue:i=0,maxValue:l=100,size:a="M",variant:s,isIndeterminate:c=!1,"aria-label":d,"aria-labelledby":p,...f}=e,m=Oe(n),{styleProps:h}=tt(f);r=u(r,i,l);let{progressBarProps:g}=Kc({...e,value:r}),y={},v={};if(!c){let e,t=(r-i)/(l-i)*100;t>0&&t<=50?(e=t/50*180-180,y.transform=`rotate(${e}deg)`,v.transform="rotate(-180deg)"):t>50&&(e=(t-50)/50*180-180,y.transform="rotate(0deg)",v.transform=`rotate(${e}deg)`)}return d||p||console.warn("ProgressCircle requires an aria-label or aria-labelledby attribute for accessibility"),t(o).createElement("div",{...h,...g,ref:m,className:Me(Vc(wd),"spectrum-CircleLoader",{"spectrum-CircleLoader--indeterminate":c,"spectrum-CircleLoader--small":"S"===a,"spectrum-CircleLoader--large":"L"===a,"spectrum-CircleLoader--overBackground":"overBackground"===s},h.className)},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-track")}),t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fills")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillMask1")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillSubMask1"),"data-testid":"fillSubMask1",style:y},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fill")}))),t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillMask2")},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fillSubMask2"),"data-testid":"fillSubMask2",style:v},t(o).createElement("div",{className:Me(Vc(wd),"spectrum-CircleLoader-fill")})))))}));o=l("acw62"),o=l("acw62");let kd=null;function Sd(e=!1){if(null===kd||e){const e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";const n=document.createElement("div"),r=n.style;return r.width="100px",r.height="100px",e.appendChild(n),document.body.appendChild(e),e.scrollLeft>0?kd="positive-descending":(e.scrollLeft=1,kd=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),kd}return kd}const xd=t(o).forwardRef((function(e,n){let{contentSize:r,onVisibleRectChange:i,children:l,innerStyle:s,sizeToFit:u,onScrollStart:c,onScrollEnd:d,scrollDirection:p="both",...f}=e,m=(0,o.useRef)();n=n||m;let h=(0,o.useRef)({scrollTop:0,scrollLeft:0,scrollEndTime:0,scrollTimeout:null,width:0,height:0,isScrolling:!1}).current,{direction:g}=Se(),[v,b]=(0,o.useState)(!1),w=(0,o.useCallback)((t=>{t.target===t.currentTarget&&(e.onScroll&&e.onScroll(t),(0,a.flushSync)((()=>{let e=t.currentTarget.scrollTop,n=function(e,t){let{scrollLeft:n}=e;if("rtl"===t){let{scrollWidth:t,clientWidth:r}=e;switch(Sd()){case"negative":n=-n;break;case"positive-descending":n=t-r-n}}return n}(t.currentTarget,g);h.scrollTop=Math.max(0,Math.min(e,r.height-h.height)),h.scrollLeft=Math.max(0,Math.min(n,r.width-h.width)),i(new nc(h.scrollLeft,h.scrollTop,h.width,h.height)),h.isScrolling||(h.isScrolling=!0,b(!0),c&&c());let l=Date.now();h.scrollEndTime<=l+50&&(h.scrollEndTime=l+300,clearTimeout(h.scrollTimeout),h.scrollTimeout=setTimeout((()=>{h.isScrolling=!1,b(!1),h.scrollTimeout=null,d&&d()}),300))})))}),[e,g,h,r,i,c,d]);(0,o.useEffect)((()=>()=>{clearTimeout(h.scrollTimeout)}),[]);let E=(0,o.useCallback)((()=>{let e=n.current;if(!e)return;let t=e.clientWidth,l=e.clientHeight;u&&r.width>0&&r.height>0&&("width"===u?t=Math.min(t,r.width):"height"===u&&(l=Math.min(l,r.height))),h.width===t&&h.height===l||(h.width=t,h.height=l,i(new nc(h.scrollLeft,h.scrollTop,t,l)))}),[i,n,h,u,r]);y((()=>{E()}),[E]),D({ref:n,onResize:E});let k={padding:0,...f.style};return"horizontal"===p?(k.overflowX="auto",k.overflowY="hidden"):"vertical"===p?(k.overflowY="auto",k.overflowX="hidden"):k.overflow="auto",t(o).createElement("div",{...f,style:k,ref:n,onScroll:w},t(o).createElement("div",{role:"presentation",style:{width:r.width,height:r.height,pointerEvents:v?"none":"auto",position:"relative",...s}},l))}));function Pd(e){let{reusableView:{layoutInfo:t,virtualizer:n},ref:r}=e,i=(0,o.useCallback)((()=>{let e=function(e){let t=e.style.height;e.style.height="";let n=new rc(e.scrollWidth,e.scrollHeight);return e.style.height=t,n}(r.current);n.updateItemSize(t.key,e)}),[n,t.key,r]);return y((()=>{t.estimatedSize&&i()})),{updateSize:i}}function Td(e){let{className:n,reusableView:r,parent:i}=e,{direction:l}=Se(),a=(0,o.useRef)();return Pd({reusableView:r,ref:a}),t(o).createElement("div",{role:"presentation",ref:a,className:n,style:Cd(r.layoutInfo,l,i&&i.layoutInfo)},r.rendered)}let _d=new WeakMap;function Cd(e,t,n){let r="rtl"===t?"right":"left",i=_d.get(e);if(i&&null!=i[r]){if(!n)return i;let t=e.rect.y-n.rect.y,l=e.rect.x-n.rect.x;if(i.top===t&&i[r]===l)return i}let l={position:e.isSticky?"sticky":"absolute",overflow:e.allowOverflow?"visible":"hidden",top:e.rect.y-(n?n.rect.y:0),[r]:e.rect.x-(n?n.rect.x:0),transition:"all",WebkitTransition:"all",WebkitTransitionDuration:"inherit",transitionDuration:"inherit",width:e.rect.width,height:e.rect.height,opacity:e.opacity,zIndex:e.zIndex,transform:e.transform,contain:"size layout style"};return _d.set(e,l),l}const Id=t(o).forwardRef((function(e,n){let{children:r,renderWrapper:i,layout:l,collection:a,sizeToFit:s,scrollDirection:u,transitionDuration:c,isLoading:d,onLoadMore:p,focusedKey:f,shouldUseVirtualFocus:m,scrollToItem:h,...g}=e,v=(0,o.useRef)();n=n||v;let b=gc({transitionDuration:c,layout:l,collection:a,renderView:r,renderWrapper:i||Md,onVisibleRectChange(e){n.current.scrollLeft=e.x,n.current.scrollTop=e.y}}),{virtualizerProps:w}=function(e,t,n){let{focusedKey:r,scrollToItem:i,shouldUseVirtualFocus:l}=e,{virtualizer:a}=t,s=(0,o.useRef)(null),u=(0,o.useRef)(!1);(0,o.useEffect)((()=>{if(0===a.visibleRect.height)return;let e=$t();r===s.current||"pointer"===e&&u.current||(i?i(r):a.scrollToItem(r,{duration:0})),s.current=r}),[r,a.visibleRect.height,a,s,i]),a.persistedKeys=(0,o.useMemo)((()=>r?new Set([r]):new Set),[r]);let c=(0,o.useCallback)((e=>{let t=$t();!u.current&&n.current.contains(e.target)&&"pointer"!==t&&(i?i(r):a.scrollToItem(r,{duration:0})),u.current=e.target!==n.current}),[n,a,r,i]),d=(0,o.useCallback)((e=>{u.current=n.current.contains(e.relatedTarget)}),[n]),p=a.getView(r);(0,o.useEffect)((()=>{r&&!p&&u.current&&document.activeElement!==n.current&&I(n.current)}));let f,m=function({isEmpty:e,hasRenderedAnything:t},n){let[r,i]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{if((null==n?void 0:n.current)&&e&&t){let e=Sn(n.current,{tabbable:!0});i(!!e.nextNode())}}),[n,e,t]),r}({isEmpty:0===a.collection.size,hasRenderedAnything:a.contentSize.height>0||a.contentSize.width>0},n);l||(f=p||m?-1:0);return{virtualizerProps:{tabIndex:f,onFocus:c,onBlur:d}}}(e,b,n),E=(0,o.useCallback)((e=>{if(b.setVisibleRect(e),!d&&p){let t=b.virtualizer.contentSize.height-2*e.height;e.y>t&&p()}}),[d,p,b]);return y((()=>{d||!p||b.isAnimating||b.contentSize.height>0&&b.contentSize.height<=b.virtualizer.visibleRect.height&&p()}),[b.contentSize,b.isAnimating,b.virtualizer,p,d]),t(o).createElement(xd,{...x(g,w),ref:n,innerStyle:b.isAnimating?{transition:`none ${b.virtualizer.transitionDuration}ms`}:void 0,contentSize:b.contentSize,onVisibleRectChange:E,onScrollStart:b.startScrolling,onScrollEnd:b.endScrolling,sizeToFit:s,scrollDirection:u},b.visibleViews)}));function Md(e,n){return t(o).createElement(Td,{key:n.key,reusableView:n,parent:e})}var Ld;Ld=function(e){return Dd.default.createElement(Gi,e,Dd.default.createElement(Nd.CheckmarkSmall,null))};var Nd={};Object.defineProperty(Nd,"__esModule",{value:!0}),Nd.CheckmarkSmall=Fd;var Rd=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Od(){return Od=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Fd(e){var t=e.scale,n=void 0===t?"M":t,r=Ad(e,["scale"]);return Rd.default.createElement("svg",Od({},r,r),"L"===n&&Rd.default.createElement("path",{d:"M4.5 11a.999.999 0 0 1-.788-.385l-3-4a1 1 0 1 1 1.576-1.23L4.5 8.376l5.212-6.99a1 1 0 1 1 1.576 1.23l-6 8A.999.999 0 0 1 4.5 11z"}),"M"===n&&Rd.default.createElement("path",{d:"M3.788 9A.999.999 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A.999.999 0 0 1 3.788 9z"}))}Fd.displayName="CheckmarkSmall";var zd,Dd=Br(l("acw62"));zd=function(e){return $d.default.createElement(Gi,e,$d.default.createElement(Kd.DashSmall,null))};var Kd={};Object.defineProperty(Kd,"__esModule",{value:!0}),Kd.DashSmall=jd;var Vd=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Ud(){return Ud=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function jd(e){var t=e.scale,n=void 0===t?"M":t,r=Bd(e,["scale"]);return Vd.default.createElement("svg",Ud({},r,r),"L"===n&&Vd.default.createElement("path",{d:"M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z"}),"M"===n&&Vd.default.createElement("path",{d:"M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z"}))}jd.displayName="DashSmall";var $d=Br(l("acw62"));o=l("acw62"),o=l("acw62");function Hd(e,t,n){let{isDisabled:r=!1,isRequired:i,isReadOnly:l,value:o,name:a,children:s,"aria-label":u,"aria-labelledby":c,validationState:d="valid"}=e;null!=s||(null!=u||null!=c)||console.warn("If you do not provide children, you must specify an aria-label for accessibility");let{pressProps:p}=gt({isDisabled:r}),{focusableProps:f}=Mn(e,n),m=x(p,f);return{inputProps:x(C(e,{labelable:!0}),{"aria-invalid":"invalid"===d||void 0,"aria-errormessage":e["aria-errormessage"],"aria-controls":e["aria-controls"],"aria-readonly":l||void 0,"aria-required":i||void 0,onChange:e=>{e.stopPropagation(),t.setSelected(e.target.checked)},disabled:r,...null==o?{}:{value:o},name:a,type:"checkbox",...m})}}function Wd(e,t,n){let{inputProps:r}=Hd(e,t,n),{isSelected:i}=t,{isIndeterminate:l}=e;return(0,o.useEffect)((()=>{n.current&&(n.current.indeterminate=l)})),{inputProps:{...r,checked:i}}}const qd=new WeakMap,Gd=new WeakMap,Qd=new WeakMap;function Yd(e,t){let{isDisabled:n,name:r}=e,{labelProps:i,fieldProps:l,descriptionProps:o,errorMessageProps:a}=Dc({...e,labelElementType:"span"});Gd.set(t,o.id),Qd.set(t,a.id);let s=C(e,{labelable:!0});return qd.set(t,r),{groupProps:x(s,{role:"group","aria-disabled":n||void 0,...l}),labelProps:i,descriptionProps:o,errorMessageProps:a}}function Xd(e,t,n){const r=il({isReadOnly:e.isReadOnly||t.isReadOnly,isSelected:t.isSelected(e.value),onChange(n){n?t.addValue(e.value):t.removeValue(e.value),e.onChange&&e.onChange(n)}});let{inputProps:i}=Wd({...e,isReadOnly:e.isReadOnly||t.isReadOnly,isDisabled:e.isDisabled||t.isDisabled,name:e.name||qd.get(t)},r,n);return{inputProps:{...i,"aria-describedby":["invalid"===t.validationState?Qd.get(t):null,Gd.get(t)].filter(Boolean).join(" ")||void 0}}}o=l("acw62"),o=l("acw62");function Zd(e){return e&&e.__esModule?e.default:e}function Jd(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var ep,tp,np,rp,ip,lp,op,ap,sp,up,cp,dp,pp,fp,mp,hp,gp,yp,vp,bp,wp={};Jd(wp,"spectrum-FieldLabel",(()=>ep),(e=>ep=e)),Jd(wp,"spectrum-FieldLabel--positionSide",(()=>tp),(e=>tp=e)),Jd(wp,"spectrum-FieldLabel-requiredIcon",(()=>np),(e=>np=e)),Jd(wp,"spectrum-FieldLabel--alignEnd",(()=>rp),(e=>rp=e)),Jd(wp,"spectrum-Field",(()=>ip),(e=>ip=e)),Jd(wp,"spectrum-Field-contextualHelp",(()=>lp),(e=>lp=e)),Jd(wp,"spectrum-Field--positionTop",(()=>op),(e=>op=e)),Jd(wp,"spectrum-Field-field",(()=>ap),(e=>ap=e)),Jd(wp,"spectrum-Field--alignEnd",(()=>sp),(e=>sp=e)),Jd(wp,"spectrum-Field--positionSide",(()=>up),(e=>up=e)),Jd(wp,"spectrum-Field-wrapper",(()=>cp),(e=>cp=e)),Jd(wp,"spectrum-Field--hasContextualHelp",(()=>dp),(e=>dp=e)),Jd(wp,"spectrum-Form",(()=>pp),(e=>pp=e)),Jd(wp,"spectrum-Form--positionSide",(()=>fp),(e=>fp=e)),Jd(wp,"spectrum-Field-labelCell",(()=>mp),(e=>mp=e)),Jd(wp,"spectrum-Field-labelWrapper",(()=>hp),(e=>hp=e)),Jd(wp,"spectrum-Form--positionTop",(()=>gp),(e=>gp=e)),Jd(wp,"spectrum-LabeledValue",(()=>yp),(e=>yp=e)),Jd(wp,"spectrum-Form-itemLabel",(()=>vp),(e=>vp=e)),Jd(wp,"is-disabled",(()=>bp),(e=>bp=e)),ep="spectrum-FieldLabel_d2db1f",tp="spectrum-FieldLabel--positionSide_d2db1f",np="spectrum-FieldLabel-requiredIcon_d2db1f",rp="spectrum-FieldLabel--alignEnd_d2db1f",ip="spectrum-Field_d2db1f",lp="spectrum-Field-contextualHelp_d2db1f",op="spectrum-Field--positionTop_d2db1f",ap="spectrum-Field-field_d2db1f",sp="spectrum-Field--alignEnd_d2db1f",up="spectrum-Field--positionSide_d2db1f",cp="spectrum-Field-wrapper_d2db1f",dp="spectrum-Field--hasContextualHelp_d2db1f",pp="spectrum-Form_d2db1f",fp="spectrum-Form--positionSide_d2db1f",mp="spectrum-Field-labelCell_d2db1f",hp="spectrum-Field-labelWrapper_d2db1f",gp="spectrum-Form--positionTop_d2db1f",yp="spectrum-LabeledValue_d2db1f",vp="spectrum-Form-itemLabel_d2db1f",bp="is-disabled_d2db1f";let Ep=t(o).createContext(null);function kp(e){let t=(0,o.useContext)(Ep);return t?{...t,...e}:e}const Sp=new Set(["action","autoComplete","encType","method","target","onSubmit"]);t(o).forwardRef((function(e,n){e=Vr(e);let{children:r,labelPosition:i="top",labelAlign:l="start",isRequired:a,necessityIndicator:s,isQuiet:u,isEmphasized:c,isDisabled:d,isReadOnly:p,validationState:f,...m}=e,{styleProps:h}=tt(m),g=Oe(n),y={labelPosition:i,labelAlign:l,necessityIndicator:s};return t(o).createElement("form",{...C(m,{labelable:!0,propNames:Sp}),...h,noValidate:!0,ref:g,className:Me(Zd(wp),"spectrum-Form",{"spectrum-Form--positionSide":"side"===i,"spectrum-Form--positionTop":"top"===i},h.className)},t(o).createElement(Ep.Provider,{value:y},t(o).createElement(zr,{isQuiet:u,isEmphasized:c,isDisabled:d,isReadOnly:p,isRequired:a,validationState:f},r)))}));var xp;xp=function(e){var t,n;let r=Kr();return Lp.default.createElement(Gi,e,null!=r&&null!=(t=r.theme)&&null!=(n=t.global)&&n.express?Lp.default.createElement(Np,null):Lp.default.createElement(Tp.AlertMedium,null))};var Pp=Br(l("3p9rK")),Tp={};Object.defineProperty(Tp,"__esModule",{value:!0}),Tp.AlertMedium=Mp;var _p=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Cp(){return Cp=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Mp(e){var t=e.scale,n=void 0===t?"M":t,r=Ip(e,["scale"]);return _p.default.createElement("svg",Cp({},r,r),"L"===n&&_p.default.createElement("path",{d:"M10.563 2.206l-9.249 16.55a.5.5 0 0 0 .436.744h18.5a.5.5 0 0 0 .436-.744l-9.251-16.55a.5.5 0 0 0-.872 0zm1.436 15.044a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"}),"M"===n&&_p.default.createElement("path",{d:"M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .436-.744L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"}))}Mp.displayName="AlertMedium";var Lp=Br(l("acw62"));const Np=e=>Lp.default.createElement("svg",(0,Pp.default)({viewBox:"0 0 18 18"},e),Lp.default.createElement("path",{d:"M9 10.5a1 1 0 0 1-1-1V5a1 1 0 1 1 2 0v4.5a1 1 0 0 1-1 1Zm0 1.25A1.25 1.25 0 1 0 10.25 13 1.25 1.25 0 0 0 9 11.75Zm8.497 3.589a3.49 3.49 0 0 0 .079-3.474L12 1.815a3.385 3.385 0 0 0-5.994-.007L.416 11.88a3.485 3.485 0 0 0 .089 3.459A3.375 3.375 0 0 0 3.416 17h11.169a3.375 3.375 0 0 0 2.912-1.661ZM10.244 2.77l5.575 10.05a1.497 1.497 0 0 1-.037 1.489 1.374 1.374 0 0 1-1.197.69H3.416a1.374 1.374 0 0 1-1.197-.69 1.493 1.493 0 0 1-.046-1.474l5.593-10.08a1.386 1.386 0 0 1 2.478.015Z"}));var Rp;Np.displayName=Tp.AlertMedium.displayName,Rp=function(e){return Kp.default.createElement(Gi,e,Kp.default.createElement(Op.Asterisk,null))};var Op={};Object.defineProperty(Op,"__esModule",{value:!0}),Op.Asterisk=Dp;var Ap=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Fp(){return Fp=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Dp(e){var t=e.scale,n=void 0===t?"M":t,r=zp(e,["scale"]);return Ap.default.createElement("svg",Fp({},r,r),"L"===n&&Ap.default.createElement("path",{d:"M7.867 7.872c.061.062.103.145 0 .228l-1.283.827c-.104.061-.145.02-.186-.083L4.804 6.07l-2.09 2.297c-.021.042-.083.083-.145 0l-.994-1.035c-.103-.062-.082-.124 0-.186l2.36-1.966-2.691-1.014c-.042 0-.104-.083-.062-.186l.703-1.41a.11.11 0 0 1 .187-.04L4.43 4.06l.145-3.02A.109.109 0 0 1 4.7.917l1.718.227c.104 0 .124.042.104.145l-.808 2.96 2.734-.828c.061-.042.124-.042.165.082l.27 1.532c.02.103 0 .145-.084.145l-2.856.227z"}),"M"===n&&Ap.default.createElement("path",{d:"M6.573 6.558c.056.055.092.13 0 .204l-1.148.74c-.093.056-.13.02-.167-.073L3.832 4.947l-1.87 2.055c-.02.037-.075.074-.13 0l-.889-.926c-.092-.055-.074-.111 0-.167l2.111-1.76-2.408-.906c-.037 0-.092-.074-.055-.167l.63-1.259a.097.097 0 0 1 .166-.036l2.111 1.37.13-2.704a.097.097 0 0 1 .111-.11L5.277.54c.092 0 .11.037.092.13l-.722 2.647 2.444-.74c.056-.038.111-.038.148.073l.241 1.37c.019.093 0 .13-.074.13l-2.556.204z"}))}Dp.displayName="Asterisk";var Kp=Br(l("acw62"));function Vp(e){return e&&e.__esModule?e.default:e}function Up(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Bp,jp,$p,Hp,Wp,qp,Gp={};Up(Gp,"spectrum-HelpText",(()=>Bp),(e=>Bp=e)),Up(Gp,"spectrum-HelpText-validationIcon",(()=>jp),(e=>jp=e)),Up(Gp,"spectrum-HelpText-text",(()=>$p),(e=>$p=e)),Up(Gp,"spectrum-HelpText--neutral",(()=>Hp),(e=>Hp=e)),Up(Gp,"is-disabled",(()=>Wp),(e=>Wp=e)),Up(Gp,"spectrum-HelpText--negative",(()=>qp),(e=>qp=e)),Bp="spectrum-HelpText_f395de",jp="spectrum-HelpText-validationIcon_f395de",$p="spectrum-HelpText-text_f395de",Hp="spectrum-HelpText--neutral_f395de",Wp="is-disabled_f395de",qp="spectrum-HelpText--negative_f395de";const Qp=t(o).forwardRef((function(e,n){let{description:r,errorMessage:i,validationState:l,isDisabled:a,showErrorIcon:s,descriptionProps:u,errorMessageProps:c}=e,d=Oe(n),p=i&&"invalid"===l,{styleProps:f}=tt(e);return t(o).createElement("div",{...f,className:Me(Vp(Gp),"spectrum-HelpText","spectrum-HelpText--"+(p?"negative":"neutral"),{"is-disabled":a},f.className),ref:d},p?t(o).createElement(t(o).Fragment,null,s&&t(o).createElement(xp,{UNSAFE_className:Me(Vp(Gp),"spectrum-HelpText-validationIcon")}),t(o).createElement("div",{...c,className:Me(Vp(Gp),"spectrum-HelpText-text")},i)):t(o).createElement("div",{...u,className:Me(Vp(Gp),"spectrum-HelpText-text")},r))}));var Yp;Yp={"ar-AE":{"(optional)":"(اختياري)","(required)":"(مطلوب)"},"bg-BG":{"(optional)":"(незадължително)","(required)":"(задължително)"},"cs-CZ":{"(optional)":"(volitelně)","(required)":"(požadováno)"},"da-DK":{"(optional)":"(valgfrit)","(required)":"(obligatorisk)"},"de-DE":{"(optional)":"(optional)","(required)":"(erforderlich)"},"el-GR":{"(optional)":"(προαιρετικό)","(required)":"(απαιτείται)"},"en-US":{"(required)":"(required)","(optional)":"(optional)"},"es-ES":{"(optional)":"(opcional)","(required)":"(necesario)"},"et-EE":{"(optional)":"(valikuline)","(required)":"(nõutav)"},"fi-FI":{"(optional)":"(valinnainen)","(required)":"(pakollinen)"},"fr-FR":{"(optional)":"(facultatif)","(required)":"(requis)"},"he-IL":{"(optional)":"(אופציונלי)","(required)":"(נדרש)"},"hr-HR":{"(optional)":"(opcionalno)","(required)":"(obvezno)"},"hu-HU":{"(optional)":"(opcionális)","(required)":"(kötelező)"},"it-IT":{"(optional)":"(facoltativo)","(required)":"(obbligatorio)"},"ja-JP":{"(optional)":"(オプション)","(required)":"(必須)"},"ko-KR":{"(optional)":"(선택 사항)","(required)":"(필수 사항)"},"lt-LT":{"(optional)":"(pasirenkama)","(required)":"(privaloma)"},"lv-LV":{"(optional)":"(neobligāti)","(required)":"(obligāti)"},"nb-NO":{"(optional)":"(valgfritt)","(required)":"(obligatorisk)"},"nl-NL":{"(optional)":"(optioneel)","(required)":"(vereist)"},"pl-PL":{"(optional)":"(opcjonalne)","(required)":"(wymagane)"},"pt-BR":{"(optional)":"(opcional)","(required)":"(obrigatório)"},"pt-PT":{"(optional)":"(opcional)","(required)":"(obrigatório)"},"ro-RO":{"(optional)":"(opţional)","(required)":"(obligatoriu)"},"ru-RU":{"(optional)":"(дополнительно)","(required)":"(обязательно)"},"sk-SK":{"(optional)":"(nepovinné)","(required)":"(povinné)"},"sl-SI":{"(optional)":"(opcijsko)","(required)":"(obvezno)"},"sr-SP":{"(optional)":"(opciono)","(required)":"(obavezno)"},"sv-SE":{"(optional)":"(valfritt)","(required)":"(krävs)"},"tr-TR":{"(optional)":"(isteğe bağlı)","(required)":"(gerekli)"},"uk-UA":{"(optional)":"(необов’язково)","(required)":"(обов’язково)"},"zh-CN":{"(optional)":"(可选)","(required)":"(必填)"},"zh-TW":{"(optional)":"(選填)","(required)":"(必填)"}};var Xp,Zp,Jp,ef,tf,nf,rf,lf,of,af,sf,uf,cf,df,pf,ff,mf,hf,gf,yf,vf={};Up(vf,"spectrum-FieldLabel",(()=>Xp),(e=>Xp=e)),Up(vf,"spectrum-FieldLabel--positionSide",(()=>Zp),(e=>Zp=e)),Up(vf,"spectrum-FieldLabel-requiredIcon",(()=>Jp),(e=>Jp=e)),Up(vf,"spectrum-FieldLabel--alignEnd",(()=>ef),(e=>ef=e)),Up(vf,"spectrum-Field",(()=>tf),(e=>tf=e)),Up(vf,"spectrum-Field-contextualHelp",(()=>nf),(e=>nf=e)),Up(vf,"spectrum-Field--positionTop",(()=>rf),(e=>rf=e)),Up(vf,"spectrum-Field-field",(()=>lf),(e=>lf=e)),Up(vf,"spectrum-Field--alignEnd",(()=>of),(e=>of=e)),Up(vf,"spectrum-Field--positionSide",(()=>af),(e=>af=e)),Up(vf,"spectrum-Field-wrapper",(()=>sf),(e=>sf=e)),Up(vf,"spectrum-Field--hasContextualHelp",(()=>uf),(e=>uf=e)),Up(vf,"spectrum-Form",(()=>cf),(e=>cf=e)),Up(vf,"spectrum-Form--positionSide",(()=>df),(e=>df=e)),Up(vf,"spectrum-Field-labelCell",(()=>pf),(e=>pf=e)),Up(vf,"spectrum-Field-labelWrapper",(()=>ff),(e=>ff=e)),Up(vf,"spectrum-Form--positionTop",(()=>mf),(e=>mf=e)),Up(vf,"spectrum-LabeledValue",(()=>hf),(e=>hf=e)),Up(vf,"spectrum-Form-itemLabel",(()=>gf),(e=>gf=e)),Up(vf,"is-disabled",(()=>yf),(e=>yf=e)),Xp="spectrum-FieldLabel_d2db1f",Zp="spectrum-FieldLabel--positionSide_d2db1f",Jp="spectrum-FieldLabel-requiredIcon_d2db1f",ef="spectrum-FieldLabel--alignEnd_d2db1f",tf="spectrum-Field_d2db1f",nf="spectrum-Field-contextualHelp_d2db1f",rf="spectrum-Field--positionTop_d2db1f",lf="spectrum-Field-field_d2db1f",of="spectrum-Field--alignEnd_d2db1f",af="spectrum-Field--positionSide_d2db1f",sf="spectrum-Field-wrapper_d2db1f",uf="spectrum-Field--hasContextualHelp_d2db1f",cf="spectrum-Form_d2db1f",df="spectrum-Form--positionSide_d2db1f",pf="spectrum-Field-labelCell_d2db1f",ff="spectrum-Field-labelWrapper_d2db1f",mf="spectrum-Form--positionTop_d2db1f",hf="spectrum-LabeledValue_d2db1f",gf="spectrum-Form-itemLabel_d2db1f",yf="is-disabled_d2db1f";let bf=t(o).forwardRef((function(e,n){e=Vr(e);let{children:r,labelPosition:i="top",labelAlign:l=("side"===i?"start":null),isRequired:a,necessityIndicator:s=(null!=a?"icon":null),includeNecessityIndicatorInAccessibilityName:u=!1,htmlFor:c,for:d,elementType:p="label",onClick:f,...m}=e,h=Oe(n),{styleProps:g}=tt(m),y=Pe(Vp(Yp)),v=a?y.format("(required)"):y.format("(optional)"),b=t(o).createElement(Rp,{UNSAFE_className:Me(Vp(vf),"spectrum-FieldLabel-requiredIcon"),"aria-label":u?y.format("(required)"):void 0}),w=Me(Vp(vf),"spectrum-FieldLabel",{"spectrum-FieldLabel--positionSide":"side"===i,"spectrum-FieldLabel--alignEnd":"end"===l},g.className);return t(o).createElement(p,{...C(m),...g,onClick:f,ref:h,className:w,htmlFor:"label"===p?d||c:void 0},r,("label"===s||"icon"===s&&a)&&" ​","label"===s&&t(o).createElement("span",{"aria-hidden":u?void 0:a},v),"icon"===s&&a&&b)}));let wf=t(o).forwardRef((function(e,n){let r=kp(e),i=r!==e;e=r;let{label:l,labelPosition:a="top",labelAlign:s,isRequired:u,necessityIndicator:c,includeNecessityIndicatorInAccessibilityName:d,validationState:p,description:f,errorMessage:m,isDisabled:h,showErrorIcon:g,contextualHelp:y,children:v,labelProps:b,descriptionProps:E={},errorMessageProps:k={},elementType:S,wrapperClassName:P,wrapperProps:T={},..._}=e,{styleProps:C}=tt(_),I=!!f||m&&"invalid"===p,M=w(),L=Me(Vp(vf),"spectrum-Field",{"spectrum-Field--positionTop":"top"===a,"spectrum-Field--positionSide":"side"===a,"spectrum-Field--alignEnd":"end"===s,"spectrum-Field--hasContextualHelp":!!e.contextualHelp},C.className,P);v=t(o).cloneElement(v,x(v.props,{className:Me(Vp(vf),"spectrum-Field-field")}));let N=()=>t(o).createElement(Qp,{descriptionProps:E,errorMessageProps:k,description:f,errorMessage:m,validationState:p,isDisabled:h,showErrorIcon:g,gridArea:"helpText"}),R=t(o).createElement(t(o).Fragment,null,l&&t(o).createElement(bf,{...b,labelPosition:a,labelAlign:s,isRequired:u,necessityIndicator:c,includeNecessityIndicatorInAccessibilityName:d,elementType:S},l),l&&y&&t(o).createElement(ot,{slots:{actionButton:{UNSAFE_className:Me(Vp(vf),"spectrum-Field-contextualHelp"),id:M,"aria-labelledby":(null==b?void 0:b.id)?`${b.id} ${M}`:void 0}}},y));return i&&"side"===a&&l&&y&&(R=t(o).createElement("div",{className:Me(Vp(vf),"spectrum-Field-labelCell")},t(o).createElement("div",{className:Me(Vp(vf),"spectrum-Field-labelWrapper")},R))),t(o).createElement("div",{...C,...T,ref:n,className:L},R,"side"===a?t(o).createElement(as,{direction:"column",UNSAFE_className:Me(Vp(vf),"spectrum-Field-wrapper")},v,I&&N()):t(o).createElement(t(o).Fragment,null,v,I&&N()))}));function Ef(e={}){let[t,n]=s(e.value,e.defaultValue||[],e.onChange);return{value:t,setValue(t){e.isReadOnly||e.isDisabled||n(t)},isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isSelected:e=>t.includes(e),addValue(r){e.isReadOnly||e.isDisabled||t.includes(r)||n(t.concat(r))},removeValue(r){e.isReadOnly||e.isDisabled||t.includes(r)&&n(t.filter((e=>e!==r)))},toggleValue(r){e.isReadOnly||e.isDisabled||(t.includes(r)?n(t.filter((e=>e!==r))):n(t.concat(r)))},validationState:e.validationState}}function kf(e){return e&&e.__esModule?e.default:e}function Sf(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}const xf=t(o).createContext(null);var Pf,Tf,_f,Cf,If,Mf,Lf,Nf,Rf,Of,Af,Ff,zf,Df={};Sf(Df,"spectrum-Checkbox",(()=>Pf),(e=>Pf=e)),Sf(Df,"spectrum-Checkbox-input",(()=>Tf),(e=>Tf=e)),Sf(Df,"focus-ring",(()=>_f),(e=>_f=e)),Sf(Df,"spectrum-Checkbox-box",(()=>Cf),(e=>Cf=e)),Sf(Df,"is-indeterminate",(()=>If),(e=>If=e)),Sf(Df,"spectrum-Checkbox-checkmark",(()=>Mf),(e=>Mf=e)),Sf(Df,"spectrum-Checkbox-partialCheckmark",(()=>Lf),(e=>Lf=e)),Sf(Df,"is-checked",(()=>Nf),(e=>Nf=e)),Sf(Df,"spectrum-Checkbox-label",(()=>Rf),(e=>Rf=e)),Sf(Df,"is-hovered",(()=>Of),(e=>Of=e)),Sf(Df,"spectrum-Checkbox--quiet",(()=>Af),(e=>Af=e)),Sf(Df,"is-invalid",(()=>Ff),(e=>Ff=e)),Sf(Df,"is-disabled",(()=>zf),(e=>zf=e)),Pf="spectrum-Checkbox_4870fc",Tf="spectrum-Checkbox-input_4870fc",_f="focus-ring_4870fc",Cf="spectrum-Checkbox-box_4870fc",If="is-indeterminate_4870fc",Mf="spectrum-Checkbox-checkmark_4870fc",Lf="spectrum-Checkbox-partialCheckmark_4870fc",Nf="is-checked_4870fc",Rf="spectrum-Checkbox-label_4870fc",Of="is-hovered_4870fc",Af="spectrum-Checkbox--quiet_4870fc",Ff="is-invalid_4870fc",zf="is-disabled_4870fc";let Kf=(0,o.forwardRef)((function(e,n){let r=e;e=Vr(e);let{isIndeterminate:i=!1,isEmphasized:l=!1,isDisabled:a=!1,autoFocus:s,children:u,validationState:c,...d}=e,{styleProps:p}=tt(d),{hoverProps:f,isHovered:m}=Jt({isDisabled:a}),h=(0,o.useRef)(null),g=Ae(n,h),y=(0,o.useContext)(xf),{inputProps:v}=y?Xd({...e,value:e.value,isRequired:r.isRequired,validationState:r.validationState},y,h):Wd(e,il(e),h),b=i?t(o).createElement(zd,{UNSAFE_className:Me(kf(Df),"spectrum-Checkbox-partialCheckmark")}):t(o).createElement(Ld,{UNSAFE_className:Me(kf(Df),"spectrum-Checkbox-checkmark")});if(y){for(let e of["isSelected","defaultSelected","isEmphasized"])null!=r[e]&&console.warn(`${e} is unsupported on individual elements within a . Please apply these props to the group instead.`);null==e.value&&console.warn("A element within a requires a `value` property.")}return t(o).createElement("label",{...p,...f,ref:g,className:Me(kf(Df),"spectrum-Checkbox",{"is-checked":v.checked,"is-indeterminate":i,"spectrum-Checkbox--quiet":!l,"is-invalid":"invalid"===c,"is-disabled":a,"is-hovered":m},p.className)},t(o).createElement(Cn,{focusRingClass:Me(kf(Df),"focus-ring"),autoFocus:s},t(o).createElement("input",{...v,ref:h,className:Me(kf(Df),"spectrum-Checkbox-input")})),t(o).createElement("span",{className:Me(kf(Df),"spectrum-Checkbox-box")},b),u&&t(o).createElement("span",{className:Me(kf(Df),"spectrum-Checkbox-label")},u))}));var Vf,Uf,Bf,jf={};Sf(jf,"spectrum-FieldGroup",(()=>Vf),(e=>Vf=e)),Sf(jf,"spectrum-FieldGroup-group",(()=>Uf),(e=>Uf=e)),Sf(jf,"spectrum-FieldGroup-group--horizontal",(()=>Bf),(e=>Bf=e)),Vf="spectrum-FieldGroup_41d350",Uf="spectrum-FieldGroup-group_41d350",Bf="spectrum-FieldGroup-group--horizontal_41d350";t(o).forwardRef((function(e,n){e=kp(e=Vr(e));let{isEmphasized:r,children:i,orientation:l="vertical",validationState:a}=e,s=Oe(n),u=Ef(e),{labelProps:c,groupProps:d,descriptionProps:p,errorMessageProps:f}=Yd(e,u);return t(o).createElement(wf,{...e,ref:s,wrapperClassName:Me(kf(jf),"spectrum-FieldGroup"),labelProps:c,descriptionProps:p,errorMessageProps:f,elementType:"span",includeNecessityIndicatorInAccessibilityName:!0},t(o).createElement("div",{...d,className:Me(kf(jf),"spectrum-FieldGroup-group",{"spectrum-FieldGroup-group--horizontal":"horizontal"===l})},t(o).createElement(zr,{isEmphasized:r,validationState:a},t(o).createElement(xf.Provider,{value:u},i))))}));var $f;$f=function(e){return Xf.default.createElement(Gi,e,Xf.default.createElement(Hf.ChevronLeftMedium,null))};var Hf={};Object.defineProperty(Hf,"__esModule",{value:!0}),Hf.ChevronLeftMedium=Qf;var Wf=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function qf(){return qf=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Qf(e){var t=e.scale,n=void 0===t?"M":t,r=Gf(e,["scale"]);return Wf.default.createElement("svg",qf({},r,r),"L"===n&&Wf.default.createElement("path",{d:"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z"}),"M"===n&&Wf.default.createElement("path",{d:"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z"}))}Qf.displayName="ChevronLeftMedium";var Yf,Xf=Br(l("acw62"));Yf=function(e){return rm.default.createElement(Gi,e,rm.default.createElement(Zf.ChevronRightMedium,null))};var Zf={};Object.defineProperty(Zf,"__esModule",{value:!0}),Zf.ChevronRightMedium=nm;var Jf=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function em(){return em=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function nm(e){var t=e.scale,n=void 0===t?"M":t,r=tm(e,["scale"]);return Jf.default.createElement("svg",em({},r,r),"L"===n&&Jf.default.createElement("path",{d:"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z"}),"M"===n&&Jf.default.createElement("path",{d:"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z"}))}nm.displayName="ChevronRightMedium";var rm=Br(l("acw62"));function im(){return im=Object.assign?Object.assign.bind():function(e){for(var t=1;tym),(e=>ym=e)),gm(yh,"react-spectrum-ListView-row",(()=>vm),(e=>vm=e)),gm(yh,"react-spectrum-ListView--emphasized",(()=>bm),(e=>bm=e)),gm(yh,"react-spectrum-ListView--dropTarget",(()=>wm),(e=>wm=e)),gm(yh,"react-spectrum-ListViewItem",(()=>Em),(e=>Em=e)),gm(yh,"is-selected",(()=>km),(e=>km=e)),gm(yh,"is-hovered",(()=>Sm),(e=>Sm=e)),gm(yh,"is-active",(()=>xm),(e=>xm=e)),gm(yh,"focus-ring",(()=>Pm),(e=>Pm=e)),gm(yh,"react-spectrum-ListViewItem--firstRow",(()=>Tm),(e=>Tm=e)),gm(yh,"react-spectrum-ListView--quiet",(()=>_m),(e=>_m=e)),gm(yh,"is-next-selected",(()=>Cm),(e=>Cm=e)),gm(yh,"react-spectrum-ListViewItem--isFlushBottom",(()=>Im),(e=>Im=e)),gm(yh,"react-spectrum-ListView--loadingMore",(()=>Mm),(e=>Mm=e)),gm(yh,"react-spectrum-ListViewItem--lastRow",(()=>Lm),(e=>Lm=e)),gm(yh,"react-spectrum-ListView--isVerticalScrollbarVisible",(()=>Nm),(e=>Nm=e)),gm(yh,"react-spectrum-ListView--isHorizontalScrollbarVisible",(()=>Rm),(e=>Rm=e)),gm(yh,"react-spectrum-ListView--wrap",(()=>Om),(e=>Om=e)),gm(yh,"react-spectrum-ListViewItem-content",(()=>Am),(e=>Am=e)),gm(yh,"react-spectrum-ListViewItem-description",(()=>Fm),(e=>Fm=e)),gm(yh,"round-tops",(()=>zm),(e=>zm=e)),gm(yh,"round-bottoms",(()=>Dm),(e=>Dm=e)),gm(yh,"is-focused",(()=>Km),(e=>Km=e)),gm(yh,"is-disabled",(()=>Vm),(e=>Vm=e)),gm(yh,"has-checkbox",(()=>Um),(e=>Um=e)),gm(yh,"react-spectrum-ListViewItem-grid",(()=>Bm),(e=>Bm=e)),gm(yh,"react-spectrum-ListViewItem-draghandle-container",(()=>jm),(e=>jm=e)),gm(yh,"react-spectrum-ListViewItem-draghandle-button",(()=>$m),(e=>$m=e)),gm(yh,"react-spectrum-ListViewItem-checkboxWrapper",(()=>Hm),(e=>Hm=e)),gm(yh,"react-spectrum-ListViewItem-checkbox",(()=>Wm),(e=>Wm=e)),gm(yh,"react-spectrum-ListViewItem-thumbnail",(()=>qm),(e=>qm=e)),gm(yh,"react-spectrum-ListView--hasDescription",(()=>Gm),(e=>Gm=e)),gm(yh,"react-spectrum-ListViewItem-actions",(()=>Qm),(e=>Qm=e)),gm(yh,"react-spectrum-ListViewItem-actionmenu",(()=>Ym),(e=>Ym=e)),gm(yh,"react-spectrum-ListViewItem-parentIndicator",(()=>Xm),(e=>Xm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview",(()=>Zm),(e=>Zm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--compact",(()=>Jm),(e=>Jm=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--spacious",(()=>eh),(e=>eh=e)),gm(yh,"react-spectrum-ListViewItem-badge",(()=>th),(e=>th=e)),gm(yh,"react-spectrum-ListViewItem-dragPreview--multiple",(()=>nh),(e=>nh=e)),gm(yh,"react-spectrum-ListView--hasAnyChildren",(()=>rh),(e=>rh=e)),gm(yh,"react-spectrum-ListViewItem-parentIndicator--hasChildItems",(()=>ih),(e=>ih=e)),gm(yh,"react-spectrum-ListView--compact",(()=>lh),(e=>lh=e)),gm(yh,"react-spectrum-ListView--spacious",(()=>oh),(e=>oh=e)),gm(yh,"react-spectrum-ListView--draggable",(()=>ah),(e=>ah=e)),gm(yh,"react-spectrum-ListViewItem--dropTarget",(()=>sh),(e=>sh=e)),gm(yh,"react-spectrum-ListView-centeredWrapper",(()=>uh),(e=>uh=e)),gm(yh,"react-spectrum-ListView-centeredWrapper--loadingMore",(()=>ch),(e=>ch=e)),gm(yh,"react-spectrum-ListViewInsertionIndicator",(()=>dh),(e=>dh=e)),gm(yh,"react-spectrum-ListViewInsertionIndicator--dropTarget",(()=>ph),(e=>ph=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--enter",(()=>fh),(e=>fh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--enterActive",(()=>mh),(e=>mh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--exit",(()=>hh),(e=>hh=e)),gm(yh,"react-spectrum-ListViewItem-checkbox--exitActive",(()=>gh),(e=>gh=e)),ym="react-spectrum-ListView_dd5487",vm="react-spectrum-ListView-row_dd5487",bm="react-spectrum-ListView--emphasized_dd5487",wm="react-spectrum-ListView--dropTarget_dd5487",Em="react-spectrum-ListViewItem_dd5487",km="is-selected_dd5487",Sm="is-hovered_dd5487",xm="is-active_dd5487",Pm="focus-ring_dd5487",Tm="react-spectrum-ListViewItem--firstRow_dd5487",_m="react-spectrum-ListView--quiet_dd5487",Cm="is-next-selected_dd5487",Im="react-spectrum-ListViewItem--isFlushBottom_dd5487",Mm="react-spectrum-ListView--loadingMore_dd5487",Lm="react-spectrum-ListViewItem--lastRow_dd5487",Nm="react-spectrum-ListView--isVerticalScrollbarVisible_dd5487",Rm="react-spectrum-ListView--isHorizontalScrollbarVisible_dd5487",Om="react-spectrum-ListView--wrap_dd5487",Am="react-spectrum-ListViewItem-content_dd5487",Fm="react-spectrum-ListViewItem-description_dd5487",zm="round-tops_dd5487",Dm="round-bottoms_dd5487",Km="is-focused_dd5487",Vm="is-disabled_dd5487",Um="has-checkbox_dd5487",Bm="react-spectrum-ListViewItem-grid_dd5487",jm="react-spectrum-ListViewItem-draghandle-container_dd5487",$m="react-spectrum-ListViewItem-draghandle-button_dd5487",Hm="react-spectrum-ListViewItem-checkboxWrapper_dd5487",Wm="react-spectrum-ListViewItem-checkbox_dd5487",qm="react-spectrum-ListViewItem-thumbnail_dd5487",Gm="react-spectrum-ListView--hasDescription_dd5487",Qm="react-spectrum-ListViewItem-actions_dd5487",Ym="react-spectrum-ListViewItem-actionmenu_dd5487",Xm="react-spectrum-ListViewItem-parentIndicator_dd5487",Zm="react-spectrum-ListViewItem-dragPreview_dd5487",Jm="react-spectrum-ListViewItem-dragPreview--compact_dd5487",eh="react-spectrum-ListViewItem-dragPreview--spacious_dd5487",th="react-spectrum-ListViewItem-badge_dd5487",nh="react-spectrum-ListViewItem-dragPreview--multiple_dd5487",rh="react-spectrum-ListView--hasAnyChildren_dd5487",ih="react-spectrum-ListViewItem-parentIndicator--hasChildItems_dd5487",lh="react-spectrum-ListView--compact_dd5487",oh="react-spectrum-ListView--spacious_dd5487",ah="react-spectrum-ListView--draggable_dd5487",sh="react-spectrum-ListViewItem--dropTarget_dd5487",uh="react-spectrum-ListView-centeredWrapper_dd5487",ch="react-spectrum-ListView-centeredWrapper--loadingMore_dd5487",dh="react-spectrum-ListViewInsertionIndicator_dd5487",ph="react-spectrum-ListViewInsertionIndicator--dropTarget_dd5487",fh="react-spectrum-ListViewItem-checkbox--enter_dd5487",mh="react-spectrum-ListViewItem-checkbox--enterActive_dd5487",hh="react-spectrum-ListViewItem-checkbox--exit_dd5487",gh="react-spectrum-ListViewItem-checkbox--exitActive_dd5487";var bh;function wh(e){var n,r;let i,l,a,{item:s,isEmphasized:u}=e,{state:c,dragState:d,dropState:p,isListDraggable:f,isListDroppable:m,layout:h,dragAndDropHooks:g,loadingState:y}=(0,o.useContext)(Sh),{direction:v}=Se(),b=(0,o.useRef)(),{isFocusVisible:w,focusProps:E}=_n({within:!0}),{isFocusVisible:k,focusProps:S}=_n(),{rowProps:P,gridCellProps:T,isPressed:_,descriptionProps:C,isSelected:I,isDisabled:M,allowsSelection:L,hasAction:N}=Ic({node:s,isVirtualized:!0,shouldSelectOnPressUp:f},c,b),R=m&&!M,{hoverProps:O,isHovered:A}=Jt({isDisabled:!L&&!N}),{checkboxProps:F}=Lc({key:s.key},c),z=st(`.${hm(yh)["react-spectrum-ListViewItem-description"]}`,b);f&&(i=g.useDraggableItem({key:s.key,hasDragButton:!0},d),M&&(i=null));let D=(0,o.useRef)();if(m){let e={type:"item",key:s.key,dropPosition:"on"};l=p.isDropTarget(e),a=g.useDropIndicator({target:e},p,D)}let K=t(o).useRef(),{buttonProps:V}=Nn({...null==i?void 0:i.dragButtonProps,elementType:"div"},K),U="ltr"===v?t(o).createElement(Yf,{"aria-hidden":"true",UNSAFE_className:Me(hm(yh),"react-spectrum-ListViewItem-parentIndicator",{"react-spectrum-ListViewItem-parentIndicator--hasChildItems":s.props.hasChildItems,"is-disabled":!N})}):t(o).createElement($f,{"aria-hidden":"true",UNSAFE_className:Me(hm(yh),"react-spectrum-ListViewItem-parentIndicator",{"react-spectrum-ListViewItem-parentIndicator--hasChildItems":s.props.hasChildItems,"is-disabled":!N})}),B="none"!==c.selectionManager.selectionMode&&"toggle"===c.selectionManager.selectionBehavior,{visuallyHiddenProps:j}=An(),$=R?void 0:{"aria-hidden":void 0};const H=x(P,null==i?void 0:i.dragProps,$,O,E,S,(null==g?void 0:g.isVirtualDragging())&&{tabIndex:null});let W=null==s.prevKey,q=null==s.nextKey,G=!1;q&&"loadingMore"!==y&&(null===(n=h.getContentSize())||void 0===n?void 0:n.height)>=(null===(r=h.virtualizer)||void 0===r?void 0:r.getVisibleRect().height)&&(G=!0);let Q=!(c.selectionManager.isSelected(s.prevKey)||c.selectionManager.focusedKey===s.prevKey&&jt()&&c.selectionManager.isFocused),Y=!(c.selectionManager.isSelected(s.nextKey)||c.selectionManager.focusedKey===s.nextKey&&jt()&&c.selectionManager.isFocused),X="string"==typeof s.rendered?t(o).createElement(Ln,null,s.rendered):s.rendered;return M&&(X=t(o).createElement(zr,{isDisabled:!0},X)),t(o).createElement("div",{...H,className:Me(hm(yh),"react-spectrum-ListView-row",{"focus-ring":k,"round-tops":Q||A&&!I&&c.selectionManager.focusedKey!==s.key,"round-bottoms":Y||A&&!I&&c.selectionManager.focusedKey!==s.key}),ref:b},t(o).createElement("div",{className:Me(hm(yh),"react-spectrum-ListViewItem",{"is-active":_,"is-focused":w,"focus-ring":k,"is-hovered":A,"is-selected":I,"is-disabled":M,"is-prev-selected":c.selectionManager.isSelected(s.prevKey),"is-next-selected":c.selectionManager.isSelected(s.nextKey),"react-spectrum-ListViewItem--highlightSelection":"replace"===c.selectionManager.selectionBehavior&&(I||c.selectionManager.isSelected(s.nextKey)),"react-spectrum-ListViewItem--dropTarget":!!l,"react-spectrum-ListViewItem--firstRow":W,"react-spectrum-ListViewItem--lastRow":q,"react-spectrum-ListViewItem--isFlushBottom":G,"react-spectrum-ListViewItem--hasDescription":z}),...T},t(o).createElement(Ja,{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-grid"]},f&&t(o).createElement("div",{className:hm(yh)["react-spectrum-ListViewItem-draghandle-container"]},!M&&t(o).createElement(Cn,{focusRingClass:Me(hm(yh),"focus-ring")},t(o).createElement("div",{...V,className:Me(hm(yh),"react-spectrum-ListViewItem-draghandle-button"),style:w?{}:{...j.style},ref:K,draggable:"true"},t(o).createElement(um,null)))),m&&!(null==a?void 0:a.isHidden)&&t(o).createElement("div",{role:"button",...j,...null==a?void 0:a.dropIndicatorProps,ref:D}),t(o).createElement(cm,{in:B,unmountOnExit:!0,classNames:{enter:hm(yh)["react-spectrum-ListViewItem-checkbox--enter"],enterActive:hm(yh)["react-spectrum-ListViewItem-checkbox--enterActive"],exit:hm(yh)["react-spectrum-ListViewItem-checkbox--exit"],exitActive:hm(yh)["react-spectrum-ListViewItem-checkbox--exitActive"]},timeout:160},t(o).createElement("div",{className:hm(yh)["react-spectrum-ListViewItem-checkboxWrapper"]},t(o).createElement(Kf,{...F,UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-checkbox"],isEmphasized:u}))),t(o).createElement(ot,{slots:{text:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-content"]},description:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-description"],...C},illustration:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},image:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},actionButton:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0},actionGroup:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0,density:"compact"},actionMenu:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actionmenu"],isQuiet:!0}}},X,t(o).createElement(at,null,U)))))}function Eh(){let{dropState:e,dragAndDropHooks:n}=(0,o.useContext)(Sh),r=(0,o.useRef)(),{dropIndicatorProps:i}=n.useDropIndicator({target:{type:"root"}},e,r),l=e.isDropTarget({type:"root"}),{visuallyHiddenProps:a}=An();return!l&&i["aria-hidden"]?null:t(o).createElement("div",{role:"row","aria-hidden":i["aria-hidden"]},t(o).createElement("div",{role:"gridcell","aria-selected":"false"},t(o).createElement("div",{role:"button",...a,...i,ref:r})))}function kh(e){let{item:n,itemCount:r,itemHeight:i,density:l}=e,a=r>1;return t(o).createElement("div",{style:{height:i},className:Me(hm(yh),"react-spectrum-ListViewItem","react-spectrum-ListViewItem-dragPreview",{"react-spectrum-ListViewItem-dragPreview--multiple":a},`react-spectrum-ListViewItem-dragPreview--${l}`)},t(o).createElement(Ja,{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-grid"]},t(o).createElement(ot,{slots:{text:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-content"]},description:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-description"]},illustration:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},image:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-thumbnail"]},actionButton:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0},actionGroup:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actions"],isQuiet:!0,density:"compact"},actionMenu:{UNSAFE_className:hm(yh)["react-spectrum-ListViewItem-actionmenu"],isQuiet:!0}}},"string"==typeof n.rendered?t(o).createElement(Ln,null,n.rendered):n.rendered,a&&t(o).createElement("div",{className:Me(hm(yh),"react-spectrum-ListViewItem-badge")},r))))}bh={"ar-AE":{loading:"جارٍ التحميل...",loadingMore:"جارٍ تحميل المزيد..."},"bg-BG":{loading:"Зареждане...",loadingMore:"Зареждане на още..."},"cs-CZ":{loading:"Načítání...",loadingMore:"Načítání dalších..."},"da-DK":{loading:"Indlæser...",loadingMore:"Indlæser flere..."},"de-DE":{loading:"Laden...",loadingMore:"Mehr laden ..."},"el-GR":{loading:"Φόρτωση...",loadingMore:"Φόρτωση περισσότερων..."},"en-US":{loading:"Loading…",loadingMore:"Loading more…"},"es-ES":{loading:"Cargando…",loadingMore:"Cargando más…"},"et-EE":{loading:"Laadimine...",loadingMore:"Laadi rohkem..."},"fi-FI":{loading:"Ladataan…",loadingMore:"Ladataan lisää…"},"fr-FR":{loading:"Chargement...",loadingMore:"Chargement supplémentaire..."},"he-IL":{loading:"טוען...",loadingMore:"טוען עוד..."},"hr-HR":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"hu-HU":{loading:"Betöltés folyamatban…",loadingMore:"Továbbiak betöltése folyamatban…"},"it-IT":{loading:"Caricamento...",loadingMore:"Caricamento altri..."},"ja-JP":{loading:"読み込み中...",loadingMore:"さらに読み込み中..."},"ko-KR":{loading:"로드 중…",loadingMore:"추가 로드 중…"},"lt-LT":{loading:"Įkeliama...",loadingMore:"Įkeliama daugiau..."},"lv-LV":{loading:"Notiek ielāde...",loadingMore:"Tiek ielādēts vēl..."},"nb-NO":{loading:"Laster inn ...",loadingMore:"Laster inn flere ..."},"nl-NL":{loading:"Laden...",loadingMore:"Meer laden..."},"pl-PL":{loading:"Ładowanie...",loadingMore:"Wczytywanie większej liczby..."},"pt-BR":{loading:"Carregando...",loadingMore:"Carregando mais..."},"pt-PT":{loading:"A carregar...",loadingMore:"A carregar mais..."},"ro-RO":{loading:"Se încarcă...",loadingMore:"Se încarcă mai multe..."},"ru-RU":{loading:"Загрузка...",loadingMore:"Дополнительная загрузка..."},"sk-SK":{loading:"Načítava sa...",loadingMore:"Načítava sa viac..."},"sl-SI":{loading:"Nalaganje ...",loadingMore:"Nalaganje več vsebine ..."},"sr-SP":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"sv-SE":{loading:"Läser in...",loadingMore:"Läser in mer..."},"tr-TR":{loading:"Yükleniyor...",loadingMore:"Daha fazla yükleniyor..."},"uk-UA":{loading:"Завантаження…",loadingMore:"Завантаження інших об’єктів..."},"zh-CN":{loading:"正在加载...",loadingMore:"正在加载更多..."},"zh-TW":{loading:"載入中…",loadingMore:"正在載入更多…"}};const Sh=t(o).createContext(null),xh={compact:{medium:32,large:40},regular:{medium:40,large:50},spacious:{medium:48,large:60}};function Ph({children:e}){let{state:n}=(0,o.useContext)(Sh);return t(o).createElement("div",{role:"row","aria-rowindex":n.collection.size+1,className:Me(hm(yh),"react-spectrum-ListView-centeredWrapper",{"react-spectrum-ListView-centeredWrapper--loadingMore":n.collection.size>0})},t(o).createElement("div",{role:"gridcell"},e))}const Th=t(o).forwardRef((function(e,n){var r;let{density:i="regular",loadingState:l,onLoadMore:a,isQuiet:s,overflowMode:u="truncate",onAction:c,dragAndDropHooks:d,...p}=e,f=!!(null==d?void 0:d.useDraggableCollectionState),m=!!(null==d?void 0:d.useDroppableCollectionState),h=(0,o.useRef)(f),g=(0,o.useRef)(m);h.current!==f&&console.warn("Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior."),g.current!==m&&console.warn("Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.");let v,b=Oe(n),w=Ac({...e,selectionBehavior:"highlight"===e.selectionStyle?"replace":"toggle"}),{collection:E,selectionManager:k}=w,S=Pe(hm(bh)),P="loading"===l||"loadingMore"===l,{styleProps:T}=tt(e),_=(0,o.useRef)(null);f&&(v=d.useDraggableCollectionState({collection:E,selectionManager:k,preview:_}),d.useDraggableCollection({},v,b));let I=function(e,t,n){let{scale:r}=Kr(),i=Ce({usage:"search",sensitivity:"base"}),l=0===e.collection.size,a=(0,o.useMemo)((()=>new Nc({estimatedRowHeight:xh[t][r],padding:0,collator:i,loaderHeight:l?null:xh[t][r]})),[i,r,t,l,n]);return a.collection=e.collection,a.disabledKeys=e.disabledKeys,a}(w,e.density||"regular",u);I.allowDisabledKeyFocus="selection"===w.selectionManager.disabledBehavior||!!(null==v?void 0:v.draggingKeys.size);let M,L,N,R=null==d?void 0:d.DragPreview;m&&(M=d.useDroppableCollectionState({collection:E,selectionManager:k}),L=d.useDroppableCollection({keyboardDelegate:I,dropTargetDelegate:I},M,b),N=M.isDropTarget({type:"root"}));let{gridProps:O}=Cc({...e,isVirtualized:!0,keyboardDelegate:I,onAction:c},w,b);I.isLoading=P;let A=k.focusedKey;"item"===(null==M||null===(r=M.target)||void 0===r?void 0:r.type)&&(A=M.target.key);let[F,z]=(0,o.useState)(!1),[D,K]=(0,o.useState)(!1);y((()=>{b.current&&(z(b.current.clientWidth+2[...E].some((e=>e.hasChildNodes))),[E]);return t(o).createElement(Sh.Provider,{value:{state:w,dragState:v,dropState:M,dragAndDropHooks:d,onAction:c,isListDraggable:f,isListDroppable:m,layout:I,loadingState:l}},t(o).createElement(dn,null,t(o).createElement(Cn,{focusRingClass:Me(hm(yh),"focus-ring")},t(o).createElement(Id,{...x(m&&(null==L?void 0:L.collectionProps),O),...C(p),...O,...T,isLoading:P,onLoadMore:a,ref:b,focusedKey:A,scrollDirection:"vertical",className:Me(hm(yh),"react-spectrum-ListView",`react-spectrum-ListView--${i}`,"react-spectrum-ListView--emphasized",{"react-spectrum-ListView--quiet":s,"react-spectrum-ListView--loadingMore":"loadingMore"===l,"react-spectrum-ListView--draggable":!!f,"react-spectrum-ListView--dropTarget":!!N,"react-spectrum-ListView--isVerticalScrollbarVisible":F,"react-spectrum-ListView--isHorizontalScrollbarVisible":D,"react-spectrum-ListView--hasAnyChildren":V,"react-spectrum-ListView--wrap":"wrap"===u},T.className),layout:I,collection:E,transitionDuration:P?160:220},((n,r)=>{if("item"===n)return t(o).createElement(t(o).Fragment,null,m&&null==E.getKeyBefore(r.key)&&t(o).createElement(Eh,{key:"root"}),m&&t(o).createElement(vh,{key:`${r.key}-before`,target:{key:r.key,type:"item",dropPosition:"before"}}),t(o).createElement(wh,{item:r,isEmphasized:!0,hasActions:!!c}),m&&t(o).createElement(vh,{key:`${r.key}-after`,target:{key:r.key,type:"item",dropPosition:"after"},isPresentationOnly:null!=E.getKeyAfter(r.key)}));if("loader"===n)return t(o).createElement(Ph,null,t(o).createElement(Ed,{isIndeterminate:!0,"aria-label":E.size>0?S.format("loadingMore"):S.format("loading")}));if("placeholder"===n){let n=e.renderEmptyState?e.renderEmptyState():null;return null==n?null:t(o).createElement(Ph,null,n)}})))),R&&f&&t(o).createElement(R,{ref:_},(()=>{let e=w.collection.getItem(v.draggedKey),n=v.draggingKeys.size,r=I.getLayoutInfo(v.draggedKey).rect.height;return t(o).createElement(kh,{item:e,itemCount:n,itemHeight:r,density:i})})))}));var _h;_h=function(e){return Rh.default.createElement(Gi,e,Rh.default.createElement(Ch.ChevronDownMedium,null))};var Ch={};Object.defineProperty(Ch,"__esModule",{value:!0}),Ch.ChevronDownMedium=Nh;var Ih=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Mh(){return Mh=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Nh(e){var t=e.scale,n=void 0===t?"M":t,r=Lh(e,["scale"]);return Ih.default.createElement("svg",Mh({},r,r),"L"===n&&Ih.default.createElement("path",{d:"M11.99 1.51a1 1 0 0 0-1.707-.707L6 5.086 1.717.803A1 1 0 1 0 .303 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a.997.997 0 0 0 .293-.707z"}),"M"===n&&Ih.default.createElement("path",{d:"M9.99 1.01A1 1 0 0 0 8.283.303L5 3.586 1.717.303A1 1 0 1 0 .303 1.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z"}))}Nh.displayName="ChevronDownMedium";var Rh=Br(l("acw62"));o=l("acw62");function Oh(e,t,n){let{keyboardDelegate:r,isDisabled:i}=e,l=Ce({usage:"search",sensitivity:"base"}),a=(0,o.useMemo)((()=>r||new pa(t.collection,t.disabledKeys,null,l)),[r,t.collection,t.disabledKeys,l]),{menuTriggerProps:s,menuProps:u}=_a({isDisabled:i,type:"listbox"},t,n),{typeSelectProps:c}=aa({keyboardDelegate:a,selectionManager:t.selectionManager,onTypeSelect(e){t.setSelectedKey(e)}}),{labelProps:d,fieldProps:p,descriptionProps:f,errorMessageProps:m}=Dc({...e,labelElementType:"span"});c.onKeyDown=c.onKeyDownCapture,delete c.onKeyDownCapture;let h=C(e,{labelable:!0}),g=x(c,s,p),y=w();return{labelProps:{...d,onClick:()=>{var t;e.isDisabled||(n.current.focus(),Mt=t="keyboard",Ft(t,null))}},triggerProps:x(h,{...g,isDisabled:i,onKeyDown:S(g.onKeyDown,(e=>{switch(e.key){case"ArrowLeft":{e.preventDefault();let n=null!=t.selectedKey?a.getKeyAbove(t.selectedKey):a.getFirstKey();n&&t.setSelectedKey(n);break}case"ArrowRight":{e.preventDefault();let n=null!=t.selectedKey?a.getKeyBelow(t.selectedKey):a.getFirstKey();n&&t.setSelectedKey(n);break}}}),e.onKeyDown),onKeyUp:e.onKeyUp,"aria-labelledby":[g["aria-labelledby"],g["aria-label"]&&!g["aria-labelledby"]?g.id:null,y].filter(Boolean).join(" "),onFocus(n){t.isFocused||(e.onFocus&&e.onFocus(n),e.onFocusChange&&e.onFocusChange(!0),t.setFocused(!0))},onBlur(n){t.isOpen||(e.onBlur&&e.onBlur(n),e.onFocusChange&&e.onFocusChange(!1),t.setFocused(!1))}}),valueProps:{id:y},menuProps:{...u,autoFocus:t.focusStrategy||!0,shouldSelectOnPressUp:!0,shouldFocusOnHover:!0,disallowEmptySelection:!0,onBlur:n=>{n.currentTarget.contains(n.relatedTarget)||(e.onBlur&&e.onBlur(n),e.onFocusChange&&e.onFocusChange(!1),t.setFocused(!1))},"aria-labelledby":[p["aria-labelledby"],g["aria-label"]&&!p["aria-labelledby"]?g.id:null].filter(Boolean).join(" ")},descriptionProps:f,errorMessageProps:m}}function Ah(e){let{state:n,triggerRef:r,label:i,name:l,isDisabled:a}=e,{containerProps:s,inputProps:u,selectProps:c}=function(e,t,n){let{autoComplete:r,name:i,isDisabled:l}=e,o=Ht(),{visuallyHiddenProps:a}=An();var s;return{containerProps:{...a,"aria-hidden":!0},inputProps:{type:"text",tabIndex:null==o||t.isFocused||t.isOpen?-1:0,style:{fontSize:16},onFocus:()=>n.current.focus(),disabled:l},selectProps:{tabIndex:-1,autoComplete:r,disabled:l,name:i,size:t.collection.size,value:null!==(s=t.selectedKey)&&void 0!==s?s:"",onChange:e=>t.setSelectedKey(e.target.value)}}}(e,n,r);return n.collection.size<=300?t(o).createElement("div",s,t(o).createElement("input",u),t(o).createElement("label",null,i,t(o).createElement("select",c,t(o).createElement("option",null),[...n.collection.getKeys()].map((e=>{let r=n.collection.getItem(e);if("item"===r.type)return t(o).createElement("option",{key:r.key,value:r.key},r.textValue)}))))):l?t(o).createElement("input",{type:"hidden",autoComplete:c.autoComplete,name:l,disabled:a,value:n.selectedKey}):null}o=l("acw62");const Fh=new WeakMap;function zh(e,t){let n=Fh.get(e);if(!n)throw new Error("Unknown list");return`${n.id}-option-${r=t,"string"==typeof r?r.replace(/\s*/g,""):""+r}`;var r}function Dh(e,t,n){let r=C(e,{labelable:!0}),{listProps:i}=fa({...e,ref:n,selectionManager:t.selectionManager,collection:t.collection,disabledKeys:t.disabledKeys}),{focusWithinProps:l}=qt({onFocusWithin:e.onFocus,onBlurWithin:e.onBlur,onFocusWithinChange:e.onFocusChange}),o=w(e.id);Fh.set(t,{id:o,shouldUseVirtualFocus:e.shouldUseVirtualFocus,shouldSelectOnPressUp:e.shouldSelectOnPressUp,shouldFocusOnHover:e.shouldFocusOnHover,isVirtualized:e.isVirtualized,onAction:e.onAction});let{labelProps:a,fieldProps:s}=zc({...e,id:o,labelElementType:"span"});return{labelProps:a,listBoxProps:x(r,l,"multiple"===t.selectionManager.selectionMode?{"aria-multiselectable":"true"}:{},{role:"listbox",...x(s,i)})}}function Kh(e,t,n){let{key:r}=e,i=Fh.get(t);var l;let o=null!==(l=e.isDisabled)&&void 0!==l?l:t.disabledKeys.has(r);var a;let s=null!==(a=e.isSelected)&&void 0!==a?a:t.selectionManager.isSelected(r),u=t.selectionManager.focusedKey===r;var c;let d=null!==(c=e.shouldSelectOnPressUp)&&void 0!==c?c:i.shouldSelectOnPressUp;var p;let f=null!==(p=e.shouldFocusOnHover)&&void 0!==p?p:i.shouldFocusOnHover;var m;let h=null!==(m=e.shouldUseVirtualFocus)&&void 0!==m?m:i.shouldUseVirtualFocus;var g;let y=null!==(g=e.isVirtualized)&&void 0!==g?g:i.isVirtualized,v=k(),b=k(),w={role:"option","aria-disabled":o,"aria-selected":"none"!==t.selectionManager.selectionMode?s:void 0};Y()&&Z()||(w["aria-label"]=e["aria-label"],w["aria-labelledby"]=v,w["aria-describedby"]=b),y&&(w["aria-posinset"]=t.collection.getItem(r).index+1,w["aria-setsize"]=xa(t.collection));let{itemProps:E,isPressed:S,hasAction:P,allowsSelection:T}=ua({selectionManager:t.selectionManager,key:r,ref:n,shouldSelectOnPressUp:d,allowsDifferentPressOrigin:d&&f,isVirtualized:y,shouldUseVirtualFocus:h,isDisabled:o,onAction:i.onAction?()=>i.onAction(r):void 0}),{hoverProps:_}=Jt({isDisabled:o||!f,onHoverStart(){jt()||(t.selectionManager.setFocused(!0),t.selectionManager.setFocusedKey(r))}});return{optionProps:{...w,...x(E,_),id:zh(t,r)},labelProps:{id:v},descriptionProps:{id:b},isFocused:u,isSelected:s,isDisabled:o,isPressed:S,allowsSelection:T,hasAction:P}}function Vh(e){let{heading:t,"aria-label":n}=e,r=w();return{itemProps:{role:"presentation"},headingProps:t?{id:r,"aria-hidden":!0}:{},groupProps:{role:"group","aria-label":n,"aria-labelledby":t?r:void 0}}}function Uh(e){return e&&e.__esModule?e.default:e}function Bh(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var jh;jh={"ar-AE":{loading:"جارٍ التحميل...",loadingMore:"جارٍ تحميل المزيد..."},"bg-BG":{loading:"Зареждане...",loadingMore:"Зареждане на още..."},"cs-CZ":{loading:"Načítání...",loadingMore:"Načítání dalších..."},"da-DK":{loading:"Indlæser ...",loadingMore:"Indlæser flere ..."},"de-DE":{loading:"Laden...",loadingMore:"Mehr laden ..."},"el-GR":{loading:"Φόρτωση...",loadingMore:"Φόρτωση περισσότερων..."},"en-US":{loading:"Loading…",loadingMore:"Loading more…"},"es-ES":{loading:"Cargando…",loadingMore:"Cargando más…"},"et-EE":{loading:"Laadimine...",loadingMore:"Laadi rohkem..."},"fi-FI":{loading:"Ladataan…",loadingMore:"Ladataan lisää…"},"fr-FR":{loading:"Chargement...",loadingMore:"Chargement supplémentaire..."},"he-IL":{loading:"טוען...",loadingMore:"טוען עוד..."},"hr-HR":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"hu-HU":{loading:"Betöltés folyamatban…",loadingMore:"Továbbiak betöltése folyamatban…"},"it-IT":{loading:"Caricamento...",loadingMore:"Caricamento altri..."},"ja-JP":{loading:"読み込み中...",loadingMore:"さらに読み込み中..."},"ko-KR":{loading:"로드 중",loadingMore:"추가 로드 중"},"lt-LT":{loading:"Įkeliama...",loadingMore:"Įkeliama daugiau..."},"lv-LV":{loading:"Notiek ielāde...",loadingMore:"Tiek ielādēts vēl..."},"nb-NO":{loading:"Laster inn ...",loadingMore:"Laster inn flere ..."},"nl-NL":{loading:"Laden...",loadingMore:"Meer laden..."},"pl-PL":{loading:"Ładowanie...",loadingMore:"Wczytywanie większej liczby..."},"pt-BR":{loading:"Carregando...",loadingMore:"Carregando mais..."},"pt-PT":{loading:"A carregar...",loadingMore:"A carregar mais..."},"ro-RO":{loading:"Se încarcă...",loadingMore:"Se încarcă mai multe..."},"ru-RU":{loading:"Загрузка...",loadingMore:"Дополнительная загрузка..."},"sk-SK":{loading:"Načítava sa...",loadingMore:"Načítava sa viac..."},"sl-SI":{loading:"Nalaganje...",loadingMore:"Nalaganje več vsebine..."},"sr-SP":{loading:"Učitavam...",loadingMore:"Učitavam još..."},"sv-SE":{loading:"Läser in...",loadingMore:"Läser in mer..."},"tr-TR":{loading:"Yükleniyor...",loadingMore:"Daha fazla yükleniyor..."},"uk-UA":{loading:"Завантаження…",loadingMore:"Завантаження інших об’єктів..."},"zh-CN":{loading:"正在加载...",loadingMore:"正在加载更多..."},"zh-TW":{loading:"正在載入",loadingMore:"正在載入更多…"}};const $h=t(o).createContext(null);var Hh,Wh,qh,Gh,Qh,Yh,Xh,Zh,Jh,eg,tg,ng,rg,ig,lg,og,ag,sg,ug,cg,dg,pg,fg,mg,hg={};function gg(e){let{item:n,shouldSelectOnPressUp:r,shouldFocusOnHover:i,shouldUseVirtualFocus:l}=e,{rendered:a,key:s}=n,u=(0,o.useContext)($h),c=(0,o.useRef)(),{optionProps:d,labelProps:p,descriptionProps:f,isSelected:m,isDisabled:h,isFocused:g}=Kh({"aria-label":n["aria-label"],key:s,shouldSelectOnPressUp:r,shouldFocusOnHover:i,isVirtualized:!0,shouldUseVirtualFocus:l},u,c),{hoverProps:y,isHovered:v}=Jt({...e,isDisabled:h}),b="string"==typeof a?t(o).createElement(Ln,null,a):a,w=jt();return t(o).createElement(Cn,{focusRingClass:Me(Uh(hg),"focus-ring")},t(o).createElement("div",{...x(d,i?{}:y),ref:c,className:Me(Uh(hg),"spectrum-Menu-item",{"is-focused":l&&g&&w,"is-disabled":h,"is-selected":m,"is-selectable":"none"!==u.selectionManager.selectionMode,"is-hovered":v&&!i||g&&!w})},t(o).createElement(Ja,{UNSAFE_className:Me(Uh(hg),"spectrum-Menu-itemGrid")},t(o).createElement(at,null,t(o).createElement(ot,{slots:{text:{UNSAFE_className:Uh(hg)["spectrum-Menu-itemLabel"],...p},icon:{size:"S",UNSAFE_className:Uh(hg)["spectrum-Menu-icon"]},description:{UNSAFE_className:Uh(hg)["spectrum-Menu-description"],...f}}},b,m&&t(o).createElement(Ua,{slot:"checkmark",UNSAFE_className:Me(Uh(hg),"spectrum-Menu-checkmark")}))))))}function yg(e){let{children:n,reusableView:r,header:i}=e,l=r.content,{headingProps:a,groupProps:s}=Vh({heading:l.rendered,"aria-label":l["aria-label"]}),{separatorProps:u}=ss({elementType:"li"}),c=(0,o.useRef)();Pd({reusableView:i,ref:c});let{direction:d}=Se(),p=(0,o.useContext)($h);return t(o).createElement(o.Fragment,null,t(o).createElement("div",{role:"presentation",ref:c,style:Cd(i.layoutInfo,d)},l.key!==p.collection.getFirstKey()&&t(o).createElement("div",{...u,className:Me(Uh(hg),"spectrum-Menu-divider")}),l.rendered&&t(o).createElement("div",{...a,className:Me(Uh(hg),"spectrum-Menu-sectionHeading")},l.rendered)),t(o).createElement("div",{...s,style:Cd(r.layoutInfo,d),className:Me(Uh(hg),"spectrum-Menu")},n))}function vg(e){let{scale:t}=Kr(),n=Ce({usage:"search",sensitivity:"base"}),r=(0,o.useMemo)((()=>new Nc({estimatedRowHeight:"large"===t?48:32,estimatedHeadingHeight:"large"===t?33:26,padding:"large"===t?5:4,loaderHeight:40,placeholderHeight:"large"===t?48:32,collator:n})),[n,t]);return r.collection=e.collection,r.disabledKeys=e.disabledKeys,r}Bh(hg,"spectrum-Menu-popover",(()=>Hh),(e=>Hh=e)),Bh(hg,"spectrum-Menu",(()=>Wh),(e=>Wh=e)),Bh(hg,"spectrum-Menu-sectionHeading",(()=>qh),(e=>qh=e)),Bh(hg,"spectrum-Menu-checkmark",(()=>Gh),(e=>Gh=e)),Bh(hg,"spectrum-Menu-item",(()=>Qh),(e=>Qh=e)),Bh(hg,"is-selected",(()=>Yh),(e=>Yh=e)),Bh(hg,"spectrum-Icon",(()=>Xh),(e=>Xh=e)),Bh(hg,"spectrum-Menu-itemLabel",(()=>Zh),(e=>Zh=e)),Bh(hg,"spectrum-Menu-itemIcon",(()=>Jh),(e=>Jh=e)),Bh(hg,"spectrum-Menu-itemLabel--wrapping",(()=>eg),(e=>eg=e)),Bh(hg,"spectrum-Menu-divider",(()=>tg),(e=>tg=e)),Bh(hg,"spectrum-Menu-itemGrid",(()=>ng),(e=>ng=e)),Bh(hg,"is-selectable",(()=>rg),(e=>rg=e)),Bh(hg,"spectrum-Menu-end",(()=>ig),(e=>ig=e)),Bh(hg,"spectrum-Menu-icon",(()=>lg),(e=>lg=e)),Bh(hg,"spectrum-Menu-description",(()=>og),(e=>og=e)),Bh(hg,"spectrum-Menu-keyboard",(()=>ag),(e=>ag=e)),Bh(hg,"focus-ring",(()=>sg),(e=>sg=e)),Bh(hg,"is-focused",(()=>ug),(e=>ug=e)),Bh(hg,"is-hovered",(()=>cg),(e=>cg=e)),Bh(hg,"is-highlighted",(()=>dg),(e=>dg=e)),Bh(hg,"is-open",(()=>pg),(e=>pg=e)),Bh(hg,"is-active",(()=>fg),(e=>fg=e)),Bh(hg,"is-disabled",(()=>mg),(e=>mg=e)),Hh="spectrum-Menu-popover_7ea47c",Wh="spectrum-Menu_7ea47c",qh="spectrum-Menu-sectionHeading_7ea47c",Gh="spectrum-Menu-checkmark_7ea47c",Qh="spectrum-Menu-item_7ea47c",Yh="is-selected_7ea47c",Xh="spectrum-Icon_7ea47c",Zh="spectrum-Menu-itemLabel_7ea47c",Jh="spectrum-Menu-itemIcon_7ea47c",eg="spectrum-Menu-itemLabel--wrapping_7ea47c",tg="spectrum-Menu-divider_7ea47c",ng="spectrum-Menu-itemGrid_7ea47c",rg="is-selectable_7ea47c",ig="spectrum-Menu-end_7ea47c",lg="spectrum-Menu-icon_7ea47c",og="spectrum-Menu-description_7ea47c",ag="spectrum-Menu-keyboard_7ea47c",sg="focus-ring_7ea47c",ug="is-focused_7ea47c",cg="is-hovered_7ea47c",dg="is-highlighted_7ea47c",pg="is-open_7ea47c",fg="is-active_7ea47c",mg="is-disabled_7ea47c";const bg=t(o).forwardRef((function(e,n){let{layout:r,state:i,shouldSelectOnPressUp:l,focusOnPointerEnter:a,shouldUseVirtualFocus:s,domProps:u={},transitionDuration:c=0,onScroll:d}=e,{listBoxProps:p}=Dh({...e,keyboardDelegate:r,isVirtualized:!0},i,n),{styleProps:f}=tt(e),m=Pe(Uh(jh));return r.isLoading=e.isLoading,t(o).createElement($h.Provider,{value:i},t(o).createElement(dn,null,t(o).createElement(Id,{...f,...x(p,u),ref:n,focusedKey:i.selectionManager.focusedKey,sizeToFit:"height",scrollDirection:"vertical",className:Me(Uh(hg),"spectrum-Menu",f.className),layout:r,collection:i.collection,renderWrapper:(e,n,r,i)=>"section"===n.viewType?t(o).createElement(yg,{key:n.key,reusableView:n,header:r.find((e=>"header"===e.viewType))},i(r.filter((e=>"item"===e.viewType)))):t(o).createElement(Td,{key:n.key,reusableView:n,parent:e}),transitionDuration:c,isLoading:e.isLoading,onLoadMore:e.onLoadMore,shouldUseVirtualFocus:s,onScroll:d},((n,r)=>{if("item"===n)return t(o).createElement(gg,{item:r,shouldSelectOnPressUp:l,shouldFocusOnHover:a,shouldUseVirtualFocus:s});if("loader"===n)return t(o).createElement("div",{role:"option",style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},t(o).createElement(Ed,{isIndeterminate:!0,size:"S","aria-label":i.collection.size>0?m.format("loadingMore"):m.format("loading"),UNSAFE_className:Me(Uh(hg),"spectrum-Dropdown-progressCircle")}));if("placeholder"===n){let n=e.renderEmptyState?e.renderEmptyState():null;return null==n?null:t(o).createElement("div",{role:"option"},n)}}))))}));t(o).forwardRef((function(e,n){let r=Ac(e),i=vg(r),l=Oe(n);return t(o).createElement(bg,{...e,ref:l,state:r,layout:i})}));o=l("acw62"),o=l("acw62");function wg(e){let t=Ra(e),n=Fc({...e,onSelectionChange:n=>{null!=e.onSelectionChange&&e.onSelectionChange(n),t.close()}}),[r,i]=(0,o.useState)(!1);return{...n,...t,open(){0!==n.collection.size&&t.open()},toggle(e){0!==n.collection.size&&t.toggle(e)},isFocused:r,setFocused:i}}function Eg(e){return e&&e.__esModule?e.default:e}function kg(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var Sg;Sg={"ar-AE":{loading:"جارٍ التحميل...",placeholder:"حدد خيارًا..."},"bg-BG":{loading:"Зареждане...",placeholder:"Изберете опция"},"cs-CZ":{loading:"Načítání...",placeholder:"Vyberte vhodnou možnost..."},"da-DK":{loading:"Indlæser ...",placeholder:"Vælg en mulighed ..."},"de-DE":{loading:"Laden...",placeholder:"Option auswählen..."},"el-GR":{loading:"Φόρτωση...",placeholder:"Επιλέξτε…"},"en-US":{placeholder:"Select an option…",loading:"Loading…"},"es-ES":{loading:"Cargando…",placeholder:"Selecciona una de estas opciones..."},"et-EE":{loading:"Laadimine...",placeholder:"Valige valikuline..."},"fi-FI":{loading:"Ladataan…",placeholder:"Valitse vaihtoehto..."},"fr-FR":{loading:"Chargement...",placeholder:"Sélectionnez une option..."},"he-IL":{loading:"טוען...",placeholder:"בחר אפשרות..."},"hr-HR":{loading:"Učitavam...",placeholder:"Odaberite opciju"},"hu-HU":{loading:"Betöltés folyamatban…",placeholder:"Válasszon egy opciót…"},"it-IT":{loading:"Caricamento...",placeholder:"Seleziona un’opzione..."},"ja-JP":{loading:"読み込み中...",placeholder:"オプションを選択..."},"ko-KR":{loading:"로드 중",placeholder:"선택 사항 선택"},"lt-LT":{loading:"Įkeliama...",placeholder:"Pasirinkite parinktį..."},"lv-LV":{loading:"Notiek ielāde...",placeholder:"Atlasiet opciju..."},"nb-NO":{loading:"Laster inn ...",placeholder:"Velg et alternativ..."},"nl-NL":{loading:"Laden...",placeholder:"Optie selecteren..."},"pl-PL":{loading:"Ładowanie...",placeholder:"Wybierz opcję..."},"pt-BR":{loading:"Carregando...",placeholder:"Selecione uma opção..."},"pt-PT":{loading:"A carregar...",placeholder:"Selecionar uma opção..."},"ro-RO":{loading:"Se încarcă...",placeholder:"Selectați o opțiune"},"ru-RU":{loading:"Загрузка...",placeholder:"Выбрать параметр..."},"sk-SK":{loading:"Načítava sa...",placeholder:"Vyberte možnosť..."},"sl-SI":{loading:"Nalaganje...",placeholder:"Izberite možnost"},"sr-SP":{loading:"Učitavam...",placeholder:"Izaberite opciju"},"sv-SE":{loading:"Läser in...",placeholder:"Välj ett alternativ..."},"tr-TR":{loading:"Yükleniyor...",placeholder:"Bir seçim yapın…"},"uk-UA":{loading:"Завантаження…",placeholder:"Виберіть опцію..."},"zh-CN":{loading:"正在加载...",placeholder:"选择一个选项..."},"zh-TW":{loading:"正在載入",placeholder:"選取一個選項"}};var xg,Pg,Tg,_g,Cg,Ig,Mg,Lg,Ng,Rg,Og,Ag,Fg,zg,Dg,Kg,Vg,Ug,Bg={};kg(Bg,"spectrum-Dropdown",(()=>xg),(e=>xg=e)),kg(Bg,"spectrum-Dropdown-chevron",(()=>Pg),(e=>Pg=e)),kg(Bg,"spectrum-Dropdown-trigger",(()=>Tg),(e=>Tg=e)),kg(Bg,"spectrum-Dropdown-label",(()=>_g),(e=>_g=e)),kg(Bg,"is-placeholder",(()=>Cg),(e=>Cg=e)),kg(Bg,"spectrum-Icon",(()=>Ig),(e=>Ig=e)),kg(Bg,"spectrum-Dropdown-invalidIcon",(()=>Mg),(e=>Mg=e)),kg(Bg,"spectrum-Dropdown-progressCircle",(()=>Lg),(e=>Lg=e)),kg(Bg,"spectrum-Dropdown--quiet",(()=>Ng),(e=>Ng=e)),kg(Bg,"spectrum-Dropdown-popover--quiet",(()=>Rg),(e=>Rg=e)),kg(Bg,"spectrum-Field",(()=>Og),(e=>Og=e)),kg(Bg,"spectrum-Dropdown-fieldWrapper--quiet",(()=>Ag),(e=>Ag=e)),kg(Bg,"spectrum-Dropdown-fieldWrapper--positionSide",(()=>Fg),(e=>Fg=e)),kg(Bg,"is-selected",(()=>zg),(e=>zg=e)),kg(Bg,"is-invalid",(()=>Dg),(e=>Dg=e)),kg(Bg,"is-disabled",(()=>Kg),(e=>Kg=e)),kg(Bg,"is-hovered",(()=>Vg),(e=>Vg=e)),kg(Bg,"focus-ring",(()=>Ug),(e=>Ug=e)),xg="spectrum-Dropdown_6d8ec0",Pg="spectrum-Dropdown-chevron_6d8ec0",Tg="spectrum-Dropdown-trigger_6d8ec0",_g="spectrum-Dropdown-label_6d8ec0",Cg="is-placeholder_6d8ec0",Ig="spectrum-Icon_6d8ec0",Mg="spectrum-Dropdown-invalidIcon_6d8ec0",Lg="spectrum-Dropdown-progressCircle_6d8ec0",Ng="spectrum-Dropdown--quiet_6d8ec0",Rg="spectrum-Dropdown-popover--quiet_6d8ec0",Og="spectrum-Field_6d8ec0",Ag="spectrum-Dropdown-fieldWrapper--quiet_6d8ec0",Fg="spectrum-Dropdown-fieldWrapper--positionSide_6d8ec0",zg="is-selected_6d8ec0",Dg="is-invalid_6d8ec0",Kg="is-disabled_6d8ec0",Vg="is-hovered_6d8ec0",Ug="focus-ring_6d8ec0";const jg=t(o).forwardRef((function(e,n){e=Vr(e=lt(e,"picker"));let r,i=Pe(Eg(Sg)),{autoComplete:l,isDisabled:a,direction:s="bottom",align:u="start",shouldFlip:c=!0,placeholder:d=i.format("placeholder"),validationState:p,isQuiet:f,label:m,labelPosition:h="top",menuWidth:g,name:v,autoFocus:b}=e,w=wg(e),E=Oe(n),k=(0,o.useRef)(),S=(0,o.useRef)(),P=Fe(S),T=(0,o.useRef)(),_=vg(w),{labelProps:C,triggerProps:I,valueProps:M,menuProps:L,descriptionProps:N,errorMessageProps:R}=Oh({...e,keyboardDelegate:_},w,P),O=ut(),{hoverProps:A,isHovered:F}=Jt({isDisabled:a}),z=e.isLoading&&0===w.collection.size,K=e.isLoading&&w.collection.size>0,V=t(o).createElement(bg,{...L,ref:T,disallowEmptySelection:!0,autoFocus:w.focusStrategy||!0,shouldSelectOnPressUp:!0,focusOnPointerEnter:!0,layout:_,state:w,width:O?"100%":void 0,UNSAFE_style:{maxHeight:"inherit"},isLoading:K,onLoadMore:e.onLoadMore}),[U,B]=(0,o.useState)(null),{scale:j}=Kr(),$=(0,o.useCallback)((()=>{if(!O&&P.current){let e=P.current.offsetWidth;B(e)}}),[P,B,O]);if(D({ref:P,onResize:$}),y($,[j,w.selectedKey,$]),O)r=t(o).createElement(ia,{state:w},V);else{let e=f?null:U,n={width:g?Ge(g):e,minWidth:f?`calc(${U}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))`:U};r=t(o).createElement(Bo,{UNSAFE_style:n,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-popover",{"spectrum-Dropdown-popover--quiet":f}),ref:k,placement:`${s} ${u}`,shouldFlip:c,hideArrow:!0,state:w,triggerRef:P,scrollRef:T},V)}let H=w.selectedItem?w.selectedItem.rendered:d;"string"==typeof H&&(H=t(o).createElement(Ln,null,H));let W=t(o).createElement("div",{className:Me(Eg(Bg),"spectrum-Dropdown",{"is-invalid":"invalid"===p&&!a,"is-disabled":a,"spectrum-Dropdown--quiet":f})},t(o).createElement(Ah,{autoComplete:l,isDisabled:a,state:w,triggerRef:P,label:m,name:v}),t(o).createElement(Tt,x(A,I),t(o).createElement(Dl,{ref:S,isActive:w.isOpen,isQuiet:f,isDisabled:a,validationState:p,autoFocus:b,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-trigger",{"is-hovered":F})},t(o).createElement(ot,{slots:{icon:{UNSAFE_className:Me(Eg(Bg),"spectrum-Icon"),size:"S"},text:{...M,UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-label",{"is-placeholder":!w.selectedItem})},description:{isHidden:!0}}},H),z&&t(o).createElement(Ed,{isIndeterminate:!0,size:"S","aria-label":i.format("loading"),UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-progressCircle")}),"invalid"===p&&!z&&!a&&t(o).createElement(xp,{UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-invalidIcon")}),t(o).createElement(_h,{UNSAFE_className:Me(Eg(Bg),"spectrum-Dropdown-chevron")}))),0===w.collection.size?null:r),q=m?Me(Eg(Bg),"spectrum-Field",{"spectrum-Dropdown-fieldWrapper--quiet":f,"spectrum-Dropdown-fieldWrapper--positionSide":"side"===h}):"";return t(o).createElement(wf,{...e,ref:E,wrapperClassName:q,labelProps:C,descriptionProps:N,errorMessageProps:R,showErrorIcon:!1,includeNecessityIndicatorInAccessibilityName:!0,elementType:"span"},W)}));const $g=(0,(o=l("acw62")).forwardRef)((function(e,n){e=lt(e);let{elementType:r="div",children:i,...l}=e,{styleProps:a}=tt(e,Be),s=Oe(n);return t(o).createElement(r,{...C(l),...a,ref:s},t(o).createElement(at,null,i))}));(0,o.forwardRef)((function(e,n){e=lt(e,"content");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("section",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));(0,o.forwardRef)((function(e,n){e=lt(e,"footer");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("footer",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));(0,o.forwardRef)((function(e,n){e=lt(e,"header");let{children:r,...i}=e,{styleProps:l}=tt(i),a=Oe(n);return t(o).createElement("header",{...C(i),...l,ref:a},t(o).createElement(at,null,r))}));var Hg;Hg=function(e){return qg.default.createElement(Qi,e,qg.default.createElement("svg",{viewBox:"0 0 32 32",height:"32",width:"32"},qg.default.createElement("path",{fill:"var(--spectrum-global-color-gray-300)",d:"M3 29.5C1.6 29.5.5 28.4.5 27V5C.5 3.6 1.6 2.5 3 2.5h10.1c.5 0 1 .2 1.4.6l3.1 3.1c.2.2.4.3.7.3H29c1.4 0 2.5 1.1 2.5 2.5v18c0 1.4-1.1 2.5-2.5 2.5H3z"}),qg.default.createElement("path",{fill:"var(--spectrum-global-color-gray-500)",d:"M29 6H18.3c-.1 0-.2 0-.4-.2l-3.1-3.1c-.4-.4-1-.7-1.7-.7H3C1.3 2 0 3.3 0 5v22c0 1.6 1.3 3 3 3h26c1.7 0 3-1.4 3-3V9c0-1.7-1.3-3-3-3zm2 21c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V7h28c1.1 0 2 .9 2 2v18z"})))};var Wg,qg=Br(l("acw62"));Wg=function(e){return Xg.default.createElement(qi,e,Xg.default.createElement(Gg.A4uCopy,null))};var Gg={};Object.defineProperty(Gg,"__esModule",{value:!0}),Gg.A4uCopy=function(e){var t=Yg({},e);return Qg.default.createElement("svg",Yg({viewBox:"0 0 36 36"},t,t),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"18"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"14"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"10"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"6"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"32",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"28",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"24",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"20",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"16",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"2"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"6"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"10"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"14"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"18"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"12",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"16",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"20",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"24",y:"22"}),Qg.default.createElement("rect",{fillRule:"evenodd",height:"2",rx:"0.5",ry:"0.5",width:"2",x:"28",y:"22"}),Qg.default.createElement("path",{fillRule:"evenodd",d:"M10,12H3a1,1,0,0,0-1,1V33a1,1,0,0,0,1,1H23a1,1,0,0,0,1-1V26H11a1,1,0,0,1-1-1Z"}))};var Qg=function(e){return e&&e.__esModule?e:{default:e}}(l("acw62"));function Yg(){return Yg=Object.assign||function(e){for(var t=1;t{const{blocks:n,getPath:r,getItems:i,rootCategoryKey:l}=e,[a,s]=(0,o.useState)({items:{},folder:l,path:[],loadingState:"loading",block:null,disabledKeys:new Set,selectedItems:new Set}),u=e=>{s((t=>({...t,items:{},folder:e,loadingState:"loading"})))},c=e=>{if(!a.block)return;let t=null;t=e instanceof Set?[...e].map((e=>a.items[e])):a.items[e];const r=n[a.block].output(t);navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([r],{type:"text/plain"}),"text/html":new Blob([r],{type:"text/html"})})])},d=(e,t)=>{const n=new Set;return"item"===e.type&&"multiple"===e.selection?Object.values(t).filter((e=>e.isFolder)).forEach((e=>n.add(e.uid))):"folder"===e.type&&"multiple"===e.selection&&Object.values(t).filter((e=>!e.isFolder)).forEach((e=>n.add(e.sku))),n};(0,o.useEffect)((()=>{(async()=>{let e=await i(a.folder),t=await r(a.folder,l);s((r=>{const i=r.block?n[r.block]:{},l=d(i,e);return{...r,items:e,path:t,disabledKeys:l,loadingState:"idle"}}))})()}),[a.folder]);const p=n[a.block]||{};return t(o).createElement(zr,{theme:$u,height:"100%"},t(o).createElement(as,{direction:"column",height:"100%"},t(o).createElement($g,{padding:"size-100"},t(o).createElement(as,{direction:"row",gap:"size-100"},t(o).createElement(jg,{width:"100%",items:Object.values(n),"aria-label":"Select a block",placeholder:"Select a block",selectedKey:a.block,onSelectionChange:e=>{s((t=>{const r=n[e],i=d(r,t.items);return{...t,items:structuredClone(t.items),block:e,disabledKeys:i,selectedItems:new Set}}))}},(e=>t(o).createElement(ga,{key:e.key},e.name))),"multiple"===p.selection&&t(o).createElement(zl,{isDisabled:0===a.selectedItems.size,"aria-label":"Copy",onPress:()=>c(a.selectedItems)},t(o).createElement(Wg,null)))),t(o).createElement(Pu,{onAction:u},a.path.map((e=>t(o).createElement(ga,{key:e.key},e.name)))),t(o).createElement(Th,{"aria-label":"List of Items",items:Object.values(a.items),loadingState:a.loadingState,width:"100%",height:"100%",density:"spacious",selectionMode:"multiple"===p.selection?"multiple":"none",onAction:e=>{a.items[e].isFolder&&u(e)},selectedKeys:a.selectedItems,onSelectionChange:e=>{s((t=>({...t,selectedItems:e})))},disabledKeys:a.disabledKeys},(e=>e.isFolder?t(o).createElement(ga,{key:e.key,textValue:e.name,hasChildItems:!0},t(o).createElement(Hg,null),t(o).createElement(Ln,null,e.name),e.childCount>0&&t(o).createElement(Ln,{slot:"description"},e.childCount," items"),"single"===p.selection&&("any"===p.type||"folder"===p.type)&&t(o).createElement(zl,{"aria-label":"Copy",onPress:()=>c(e.key)},t(o).createElement(Wg,null))):t(o).createElement(ga,{key:e.key,textValue:e.name},e.thumbnail&&t(o).createElement(Zu,{src:e.thumbnail.url,alt:e.thumbnail.label}),t(o).createElement(Ln,null,e.name),"single"===p.selection&&("any"===p.type||"item"===p.type)&&t(o).createElement(zl,{"aria-label":"Copy",onPress:()=>c(e.key)},t(o).createElement(Wg,null)))))))};var Jg="query getCategory($uid: String!) {\n categories(filters: { category_uid: { eq: $uid } }) {\n items {\n name\n uid\n id\n breadcrumbs {\n category_name\n category_uid\n }\n }\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");var ey="query getCategoriesInCategory($uid: String!) {\n categories(\n filters: { parent_category_uid: { eq: $uid } }\n pageSize: 20\n currentPage: 1\n ) {\n items {\n uid\n id\n name\n product_count\n children_count\n __typename\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");var ty="query getProductsInCategory($uid: String!) {\n products(\n filter: { category_uid: { eq: $uid } }\n pageSize: 20\n currentPage: 1\n ) {\n items {\n name\n sku\n thumbnail {\n url\n label\n }\n ... on ConfigurableProduct {\n variants {\n product {\n thumbnail {\n url\n label\n }\n }\n }\n }\n url_key\n __typename\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n}".replaceAll(/(?:\r\n|\r|\n|\t|[\s]{4})/g," ");const ny="https://venia.magento.com/graphql",ry="wknd",iy=async(e,t,n,r)=>{const i=new URL(e);return i.searchParams.append("query",n),i.searchParams.append("variables",JSON.stringify(r)),await fetch(i,{method:"GET",headers:{"Content-Type":"application/json",Store:t}}).then((e=>e.json()))},ly=document.getElementById("app");ly&&a.render(t(o).createElement(Zg,{blocks:{identifier:{key:"identifier",name:"Identifier only",output:e=>e.isFolder?e.id:e.url_key,selection:"single",type:"any"},"product-list-page":{key:"product-list-page",name:"Product List Page",output:e=>`\n \n \n \n \n \n \n \n
    Product List Page
    category${e.id}
    `,selection:"single",type:"folder"}},getPath:async(e,t)=>{const n=[{key:t,name:"Root Category"}];if(e===t)return n;let r;try{r=await iy(ny,ry,Jg,{uid:e})}catch(e){return console.error("Could not retrieve current category",e),[]}const i=r.data?.categories?.items?.[0];return(i?.breadcrumbs||[]).forEach((e=>{n.push({key:e.category_uid,name:e.category_name})})),n.push({key:i.uid,name:i.name}),n},getItems:async e=>{let t={};try{(await iy(ny,ry,ey,{uid:e}))?.data?.categories?.items.forEach((e=>{t[e.uid]={...e,isFolder:!0,key:e.uid,childCount:parseInt(e.children_count)+parseInt(e.product_count)}}))}catch(e){console.error("Could not retrieve categories",e)}try{(await iy(ny,ry,ty,{uid:e}))?.data?.products?.items.forEach((e=>{let n;try{n="ConfigurableProduct"===e.__typename?e?.variants?.[0].product.thumbnail:e.thumbnail;const t=new URL(n.url);t.searchParams.set("width",40),t.searchParams.set("height",40),n.url=t.toString()}catch{}t[e.sku]={...e,thumbnail:n,isFolder:!1,key:e.sku}}))}catch(e){console.error("Could not retrieve products",e)}return t},rootCategoryKey:"MTA0"}),ly); //# sourceMappingURL=index.fce879da.js.map diff --git a/tools/picker/dist/index.fce879da.js.map b/tools/picker/dist/index.fce879da.js.map index 4f5ee900..1ebfc8ba 100644 --- a/tools/picker/dist/index.fce879da.js.map +++ b/tools/picker/dist/index.fce879da.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["node_modules/react/index.js","node_modules/react/cjs/react.production.min.js","node_modules/object-assign/index.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/scheduler/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/@babel/runtime/helpers/extends.js","src/index.js","node_modules/react-dom/index.js","src/picker.js","node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/useControlledState.ts","node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/number.ts","node_modules/@react-aria/ssr/dist/packages/@react-aria/ssr/src/SSRProvider.tsx","node_modules/clsx/dist/clsx.m.js","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLayoutEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useValueEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useId.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/chain.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/mergeProps.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/filterDOMProps.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/focusWithoutScrolling.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/runAfterTransition.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useGlobalListeners.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLabels.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useUpdateEffect.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useResizeObserver.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useSyncRef.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/getScrollParent.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useViewportSize.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useDescription.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/platform.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useEvent.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/scrollIntoView.ts","node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/isVirtualEvent.ts","node_modules/@internationalized/string/dist/packages/@internationalized/string/src/LocalizedStringDictionary.ts","node_modules/@internationalized/string/dist/packages/@internationalized/string/src/LocalizedStringFormatter.ts","node_modules/@swc/helpers/src/_define_property.mjs","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/queries.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/conversion.ts","node_modules/@internationalized/date/dist/packages/@internationalized/date/src/DateFormatter.ts","node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberFormatter.ts","node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberParser.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/utils.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useDefaultLocale.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/context.tsx","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useLocalizedStringFormatter.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useNumberFormatter.ts","node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useCollator.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/classNames.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/getWrappedElement.tsx","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/useMediaQuery.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/useDOMRef.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/BreakpointProvider.tsx","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/styleProps.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/Slots.tsx","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/useHasChild.ts","node_modules/@react-spectrum/utils/dist/packages/@react-spectrum/utils/src/useIsMobileDevice.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/textSelection.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/context.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/usePress.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/Pressable.tsx","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/PressResponder.tsx","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/utils.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocus.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusVisible.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusWithin.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useHover.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useInteractOutside.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/createEventHandler.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useKeyboard.ts","node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useLongPress.ts","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/focusSafely.ts","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/isElementVisible.ts","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusScope.tsx","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusRing.ts","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusRing.tsx","node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusable.tsx","node_modules/@react-spectrum/text/dist/packages/@react-spectrum/text/src/Text.tsx","node_modules/@react-spectrum/text/dist/packages/@react-spectrum/text/src/Heading.tsx","node_modules/@react-spectrum/text/dist/packages/@react-spectrum/text/src/Keyboard.tsx","node_modules/@react-aria/button/dist/packages/@react-aria/button/src/useButton.ts","node_modules/@react-aria/button/dist/packages/@react-aria/button/src/useToggleButton.ts","node_modules/@react-aria/visually-hidden/dist/packages/@react-aria/visually-hidden/src/VisuallyHidden.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/calculatePosition.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useCloseOnScroll.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlayPosition.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlay.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useOverlayTrigger.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/usePreventScroll.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useModal.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/DismissButton.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/*.js","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/ar-AE.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/bg-BG.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/cs-CZ.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/da-DK.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/de-DE.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/el-GR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/en-US.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/es-ES.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/et-EE.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/fi-FI.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/fr-FR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/he-IL.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/hr-HR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/hu-HU.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/it-IT.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/ja-JP.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/ko-KR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/lt-LT.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/lv-LV.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/nb-NO.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/nl-NL.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/pl-PL.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/pt-BR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/pt-PT.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/ro-RO.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/ru-RU.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/sk-SK.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/sl-SI.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/sr-SP.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/sv-SE.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/tr-TR.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/uk-UA.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/zh-CN.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/intl/zh-TW.json","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/ariaHideOutside.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/usePopover.ts","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/Overlay.tsx","node_modules/@react-aria/overlays/dist/packages/@react-aria/overlays/src/useModalOverlay.ts","node_modules/@react-spectrum/provider/dist/packages/@adobe/spectrum-css-temp/components/page/vars.css","node_modules/@react-spectrum/provider/dist/packages/@adobe/spectrum-css-temp/components/typography/index.css","node_modules/@react-spectrum/provider/dist/packages/@react-spectrum/provider/package.json","node_modules/@react-spectrum/provider/dist/packages/@react-spectrum/provider/src/Provider.tsx","node_modules/@react-spectrum/provider/dist/packages/@react-spectrum/provider/src/mediaQueries.ts","node_modules/@spectrum-icons/ui/CornerTriangle.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/CornerTriangle.js","node_modules/@react-spectrum/icon/dist/packages/@adobe/spectrum-css-temp/components/icon/vars.css","node_modules/@react-spectrum/icon/dist/packages/@react-spectrum/icon/src/Icon.tsx","node_modules/@react-spectrum/icon/dist/packages/@react-spectrum/icon/src/UIIcon.tsx","node_modules/@react-spectrum/icon/dist/packages/@react-spectrum/icon/src/Illustration.tsx","node_modules/@spectrum-icons/ui/CrossSmall.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/CrossSmall.js","node_modules/@react-stately/toggle/dist/packages/@react-stately/toggle/src/useToggleState.ts","node_modules/@react-spectrum/button/dist/packages/@adobe/spectrum-css-temp/components/button/vars.css","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/Button.tsx","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/ActionButton.tsx","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/FieldButton.tsx","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/LogicButton.tsx","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/ClearButton.tsx","node_modules/@react-spectrum/button/dist/packages/@react-spectrum/button/src/ToggleButton.tsx","node_modules/@spectrum-icons/ui/FolderBreadcrumb.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/FolderBreadcrumb.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","node_modules/react-transition-group/esm/config.js","node_modules/react-transition-group/esm/TransitionGroupContext.js","node_modules/react-transition-group/esm/utils/reflow.js","node_modules/react-transition-group/esm/Transition.js","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/OpenTransition.tsx","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/Overlay.tsx","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/overlays.css","node_modules/@react-spectrum/overlays/dist/packages/@adobe/spectrum-css-temp/components/popover/vars.css","node_modules/@react-spectrum/overlays/dist/packages/@adobe/spectrum-css-temp/components/underlay/vars.css","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/Underlay.tsx","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/Popover.tsx","node_modules/@react-spectrum/overlays/dist/packages/@adobe/spectrum-css-temp/components/modal/vars.css","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/Modal.tsx","node_modules/@react-spectrum/overlays/dist/packages/@adobe/spectrum-css-temp/components/tray/vars.css","node_modules/@react-spectrum/overlays/dist/packages/@react-spectrum/overlays/src/Tray.tsx","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/utils.ts","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/useTypeSelect.ts","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/useSelectableCollection.ts","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/useSelectableItem.ts","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/ListKeyboardDelegate.ts","node_modules/@react-aria/selection/dist/packages/@react-aria/selection/src/useSelectableList.ts","node_modules/@react-stately/collections/dist/packages/@react-stately/collections/src/Item.ts","node_modules/@react-stately/collections/dist/packages/@react-stately/collections/src/Section.ts","node_modules/@react-stately/collections/dist/packages/@react-stately/collections/src/CollectionBuilder.ts","node_modules/@react-stately/collections/dist/packages/@react-stately/collections/src/useCollection.ts","node_modules/@react-stately/collections/dist/packages/@react-stately/collections/src/getItemCount.ts","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/src/useMenuTrigger.ts","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/*.js","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/ar-AE.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/bg-BG.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/cs-CZ.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/da-DK.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/de-DE.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/el-GR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/en-US.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/es-ES.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/et-EE.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/fi-FI.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/fr-FR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/he-IL.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/hr-HR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/hu-HU.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/it-IT.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/ja-JP.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/ko-KR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/lt-LT.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/lv-LV.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/nb-NO.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/nl-NL.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/pl-PL.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/pt-BR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/pt-PT.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/ro-RO.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/ru-RU.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/sk-SK.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/sl-SI.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/sr-SP.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/sv-SE.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/tr-TR.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/uk-UA.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/zh-CN.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/intl/zh-TW.json","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/src/useMenu.ts","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/src/useMenuItem.ts","node_modules/@react-aria/menu/dist/packages/@react-aria/menu/src/useMenuSection.ts","node_modules/@react-stately/overlays/dist/packages/@react-stately/overlays/src/useOverlayTriggerState.ts","node_modules/@react-stately/menu/dist/packages/@react-stately/menu/src/useMenuTriggerState.ts","node_modules/@react-stately/selection/dist/packages/@react-stately/selection/src/Selection.ts","node_modules/@react-stately/selection/dist/packages/@react-stately/selection/src/useMultipleSelectionState.ts","node_modules/@react-stately/selection/dist/packages/@react-stately/selection/src/SelectionManager.ts","node_modules/@react-stately/tree/dist/packages/@react-stately/tree/src/TreeCollection.ts","node_modules/@react-stately/tree/dist/packages/@react-stately/tree/src/useTreeState.ts","node_modules/@spectrum-icons/ui/CheckmarkMedium.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/CheckmarkMedium.js","node_modules/@react-spectrum/layout/dist/packages/@react-spectrum/layout/src/Grid.tsx","node_modules/@react-spectrum/layout/dist/packages/@react-spectrum/layout/src/flex-gap.css","node_modules/@react-spectrum/layout/dist/packages/@react-spectrum/layout/src/Flex.tsx","node_modules/@react-aria/separator/dist/packages/@react-aria/separator/src/useSeparator.ts","node_modules/@spectrum-icons/workflow/More.js","node_modules/@spectrum-icons/workflow/node_modules/@adobe/react-spectrum-workflow/dist/More.js","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/context.ts","node_modules/@react-spectrum/menu/dist/packages/@adobe/spectrum-css-temp/components/menu/vars.css","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/MenuTrigger.tsx","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/MenuItem.tsx","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/MenuSection.tsx","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/Menu.tsx","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/*.js","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/ar-AE.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/bg-BG.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/cs-CZ.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/da-DK.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/de-DE.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/el-GR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/en-US.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/es-ES.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/et-EE.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/fi-FI.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/fr-FR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/he-IL.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/hr-HR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/hu-HU.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/it-IT.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/ja-JP.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/ko-KR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/lt-LT.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/lv-LV.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/nb-NO.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/nl-NL.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/pl-PL.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/pt-BR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/pt-PT.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/ro-RO.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/ru-RU.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/sk-SK.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/sl-SI.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/sr-SP.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/sv-SE.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/tr-TR.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/uk-UA.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/zh-CN.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/intl/zh-TW.json","node_modules/@react-spectrum/menu/dist/packages/@react-spectrum/menu/src/ActionMenu.tsx","node_modules/@react-aria/link/dist/packages/@react-aria/link/src/useLink.ts","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/src/useBreadcrumbItem.ts","node_modules/@spectrum-icons/ui/ChevronRightSmall.js","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/src/useBreadcrumbs.ts","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/*.js","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/ar-AE.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/bg-BG.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/cs-CZ.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/da-DK.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/de-DE.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/el-GR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/en-US.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/es-ES.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/et-EE.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/fi-FI.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/fr-FR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/he-IL.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/hr-HR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/hu-HU.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/it-IT.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/ja-JP.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/ko-KR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/lt-LT.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/lv-LV.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/nb-NO.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/nl-NL.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/pl-PL.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/pt-BR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/pt-PT.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/ro-RO.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/ru-RU.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/sk-SK.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/sl-SI.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/sr-SP.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/sv-SE.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/tr-TR.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/uk-UA.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/zh-CN.json","node_modules/@react-aria/breadcrumbs/dist/packages/@react-aria/breadcrumbs/intl/zh-TW.json","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/ChevronRightSmall.js","node_modules/@react-spectrum/breadcrumbs/dist/packages/@adobe/spectrum-css-temp/components/breadcrumb/vars.css","node_modules/@react-spectrum/breadcrumbs/dist/packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","node_modules/@react-spectrum/breadcrumbs/dist/packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx","node_modules/@react-spectrum/theme-default/dist/packages/@adobe/spectrum-css-temp/vars/spectrum-darkest.css","node_modules/@react-spectrum/theme-default/dist/packages/@adobe/spectrum-css-temp/vars/spectrum-global.css","node_modules/@react-spectrum/theme-default/dist/packages/@adobe/spectrum-css-temp/vars/spectrum-large.css","node_modules/@react-spectrum/theme-default/dist/packages/@adobe/spectrum-css-temp/vars/spectrum-light.css","node_modules/@react-spectrum/theme-default/dist/packages/@adobe/spectrum-css-temp/vars/spectrum-medium.css","node_modules/@react-spectrum/theme-default/dist/packages/@react-spectrum/theme-default/src/index.ts","node_modules/@react-spectrum/image/dist/packages/@adobe/spectrum-css-temp/components/image/vars.css","node_modules/@react-spectrum/image/dist/packages/@react-spectrum/image/src/Image.tsx","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Layout.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/LayoutInfo.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Point.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Rect.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Size.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/ReusableView.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/tween.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/utils.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/OverscanManager.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Transaction.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/Virtualizer.ts","node_modules/@react-stately/virtualizer/dist/packages/@react-stately/virtualizer/src/useVirtualizerState.ts","node_modules/@react-aria/live-announcer/dist/packages/@react-aria/live-announcer/src/LiveAnnouncer.tsx","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/src/utils.ts","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/src/useGridSelectionAnnouncement.ts","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/src/useHighlightSelectionDescription.ts","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/src/useGridSelectionCheckbox.ts","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/*.js","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/ar-AE.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/bg-BG.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/cs-CZ.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/da-DK.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/de-DE.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/el-GR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/en-US.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/es-ES.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/et-EE.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/fi-FI.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/fr-FR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/he-IL.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/hr-HR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/hu-HU.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/it-IT.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/ja-JP.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/ko-KR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/lt-LT.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/lv-LV.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/nb-NO.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/nl-NL.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/pl-PL.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/pt-BR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/pt-PT.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/ro-RO.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/ru-RU.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/sk-SK.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/sl-SI.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/sr-SP.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/sv-SE.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/tr-TR.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/uk-UA.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/zh-CN.json","node_modules/@react-aria/grid/dist/packages/@react-aria/grid/intl/zh-TW.json","node_modules/@react-aria/gridlist/dist/packages/@react-aria/gridlist/src/utils.ts","node_modules/@react-aria/gridlist/dist/packages/@react-aria/gridlist/src/useGridList.ts","node_modules/@react-aria/gridlist/dist/packages/@react-aria/gridlist/src/useGridListItem.ts","node_modules/@react-aria/gridlist/dist/packages/@react-aria/gridlist/src/useGridListSelectionCheckbox.ts","node_modules/@react-stately/layout/dist/packages/@react-stately/layout/src/ListLayout.ts","node_modules/@react-stately/list/dist/packages/@react-stately/list/src/ListCollection.ts","node_modules/@react-stately/list/dist/packages/@react-stately/list/src/useListState.ts","node_modules/@react-stately/list/dist/packages/@react-stately/list/src/useSingleSelectListState.ts","node_modules/@react-aria/label/dist/packages/@react-aria/label/src/useLabel.ts","node_modules/@react-aria/label/dist/packages/@react-aria/label/src/useField.ts","node_modules/@react-aria/progress/dist/packages/@react-aria/progress/src/useProgressBar.ts","node_modules/@react-spectrum/progress/dist/packages/@adobe/spectrum-css-temp/components/barloader/vars.css","node_modules/@react-spectrum/progress/dist/packages/@react-spectrum/progress/src/ProgressBarBase.tsx","node_modules/@react-spectrum/progress/dist/packages/@react-spectrum/progress/src/ProgressBar.tsx","node_modules/@react-spectrum/progress/dist/packages/@adobe/spectrum-css-temp/components/circleloader/vars.css","node_modules/@react-spectrum/progress/dist/packages/@react-spectrum/progress/src/ProgressCircle.tsx","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/utils.ts","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/ScrollView.tsx","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/useVirtualizerItem.ts","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/VirtualizerItem.tsx","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/Virtualizer.tsx","node_modules/@react-aria/virtualizer/dist/packages/@react-aria/virtualizer/src/useHasTabbableChild.ts","node_modules/@spectrum-icons/ui/CheckmarkSmall.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/CheckmarkSmall.js","node_modules/@spectrum-icons/ui/DashSmall.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/DashSmall.js","node_modules/@react-aria/toggle/dist/packages/@react-aria/toggle/src/useToggle.ts","node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckbox.ts","node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/utils.ts","node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckboxGroup.ts","node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts","node_modules/@react-spectrum/form/dist/packages/@adobe/spectrum-css-temp/components/fieldlabel/vars.css","node_modules/@react-spectrum/form/dist/packages/@react-spectrum/form/src/Form.tsx","node_modules/@spectrum-icons/ui/AlertMedium.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/AlertMedium.js","node_modules/@spectrum-icons/ui/Asterisk.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/Asterisk.js","node_modules/@react-spectrum/label/dist/packages/@adobe/spectrum-css-temp/components/helptext/vars.css","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/src/HelpText.tsx","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/*.js","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/ar-AE.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/bg-BG.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/cs-CZ.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/da-DK.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/de-DE.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/el-GR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/en-US.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/es-ES.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/et-EE.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/fi-FI.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/fr-FR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/he-IL.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/hr-HR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/hu-HU.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/it-IT.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/ja-JP.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/ko-KR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/lt-LT.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/lv-LV.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/nb-NO.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/nl-NL.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/pl-PL.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/pt-BR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/pt-PT.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/ro-RO.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/ru-RU.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/sk-SK.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/sl-SI.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/sr-SP.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/sv-SE.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/tr-TR.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/uk-UA.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/zh-CN.json","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/intl/zh-TW.json","node_modules/@react-spectrum/label/dist/packages/@adobe/spectrum-css-temp/components/fieldlabel/vars.css","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/src/Label.tsx","node_modules/@react-spectrum/label/dist/packages/@react-spectrum/label/src/Field.tsx","node_modules/@react-stately/checkbox/dist/packages/@react-stately/checkbox/src/useCheckboxGroupState.ts","node_modules/@react-spectrum/checkbox/dist/packages/@react-spectrum/checkbox/src/context.ts","node_modules/@react-spectrum/checkbox/dist/packages/@adobe/spectrum-css-temp/components/checkbox/vars.css","node_modules/@react-spectrum/checkbox/dist/packages/@react-spectrum/checkbox/src/Checkbox.tsx","node_modules/@react-spectrum/checkbox/dist/packages/@adobe/spectrum-css-temp/components/fieldgroup/vars.css","node_modules/@react-spectrum/checkbox/dist/packages/@react-spectrum/checkbox/src/CheckboxGroup.tsx","node_modules/@spectrum-icons/ui/ChevronLeftMedium.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/ChevronLeftMedium.js","node_modules/@spectrum-icons/ui/ChevronRightMedium.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/ChevronRightMedium.js","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/dom-helpers/esm/removeClass.js","node_modules/react-transition-group/esm/CSSTransition.js","node_modules/dom-helpers/esm/addClass.js","node_modules/dom-helpers/esm/hasClass.js","node_modules/@spectrum-icons/ui/ListGripper.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/ListGripper.js","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/styles.css","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/InsertionIndicator.tsx","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/ListViewItem.tsx","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/RootDropIndicator.tsx","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/DragPreview.tsx","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/*.js","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/ar-AE.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/bg-BG.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/cs-CZ.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/da-DK.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/de-DE.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/el-GR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/en-US.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/es-ES.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/et-EE.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/fi-FI.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/fr-FR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/he-IL.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/hr-HR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/hu-HU.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/it-IT.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/ja-JP.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/ko-KR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/lt-LT.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/lv-LV.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/nb-NO.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/nl-NL.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/pl-PL.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/pt-BR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/pt-PT.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/ro-RO.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/ru-RU.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/sk-SK.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/sl-SI.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/sr-SP.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/sv-SE.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/tr-TR.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/uk-UA.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/zh-CN.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/intl/zh-TW.json","node_modules/@react-spectrum/list/dist/packages/@react-spectrum/list/src/ListView.tsx","node_modules/@spectrum-icons/ui/ChevronDownMedium.js","node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui/dist/ChevronDownMedium.js","node_modules/@react-aria/select/dist/packages/@react-aria/select/src/useSelect.ts","node_modules/@react-aria/select/dist/packages/@react-aria/select/src/HiddenSelect.tsx","node_modules/@react-aria/listbox/dist/packages/@react-aria/listbox/src/utils.ts","node_modules/@react-aria/listbox/dist/packages/@react-aria/listbox/src/useListBox.ts","node_modules/@react-aria/listbox/dist/packages/@react-aria/listbox/src/useOption.ts","node_modules/@react-aria/listbox/dist/packages/@react-aria/listbox/src/useListBoxSection.ts","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/*.js","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/ar-AE.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/bg-BG.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/cs-CZ.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/da-DK.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/de-DE.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/el-GR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/en-US.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/es-ES.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/et-EE.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/fi-FI.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/fr-FR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/he-IL.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/hr-HR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/hu-HU.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/it-IT.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/ja-JP.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/ko-KR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/lt-LT.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/lv-LV.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/nb-NO.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/nl-NL.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/pl-PL.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/pt-BR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/pt-PT.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/ro-RO.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/ru-RU.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/sk-SK.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/sl-SI.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/sr-SP.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/sv-SE.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/tr-TR.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/uk-UA.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/zh-CN.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/intl/zh-TW.json","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/src/ListBoxContext.ts","node_modules/@react-spectrum/listbox/dist/packages/@adobe/spectrum-css-temp/components/menu/vars.css","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/src/ListBoxOption.tsx","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/src/ListBoxSection.tsx","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/src/ListBoxBase.tsx","node_modules/@react-spectrum/listbox/dist/packages/@react-spectrum/listbox/src/ListBox.tsx","node_modules/@react-stately/select/dist/packages/@react-stately/select/src/useSelectState.ts","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/*.js","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/ar-AE.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/bg-BG.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/cs-CZ.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/da-DK.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/de-DE.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/el-GR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/en-US.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/es-ES.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/et-EE.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/fi-FI.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/fr-FR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/he-IL.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/hr-HR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/hu-HU.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/it-IT.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/ja-JP.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/ko-KR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/lt-LT.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/lv-LV.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/nb-NO.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/nl-NL.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/pl-PL.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/pt-BR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/pt-PT.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/ro-RO.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/ru-RU.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/sk-SK.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/sl-SI.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/sr-SP.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/sv-SE.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/tr-TR.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/uk-UA.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/zh-CN.json","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/intl/zh-TW.json","node_modules/@react-spectrum/picker/dist/packages/@adobe/spectrum-css-temp/components/dropdown/vars.css","node_modules/@react-spectrum/picker/dist/packages/@react-spectrum/picker/src/Picker.tsx","node_modules/@react-spectrum/view/dist/packages/@react-spectrum/view/src/View.tsx","node_modules/@react-spectrum/view/dist/packages/@react-spectrum/view/src/Content.tsx","node_modules/@react-spectrum/view/dist/packages/@react-spectrum/view/src/Footer.tsx","node_modules/@react-spectrum/view/dist/packages/@react-spectrum/view/src/Header.tsx","node_modules/@spectrum-icons/illustrations/Folder.js","node_modules/@spectrum-icons/workflow/Copy.js","node_modules/@spectrum-icons/workflow/node_modules/@adobe/react-spectrum-workflow/dist/Copy.js","src/queries/category.graphql.js","src/queries/categories.graphql.js","src/queries/products.graphql.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime block mapping. Each block is defined by the following properties:\n * key: Unique key, must be same as the key in the object\n * name: Displayed name of the block\n * output: Function that receives the selected product(s) and/or category(ies) and returns the HTML to be copied into the clipboard\n * selection: Define if single or multi selection: single or multiple\n * type: Define what can be selected: any, item or folder\n */\nconst blocks = {\n 'identifier': {\n 'key': 'identifier',\n 'name': 'Identifier only',\n 'output': i => i.isFolder ? i.id : i.url_key, // url_key for product, id for category\n 'selection': 'single',\n 'type': 'any',\n },\n 'product-list-page': {\n 'key': 'product-list-page',\n 'name': 'Product List Page',\n 'output': i => `\n \n \n \n \n \n \n \n
    Product List Page
    category${i.id}
    `,\n 'selection': 'single',\n 'type': 'folder',\n }\n};\n\n/**\n * Fetch GraphQL query via GET method\n * \n * @param {string} api - URL of the GraphQL endpoint\n * @param {string} storeView - Store view code\n * @param {string} query - GraphQL query\n * @param {object} variables - GraphQL variables\n * @returns {Promise} GraphQL response as object\n */\nconst fetchGet = async (endpoint, storeView, query, variables) => {\n const api = new URL(endpoint);\n api.searchParams.append('query', query);\n api.searchParams.append('variables', JSON.stringify(variables));\n\n return await fetch(api, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Store': storeView,\n },\n }).then(res => res.json());\n}\n\n/**\n * Returns the current breadcrumb path based on the key of the current folder.\n * \n * Format: Array of objects with the following properties:\n * key: Unique key of the folder\n * name: Displayed name of the folder\n */\nconst getPath = async (key, rootCategoryKey) => {\n const newPath = [{ key: rootCategoryKey, name: 'Root Category' }];\n if (key === rootCategoryKey) {\n return newPath;\n }\n\n let currentCategory;\n try {\n currentCategory = await fetchGet(endpoint, storeView, getCategory, { uid: key });\n } catch (err) {\n console.error('Could not retrieve current category', err);\n return [];\n }\n\n // Add breadcrumbs\n const category = currentCategory.data?.categories?.items?.[0];\n const breadcrumbs = category?.breadcrumbs || [];\n breadcrumbs.forEach(breadcrumb => {\n newPath.push({ key: breadcrumb.category_uid, name: breadcrumb.category_name });\n });\n\n // Add current category\n newPath.push({ key: category.uid, name: category.name });\n\n return newPath;\n};\n\n/**\n * Returns all items to be displayed in the current folder.\n * \n * Format: Object with key -> item mapping. Each item is defined by the following properties:\n * key: Unique key, must be same as the key in the object\n * name: Displayed name of the item\n * isFolder: Define whether the item is a folder or a regular item\n * childCount: Number of children of the item (only for folders, optional)\n * thumbnail.url: URL of the thumbnail image (only for items, optional)\n * thumbnail.label: Label of the thumbnail image (only for items, optional)\n */\nconst getItems = async (folderKey) => {\n let newItems = {};\n\n try {\n // GraphQL query via fetch as GET\n const categories = await fetchGet(endpoint, storeView, getCategoriesInCategory, { uid: folderKey });\n categories?.data?.categories?.items.forEach(category => {\n newItems[category.uid] = {\n ...category,\n isFolder: true,\n key: category.uid,\n childCount: parseInt(category.children_count) + parseInt(category.product_count)\n };\n });\n } catch (err) {\n console.error('Could not retrieve categories', err);\n }\n\n // Get products\n try {\n const products = await fetchGet(endpoint, storeView, getProductsInCategory, { uid: folderKey });\n products?.data?.products?.items.forEach(product => {\n // Handle thumbnail for variants and change dimensions\n let thumbnail;\n\n try {\n if (product.__typename === 'ConfigurableProduct') {\n thumbnail = product?.variants?.[0].product.thumbnail;\n } else {\n thumbnail = product.thumbnail;\n }\n const thumbnailUrl = new URL(thumbnail.url);\n thumbnailUrl.searchParams.set('width', 40);\n thumbnailUrl.searchParams.set('height', 40);\n thumbnail.url = thumbnailUrl.toString();\n } catch {}\n\n newItems[product.sku] = { \n ...product,\n thumbnail,\n isFolder: false,\n key: product.sku\n };\n })\n } catch (err) {\n console.error('Could not retrieve products', err);\n }\n\n return newItems;\n};\n\nconst app = document.getElementById(\"app\");\nif (app) {\n ReactDOM.render(, app);\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import React, { useEffect, useState } from 'react';\n\nimport { defaultTheme, Provider, ListView, Item, Text, Image, Breadcrumbs, ActionButton, Flex, Picker as RSPicker, View } from '@adobe/react-spectrum';\nimport Folder from '@spectrum-icons/illustrations/Folder';\nimport Copy from '@spectrum-icons/workflow/Copy';\n\nconst Picker = props => {\n const { blocks, getPath, getItems, rootCategoryKey } = props;\n\n const [state, setState] = useState({\n items: {},\n folder: rootCategoryKey,\n path: [],\n loadingState: 'loading',\n block: null,\n disabledKeys: new Set(),\n selectedItems: new Set(),\n });\n\n const clickListItem = (key) => {\n const item = state.items[key];\n if (item.isFolder) {\n selectFolder(key);\n }\n }\n\n const selectFolder = (key) => {\n setState(state => ({\n ...state,\n items: {},\n folder: key,\n loadingState: 'loading',\n }));\n };\n\n const selectItems = (items) => {\n setState(state => ({\n ...state,\n selectedItems: items,\n }));\n };\n\n const copyToClipboard = key => {\n if (!state.block) {\n return;\n }\n\n let item = null;\n if (key instanceof Set) {\n item = [...key].map(k => state.items[k]);\n } else {\n item = state.items[key];\n }\n\n const html = blocks[state.block].output(item);\n navigator.clipboard.write([\n new ClipboardItem({\n 'text/plain': new Blob([ html ], { type: 'text/plain' }),\n 'text/html': new Blob([ html ], { type: 'text/html' }),\n }),\n ]);\n };\n\n const calculateDisabledKeys = (block, items) => {\n // Disable item or folder depending on the block type\n const disabledKeys = new Set();\n if (block.type === 'item' && block.selection === 'multiple') {\n Object.values(items).filter(i => i.isFolder).forEach(i => disabledKeys.add(i.uid));\n } else if (block.type === 'folder' && block.selection === 'multiple') {\n Object.values(items).filter(i => !i.isFolder).forEach(i => disabledKeys.add(i.sku));\n }\n\n return disabledKeys;\n };\n\n const selectBlock = block => {\n setState(state => {\n const blockObj = blocks[block];\n const disabledKeys = calculateDisabledKeys(blockObj, state.items);\n\n return {\n ...state,\n // This triggers a re-render of the list\n items: structuredClone(state.items),\n block,\n disabledKeys,\n selectedItems: new Set(),\n }\n });\n };\n\n useEffect(() => {\n (async () => {\n let newItems = await getItems(state.folder);\n let newPath = await getPath(state.folder, rootCategoryKey);\n\n setState(state => {\n const blockObj = state.block ? blocks[state.block] : {};\n const disabledKeys = calculateDisabledKeys(blockObj, newItems);\n\n return {\n ...state,\n items: newItems,\n path: newPath,\n disabledKeys,\n loadingState: 'idle',\n }\n });\n })();\n }, [state.folder]);\n\n // TODO: Search\n // TODO: Pagination\n\n const currentBlock = blocks[state.block] || {};\n\n return \n \n \n \n \n {block => (\n \n {block.name}\n \n )}\n \n {currentBlock.selection === 'multiple' && copyToClipboard(state.selectedItems)}>}\n \n \n \n {state.path.map(c => {c.name})}\n \n \n {item => {\n if (item.isFolder) {\n // is Folder\n return \n \n {item.name}\n {item.childCount > 0 && {item.childCount} items}\n {currentBlock.selection === 'single' && (currentBlock.type === 'any' || currentBlock.type === 'folder') && copyToClipboard(item.key)}>}\n \n }\n\n return \n {item.thumbnail && {item.thumbnail.label}}\n {item.name}\n {currentBlock.selection === 'single' && (currentBlock.type === 'any' || currentBlock.type === 'item') && copyToClipboard(item.key)}>}\n ;\n }}\n \n \n ;\n}\n\nexport default Picker;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useRef, useState} from 'react';\n\nexport function useControlledState(\n value: T,\n defaultValue: T,\n onChange: (value: T, ...args: any[]) => void\n): [T, (value: T, ...args: any[]) => void] {\n let [stateValue, setStateValue] = useState(value || defaultValue);\n let ref = useRef(value !== undefined);\n let wasControlled = ref.current;\n let isControlled = value !== undefined;\n // Internal state reference for useCallback\n let stateRef = useRef(stateValue);\n if (wasControlled !== isControlled) {\n console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n }\n\n ref.current = isControlled;\n\n let setValue = useCallback((value, ...args) => {\n let onChangeCaller = (value, ...onChangeArgs) => {\n if (onChange) {\n if (!Object.is(stateRef.current, value)) {\n onChange(value, ...onChangeArgs);\n }\n }\n if (!isControlled) {\n stateRef.current = value;\n }\n };\n\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs) => {\n let interceptedValue = value(isControlled ? stateRef.current : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) {\n return interceptedValue;\n }\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) {\n setStateValue(value);\n }\n onChangeCaller(value, ...args);\n }\n }, [isControlled, onChange]);\n\n // If a controlled component's value prop changes, we need to update stateRef\n if (isControlled) {\n stateRef.current = value;\n } else {\n value = stateValue;\n }\n\n return [value, setValue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\n\nexport function snapValueToStep(value: number, min: number, max: number, step: number): number {\n let remainder = ((value - (isNaN(min) ? 0 : min)) % step);\n let snappedValue = Math.abs(remainder) * 2 >= step\n ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n : value - remainder;\n\n if (!isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = min + Math.floor((max - min) / step) * step;\n }\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(max / step) * step;\n }\n\n // correct floating point behavior by rounding to step precision\n let string = step.toString();\n let index = string.indexOf('.');\n let precision = index >= 0 ? string.length - index : 0;\n\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n\n return snappedValue;\n}\n\n/* Takes a value and rounds off to the number of digits. */\nexport function toFixedNumber(value: number, digits: number, base: number = 10): number {\n const pow = Math.pow(base, digits);\n\n return Math.round(value * pow) / pow;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {ReactNode, useContext, useLayoutEffect, useMemo, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext(defaultContext);\n\nexport interface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n/**\n * When using SSR with React Aria, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${++cur.current}`,\n current: 0\n }), [cur]);\n\n return (\n \n {props.children}\n \n );\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/** @private */\nexport function useSSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [defaultId]);\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n let cur = useContext(SSRContext);\n let isInSSRContext = cur !== defaultContext;\n let [isSSR, setIsSSR] = useState(isInSSRContext);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== 'undefined' && isInSSRContext) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return isSSR;\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, useCallback, useRef, useState} from 'react';\nimport {useLayoutEffect} from './';\n\ntype SetValueAction = (prev: S) => Generator;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect(defaultValue: S | (() => S)): [S, Dispatch>] {\n let [value, setValue] = useState(defaultValue);\n let valueRef = useRef(value);\n let effect = useRef(null);\n\n valueRef.current = value;\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useRef(null);\n nextRef.current = () => {\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef.current();\n } else {\n setValue(newValue.value);\n }\n };\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef.current();\n }\n });\n\n let queue = useCallback(fn => {\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [effect, nextRef]);\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\nlet idsUpdaterMap: Map void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n let updateValue = useCallback((val) => {\n nextId.current = val;\n }, []);\n\n idsUpdaterMap.set(res, updateValue);\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : undefined;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps(...args: T): UnionToIntersection> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, propNames} = opts;\n let filteredProps = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: FocusableElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: FocusableElement): ScrollableElement[] {\n var parent = element.parentNode;\n var scrollableElements: ScrollableElement[] = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n let onTransitionStart = (e: TransitionEvent) => {\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: TransitionEvent) => {\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType = {\n ref: RefObject | undefined,\n onResize: () => void\n}\n\nexport function useResizeObserver(options: useResizeObserverOptionsType) {\n const {ref, onResize} = options;\n\n useEffect(() => {\n let element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n\n }, [onResize, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue {\n ref?: MutableRefObject\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef(context: ContextValue, ref: RefObject) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getScrollParent(node: Element): Element {\n while (node && !isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let [size, setSize] = useState(() => getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: visualViewport?.width || window.innerWidth,\n height: visualViewport?.height || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\n\nexport function useDescription(description: string): AriaLabelingProps {\n let [id, setId] = useState(undefined);\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (--desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n ) ||\n re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect, useRef} from 'react';\n\nexport function useEvent(\n ref: RefObject,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let element = ref.current;\n let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n element.addEventListener(event, handler, options);\n return () => {\n element.removeEventListener(event, handler, options);\n };\n }, [ref, event, options, isDisabled]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n let offsetX = relativeOffset(scrollView, element, 'left');\n let offsetY = relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n // Stop once we have found the ancestor we are interested in.\n break;\n } else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent as HTMLElement;\n }\n return sum;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAndroid} from './platform';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if (isAndroid() && (event as PointerEvent).pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return (\n (event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0 &&\n event.pointerType === 'mouse'\n )\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {LocalizedString} from './LocalizedStringFormatter';\n\nexport type LocalizedStrings = {\n [lang: string]: Record\n};\n\n/**\n * Stores a mapping of localized strings. Can be used to find the\n * closest available string for a given locale.\n */\nexport class LocalizedStringDictionary {\n private strings: LocalizedStrings;\n private defaultLocale: string;\n\n constructor(messages: LocalizedStrings, defaultLocale: string = 'en-US') {\n // Clone messages so we don't modify the original object.\n this.strings = {...messages};\n this.defaultLocale = defaultLocale;\n }\n\n /** Returns a localized string for the given key and locale. */\n getStringForLocale(key: K, locale: string): T {\n let strings = this.strings[locale];\n if (!strings) {\n strings = getStringsForLocale(locale, this.strings, this.defaultLocale);\n this.strings[locale] = strings;\n }\n\n let string = strings[key];\n if (!string) {\n throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n }\n\n return string;\n }\n}\n\nfunction getStringsForLocale(locale: string, strings: LocalizedStrings, defaultLocale = 'en-US') {\n // If there is an exact match, use it.\n if (strings[locale]) {\n return strings[locale];\n }\n\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = getLanguage(locale);\n if (strings[language]) {\n return strings[language];\n }\n\n for (let key in strings) {\n if (key.startsWith(language + '-')) {\n return strings[key];\n }\n }\n\n // Nothing close, use english.\n return strings[defaultLocale];\n}\n\nfunction getLanguage(locale: string) {\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n return new Intl.Locale(locale).language;\n }\n\n return locale.split('-')[0];\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {LocalizedStringDictionary} from './LocalizedStringDictionary';\n\nexport type Variables = Record | undefined;\nexport type LocalizedString = string | ((args: Variables, formatter?: LocalizedStringFormatter) => string);\ntype InternalString = string | (() => string);\n\nconst pluralRulesCache = new Map();\nconst numberFormatCache = new Map();\n\n/**\n * Formats localized strings from a LocalizedStringDictionary. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers for the locale.\n */\nexport class LocalizedStringFormatter {\n private locale: string;\n private strings: LocalizedStringDictionary;\n\n constructor(locale: string, strings: LocalizedStringDictionary) {\n this.locale = locale;\n this.strings = strings;\n }\n\n /** Formats a localized string for the given key with the provided variables. */\n format(key: K, variables?: Variables): string {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === 'function' ? message(variables, this) : message;\n }\n\n protected plural(count: number, options: Record, type: Intl.PluralRuleType = 'cardinal') {\n let opt = options['=' + count];\n if (opt) {\n return typeof opt === 'function' ? opt() : opt;\n }\n\n let key = this.locale + ':' + type;\n let pluralRules = pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {type});\n pluralRulesCache.set(key, pluralRules);\n }\n\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n\n protected number(value: number) {\n let numberFormat = numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n\n protected select(options: Record, value: string) {\n let opt = options[value] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime} from './types';\nimport {CalendarDate, CalendarDateTime, ZonedDateTime} from './CalendarDate';\nimport {fromAbsolute, toAbsolute, toCalendar, toCalendarDate} from './conversion';\nimport {weekStartData} from './weekStartData';\n\ntype DateValue = CalendarDate | CalendarDateTime | ZonedDateTime;\n\n/** Returns whether the given dates occur on the same day, regardless of the time or calendar system. */\nexport function isSameDay(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, using the calendar system of the first date. */\nexport function isSameMonth(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, using the calendar system of the first date. */\nexport function isSameYear(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n a = startOfYear(a);\n b = startOfYear(b);\n return a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the given dates occur on the same day, and are of the same calendar system. */\nexport function isEqualDay(a: DateValue, b: DateValue): boolean {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, and are of the same calendar system. */\nexport function isEqualMonth(a: DateValue, b: DateValue): boolean {\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, and are of the same calendar system. */\nexport function isEqualYear(a: DateValue, b: DateValue): boolean {\n a = startOfYear(a);\n b = startOfYear(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the date is today in the given time zone. */\nexport function isToday(date: DateValue, timeZone: string): boolean {\n return isSameDay(date, today(timeZone));\n}\n\n/**\n * Returns the day of week for the given date and locale. Days are numbered from zero to six,\n * where zero is the first day of the week in the given locale. For example, in the United States,\n * the first day of the week is Sunday, but in France it is Monday.\n */\nexport function getDayOfWeek(date: DateValue, locale: string): number {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n return dayOfWeek;\n}\n\n/** Returns the current time in the given time zone. */\nexport function now(timeZone: string): ZonedDateTime {\n return fromAbsolute(Date.now(), timeZone);\n}\n\n/** Returns today's date in the given time zone. */\nexport function today(timeZone: string): CalendarDate {\n return toCalendarDate(now(timeZone));\n}\n\nexport function compareDate(a: AnyCalendarDate, b: AnyCalendarDate): number {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\n\nexport function compareTime(a: AnyTime, b: AnyTime): number {\n return timeToMs(a) - timeToMs(b);\n}\n\nfunction timeToMs(a: AnyTime): number {\n return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;\n}\n\n/**\n * Returns the number of hours in the given date and time zone.\n * Usually this is 24, but it could be 23 or 25 if the date is on a daylight saving transition.\n */\nexport function getHoursInDay(a: CalendarDate, timeZone: string): number {\n let ms = toAbsolute(a, timeZone);\n let tomorrow = a.add({days: 1});\n let tomorrowMs = toAbsolute(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\n\nlet localTimeZone = null;\n\n/** Returns the time zone identifier for the current user. */\nexport function getLocalTimeZone(): string {\n // TODO: invalidate this somehow?\n if (localTimeZone == null) {\n localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return localTimeZone;\n}\n\n/** Returns the first date of the month for the given date. */\nexport function startOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function startOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function startOfMonth(date: CalendarDate): CalendarDate;\nexport function startOfMonth(date: DateValue): DateValue;\nexport function startOfMonth(date: DateValue): DateValue {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({days: date.day - 1});\n}\n\n/** Returns the last date of the month for the given date. */\nexport function endOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function endOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function endOfMonth(date: CalendarDate): CalendarDate;\nexport function endOfMonth(date: DateValue): DateValue;\nexport function endOfMonth(date: DateValue): DateValue {\n return date.add({days: date.calendar.getDaysInMonth(date) - date.day});\n}\n\n/** Returns the first day of the year for the given date. */\nexport function startOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function startOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function startOfYear(date: CalendarDate): CalendarDate;\nexport function startOfYear(date: DateValue): DateValue;\nexport function startOfYear(date: DateValue): DateValue {\n return startOfMonth(date.subtract({months: date.month - 1}));\n}\n\n/** Returns the last day of the year for the given date. */\nexport function endOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function endOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function endOfYear(date: CalendarDate): CalendarDate;\nexport function endOfYear(date: DateValue): DateValue;\nexport function endOfYear(date: DateValue): DateValue {\n return endOfMonth(date.add({months: date.calendar.getMonthsInYear(date) - date.month}));\n}\n\nexport function getMinimumMonthInYear(date: AnyCalendarDate) {\n if (date.calendar.getMinimumMonthInYear) {\n return date.calendar.getMinimumMonthInYear(date);\n }\n\n return 1;\n}\n\nexport function getMinimumDayInMonth(date: AnyCalendarDate) {\n if (date.calendar.getMinimumDayInMonth) {\n return date.calendar.getMinimumDayInMonth(date);\n }\n\n return 1;\n}\n\n/** Returns the first date of the week for the given date and locale. */\nexport function startOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function startOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function startOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function startOfWeek(date: DateValue, locale: string): DateValue;\nexport function startOfWeek(date: DateValue, locale: string): DateValue {\n let dayOfWeek = getDayOfWeek(date, locale);\n return date.subtract({days: dayOfWeek});\n}\n\n/** Returns the last date of the week for the given date and locale. */\nexport function endOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function endOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function endOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function endOfWeek(date: DateValue, locale: string): DateValue {\n return startOfWeek(date, locale).add({days: 6});\n}\n\nconst cachedRegions = new Map();\n\nfunction getRegion(locale: string) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n cachedRegions.set(locale, region);\n }\n return region;\n }\n\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? null : part;\n}\n\nfunction getWeekStart(locale: string) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = getRegion(locale);\n return weekStartData[region] || 0;\n}\n\n/** Returns the number of weeks in the given month and locale. */\nexport function getWeeksInMonth(date: DateValue, locale: string): number {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil((getDayOfWeek(startOfMonth(date), locale) + days) / 7);\n}\n\n/** Returns the lesser of the two provider dates. */\nexport function minDate
    (a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {constrain} from './manipulation';\nimport {getExtendedYear, GregorianCalendar} from './calendars/GregorianCalendar';\nimport {getLocalTimeZone} from './queries';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n let year = getExtendedYear(date.era, date.year);\n return epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path for UTC.\n if (timeZone === 'UTC') {\n return 0;\n }\n\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') {\n return epochFromDate(dateTime);\n }\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = getExtendedYear(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n constrain(copy);\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\ninterface ResolvedDateTimeFormatOptions extends Intl.ResolvedDateTimeFormatOptions {\n hourCycle?: Intl.DateTimeFormatOptions['hourCycle']\n}\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions() as ResolvedDateTimeFormatOptions;\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === 'ethiopic-amete-alem') {\n resolvedOptions.calendar = 'ethioaa';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = (new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions() as ResolvedDateTimeFormatOptions).hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour').value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour').value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\nlet supportsSignDisplay = false;\ntry {\n // @ts-ignore\n supportsSignDisplay = (new Intl.NumberFormat('de-DE', {signDisplay: 'exceptZero'})).resolvedOptions().signDisplay === 'exceptZero';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nlet supportsUnit = false;\ntry {\n // @ts-ignore\n supportsUnit = (new Intl.NumberFormat('de-DE', {style: 'unit', unit: 'degree'})).resolvedOptions().style === 'unit';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst UNITS = {\n degree: {\n narrow: {\n default: '°',\n 'ja-JP': ' 度',\n 'zh-TW': '度',\n 'sl-SI': ' °'\n // Arabic?? But Safari already doesn't use Arabic digits so might be ok...\n // https://bugs.webkit.org/show_bug.cgi?id=218139\n }\n }\n};\n\nexport interface NumberFormatOptions extends Intl.NumberFormatOptions {\n /** Overrides default numbering system for the current locale. */\n numberingSystem?: string\n}\n\ninterface NumberRangeFormatPart extends Intl.NumberFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/**\n * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.\n */\nexport class NumberFormatter implements Intl.NumberFormat {\n private numberFormatter: Intl.NumberFormat;\n private options: NumberFormatOptions;\n\n constructor(locale: string, options: NumberFormatOptions = {}) {\n this.numberFormatter = getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */\n format(value: number): string {\n let res = '';\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);\n } else {\n res = this.numberFormatter.format(value);\n }\n\n if (this.options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short', locale} = this.resolvedOptions();\n let values = UNITS[unit]?.[unitDisplay];\n res += values[locale] || values.default;\n }\n\n return res;\n }\n\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */\n formatToParts(value: number): Intl.NumberFormatPart[] {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n\n /** Formats a number range as a string. */\n formatRange(start: number, end: number): string {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n\n /** Formats a number range as an array of parts. */\n formatRangeToParts(start: number, end: number): NumberRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as NumberRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as NumberRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedNumberFormatOptions {\n let options = this.numberFormatter.resolvedOptions();\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n options = {...options, signDisplay: this.options.signDisplay};\n }\n\n if (!supportsUnit && this.options.style === 'unit') {\n options = {...options, style: 'unit', unit: this.options.unit, unitDisplay: this.options.unitDisplay};\n }\n\n return options;\n }\n}\n\nfunction getCachedNumberFormatter(locale: string, options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {numberingSystem} = options;\n if (numberingSystem && locale.indexOf('-u-nu-') === -1) {\n locale = `${locale}-u-nu-${numberingSystem}`;\n }\n\n if (options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short'} = options;\n if (!unit) {\n throw new Error('unit option must be provided with style: \"unit\"');\n }\n if (!UNITS[unit]?.[unitDisplay]) {\n throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n }\n options = {...options, style: 'decimal'};\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.NumberFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\n/** @private - exported for tests */\nexport function numberFormatSignDisplayPolyfill(numberFormat: Intl.NumberFormat, signDisplay: string, num: number) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([...minus].length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ninterface Symbols {\n minusSign: string,\n plusSign: string,\n decimal: string,\n group: string,\n literals: RegExp,\n numeral: RegExp,\n index: (v: string) => string\n}\n\nconst CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec'];\n\n/**\n * A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,\n * as well as validation of partial user input. It automatically detects the numbering system\n * used in the input, and supports parsing decimals, percentages, currency values, and units\n * according to the locale.\n */\nexport class NumberParser {\n private locale: string;\n private options: Intl.NumberFormatOptions;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.locale = locale;\n this.options = options;\n }\n\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */\n parse(value: string): number {\n return getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */\n isValidPartialNumber(value: string, minValue?: number, maxValue?: number): boolean {\n return getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */\n getNumberingSystem(value: string): string {\n return getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n}\n\nconst numberParserCache = new Map();\nfunction getNumberParserImpl(locale: string, options: Intl.NumberFormatOptions, value: string) {\n // First try the default numbering system for the provided locale\n let defaultParser = getCachedNumberParser(locale, options);\n\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of NUMBERING_SYSTEMS) {\n if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) {\n return parser;\n }\n }\n }\n }\n\n return defaultParser;\n}\n\nfunction getCachedNumberParser(locale: string, options: Intl.NumberFormatOptions) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n let parser = numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new NumberParserImpl(locale, options);\n numberParserCache.set(cacheKey, parser);\n }\n\n return parser;\n}\n\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass NumberParserImpl {\n formatter: Intl.NumberFormat;\n options: Intl.ResolvedNumberFormatOptions;\n symbols: Symbols;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = getSymbols(this.formatter, this.options, options);\n }\n\n parse(value: string) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = replaceAll(fullySanitizedValue, this.symbols.group, '')\n .replace(this.symbols.decimal, '.')\n .replace(this.symbols.minusSign, '-')\n .replace(this.symbols.numeral, this.symbols.index);\n\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) {\n return NaN;\n }\n\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && CURRENCY_SIGN_REGEX.test(value)) {\n newValue = -1 * newValue;\n }\n\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === 'percent') {\n newValue /= 100;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed((this.options.maximumFractionDigits ?? 0) + 2);\n }\n\n return newValue;\n }\n\n sanitize(value: string) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace('-', this.symbols.minusSign);\n\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = replaceAll(value, '.', this.symbols.group);\n }\n\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === 'fr-FR') {\n value = replaceAll(value, '.', String.fromCharCode(8239));\n }\n\n return value;\n }\n\n isValidPartialNumber(value: string, minValue: number = -Infinity, maxValue: number = Infinity): boolean {\n value = this.sanitize(value);\n\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) {\n value = value.slice(this.symbols.minusSign.length);\n } else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) {\n value = value.slice(this.symbols.plusSign.length);\n }\n\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) {\n return false;\n }\n\n // Remove numerals, groups, and decimals\n value = replaceAll(value, this.symbols.group, '')\n .replace(this.symbols.numeral, '')\n .replace(this.symbols.decimal, '');\n\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n}\n\nconst nonLiteralParts = new Set(['decimal', 'fraction', 'integer', 'minusSign', 'plusSign', 'group']);\n\nfunction getSymbols(formatter: Intl.NumberFormat, intlOptions: Intl.ResolvedNumberFormatOptions, originalOptions: Intl.NumberFormatOptions): Symbols {\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n\n let minusSign = allParts.find(p => p.type === 'minusSign')?.value ?? '-';\n let plusSign = posAllParts.find(p => p.type === 'plusSign')?.value;\n\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && (originalOptions?.signDisplay === 'exceptZero' || originalOptions?.signDisplay === 'always')) {\n plusSign = '+';\n }\n\n let decimal = allParts.find(p => p.type === 'decimal')?.value;\n let group = allParts.find(p => p.type === 'group')?.value;\n\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let singularLiterals = singularParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let sortedLiterals = [...new Set([...singularLiterals, ...pluralLiterals])].sort((a, b) => b.length - a.length);\n let literals = sortedLiterals.length === 0 ? \n new RegExp('[\\\\p{White_Space}]', 'gu') :\n new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [...new Intl.NumberFormat(intlOptions.locale, {useGrouping: false}).format(9876543210)].reverse();\n let indexes = new Map(numerals.map((d, i) => [d, i]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = d => String(indexes.get(d));\n\n return {minusSign, plusSign, decimal, group, literals, numeral, index};\n}\n\nfunction replaceAll(str: string, find: string, replace: string) {\n // @ts-ignore\n if (str.replaceAll) {\n // @ts-ignore\n return str.replaceAll(find, replace);\n }\n\n return str.split(find).join(replace);\n}\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// https://en.wikipedia.org/wiki/Right-to-left\nconst RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nconst RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/**\n * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.\n */\nexport function isRTL(locale: string) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return RTL_SCRIPTS.has(script);\n }\n\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split('-')[0];\n return RTL_LANGS.has(lang);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {isRTL} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface Locale {\n /** The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale. */\n locale: string,\n /** The writing direction for the locale. */\n direction: Direction\n}\n\n/**\n * Gets the locale setting of the browser.\n */\nexport function getDefaultLocale(): Locale {\n // @ts-ignore\n let locale = (typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage)) || 'en-US';\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([locale]);\n } catch (_err) {\n locale = 'en-US';\n }\n return {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nlet currentLocale = getDefaultLocale();\nlet listeners = new Set<(locale: Locale) => void>();\n\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (let listener of listeners) {\n listener(currentLocale);\n }\n}\n\n/**\n * Returns the current browser/system language, and updates when it changes.\n */\nexport function useDefaultLocale(): Locale {\n let isSSR = useIsSSR();\n let [defaultLocale, setDefaultLocale] = useState(currentLocale);\n\n useEffect(() => {\n if (listeners.size === 0) {\n window.addEventListener('languagechange', updateLocale);\n }\n\n listeners.add(setDefaultLocale);\n\n return () => {\n listeners.delete(setDefaultLocale);\n if (listeners.size === 0) {\n window.removeEventListener('languagechange', updateLocale);\n }\n };\n }, []);\n\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isRTL} from './utils';\nimport {Locale, useDefaultLocale} from './useDefaultLocale';\nimport React, {ReactNode, useContext} from 'react';\n\nexport interface I18nProviderProps {\n /** Contents that should have the locale applied. */\n children: ReactNode,\n /** The locale to apply to the children. */\n locale?: string\n}\n\nconst I18nContext = React.createContext(null);\n\n/**\n * Provides the locale for the application to all child components.\n */\nexport function I18nProvider(props: I18nProviderProps) {\n let {locale, children} = props;\n let defaultLocale = useDefaultLocale();\n\n let value: Locale = locale ? {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Returns the current locale and layout direction.\n */\nexport function useLocale(): Locale {\n let defaultLocale = useDefaultLocale();\n let context = useContext(I18nContext);\n return context || defaultLocale;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {LocalizedString, LocalizedStringDictionary, LocalizedStringFormatter, LocalizedStrings} from '@internationalized/string';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\nconst cache = new WeakMap();\nfunction getCachedDictionary(strings: LocalizedStrings): LocalizedStringDictionary {\n let dictionary = cache.get(strings);\n if (!dictionary) {\n dictionary = new LocalizedStringDictionary(strings);\n cache.set(strings, dictionary);\n }\n\n return dictionary;\n}\n\n/**\n * Provides localized string formatting for the current locale. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers. Automatically updates when the locale changes.\n * @param strings - A mapping of languages to localized strings by key.\n */\nexport function useLocalizedStringFormatter(strings: LocalizedStrings): LocalizedStringFormatter {\n let {locale} = useLocale();\n let dictionary = useMemo(() => getCachedDictionary(strings), [strings]);\n return useMemo(() => new LocalizedStringFormatter(locale, dictionary), [locale, dictionary]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {NumberFormatOptions, NumberFormatter} from '@internationalized/number';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\n/**\n * Provides localized number formatting for the current locale. Automatically updates when the locale changes,\n * and handles caching of the number formatter for performance.\n * @param options - Formatting options.\n */\nexport function useNumberFormatter(options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {locale} = useLocale();\n return useMemo(() => new NumberFormatter(locale, options), [locale, options]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useLocale} from './context';\n\nlet cache = new Map();\n\n/**\n * Provides localized string collation for the current locale. Automatically updates when the locale changes,\n * and handles caching of the collator for performance.\n * @param options - Collator options.\n */\nexport function useCollator(options?: Intl.CollatorOptions): Intl.Collator {\n let {locale} = useLocale();\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n\n let formatter = new Intl.Collator(locale, options);\n cache.set(cacheKey, formatter);\n return formatter;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React, {ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement {\n let element;\n if (typeof children === 'string') {\n element = {children};\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef(ref: RefObject): DOMRefValue {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef(domRef: RefObject, focusableRef: RefObject = domRef): FocusableRefValue {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef(ref: DOMRef): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef(ref: FocusableRef, focusableRef?: RefObject): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef(ref: RefObject>): RefObject {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef(ref: RefObject>) : RefObject {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n \n {children}\n \n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps(props: ViewStyleProps, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp(prop: Responsive, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp).base;\n }\n return prop as T;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n \n {content}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PointerType, PressEvents} from '@react-types/shared';\nimport {focusWithoutScrolling, isVirtualClick, isVirtualPointerEvent, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {PressResponderContext} from './context';\nimport {RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n } else if (e.key === 'Enter' && isHTMLAnchorLink(e.currentTarget)) {\n // If the target is a link, we won't have handled this above because we want the default\n // browser behavior to open the link when pressing Enter. But we still need to prevent\n // default so that elements above do not also handle it (e.g. table row).\n e.stopPropagation();\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target as Element)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target instanceof HTMLElement && state.target.contains(target) && (isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link')) {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof HTMLTextAreaElement ||\n element.isContentEditable) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit';\n }\n\n return true;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n stateRef.current.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n stateRef.current.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, []);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps['onBlur'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n const onFocus: FocusProps['onFocus'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : null\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac, isVirtualClick} from '@react-aria/utils';\nimport {useEffect, useState} from 'react';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n if (!state.current.isFocusWithin) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: null,\n onBlur: null\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\nexport interface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\nimport {useRef} from 'react';\n\nexport interface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\nexport interface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: DOMAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: FocusableElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean,\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): FocusableElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n\n // The parent scope is based on the JSX tree, using context.\n // However, if a new scope mounts outside the active scope (e.g. DialogContainer launched from a menu),\n // we want the parent scope to be the active scope instead.\n let ctxParent = ctx?.scopeRef ?? null;\n let parentScope = useMemo(() => activeScope && focusScopeTree.getTreeNode(activeScope) && !isAncestorScope(activeScope, ctxParent) ? activeScope : ctxParent, [ctxParent]);\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n // add to the focus scope tree in render order because useEffects/useLayoutEffects run children first whereas render runs parent first\n // which matters when constructing a tree\n if (focusScopeTree.getTreeNode(parentScope) && !focusScopeTree.getTreeNode(scopeRef)) {\n focusScopeTree.addTreeNode(scopeRef, parentScope);\n }\n\n let node = focusScopeTree.getTreeNode(scopeRef);\n node.contain = contain;\n\n useActiveScopeTracker(scopeRef, restoreFocus, contain);\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible\n useLayoutEffect(() => {\n if (scopeRef) {\n return () => {\n // Scope may have been re-parented.\n let parentScope = focusScopeTree.getTreeNode(scopeRef).parent.scopeRef;\n\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeRef);\n };\n }\n }, [scopeRef, parentScope]);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as FocusableElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as FocusableElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: Element[]) {\n return scope[0].parentElement;\n}\n\nfunction shouldContainFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.contain) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return true;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = document.activeElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (shouldContainFocus(scopeRef)) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (shouldContainFocus(scopeRef) && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n if (document.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n return isElementInChildScope(element);\n}\n\nfunction isElementInScope(element: Element, scope: Element[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let {scopeRef: s} of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\n/** @private */\nexport function isElementInChildOfActiveScope(element: Element) {\n return isElementInChildScope(element, activeScope);\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\nfunction focusElement(element: FocusableElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: Element[], tabbable:boolean = true) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: false}, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n\n focusElement(nextNode as FocusableElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, [scopeRef]);\n}\n\nfunction useActiveScopeTracker(scopeRef: RefObject, restore: boolean, contain: boolean) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n useLayoutEffect(() => {\n if (restore || contain) {\n return;\n }\n\n let scope = scopeRef.current;\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as Element;\n if (isElementInScope(target, scopeRef.current)) {\n activeScope = scopeRef;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n }, [scopeRef, restore, contain]);\n}\n\nfunction shouldRestoreFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.nodeToRestore) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return scope?.scopeRef === scopeRef;\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as FocusableElement : null);\n\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!restoreFocus || contain) {\n return;\n }\n\n let onFocus = () => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scopeRef, contain]);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n if (!restoreFocus) {\n return;\n }\n\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as FocusableElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (\n restoreFocus\n && nodeToRestore\n && (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isElementInScope(document.activeElement, scopeRef.current)\n || (document.activeElement === document.body && shouldRestoreFocus(scopeRef))\n )\n ) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = focusScopeTree.clone();\n requestAnimationFrame(() => {\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (document.activeElement === document.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {\n focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.scopeRef && focusScopeTree.getTreeNode(treeNode.scopeRef)) {\n focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: Element, opts?: FocusManagerOptions, scope?: Element[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as Element).matches(selector)\n && isElementVisible(node as Element)\n && (!scope || isElementInScope(node as Element, scope))\n && (!opts?.accept || opts.accept(node as Element))\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject, defaultOptions: FocusManagerOptions = {}): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\n\nclass Tree {\n private root: TreeNode;\n private fastMap = new Map();\n\n constructor() {\n this.root = new TreeNode({scopeRef: null});\n this.fastMap.set(null, this.root);\n }\n\n get size() {\n return this.fastMap.size;\n }\n\n getTreeNode(data: ScopeRef) {\n return this.fastMap.get(data);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: FocusableElement) {\n let parentNode = this.fastMap.get(parent ?? null);\n let node = new TreeNode({scopeRef});\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n }\n\n removeTreeNode(scopeRef: ScopeRef) {\n // never remove the root\n if (scopeRef === null) {\n return;\n }\n let node = this.fastMap.get(scopeRef);\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse()) {\n if (\n current !== node &&\n node.nodeToRestore &&\n current.nodeToRestore &&\n node.scopeRef.current &&\n isElementInScope(current.nodeToRestore, node.scopeRef.current)\n ) {\n current.nodeToRestore = node.nodeToRestore;\n }\n }\n let children = node.children;\n parentNode.removeChild(node);\n if (children.length > 0) {\n children.forEach(child => parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n\n // Pre Order Depth First\n *traverse(node: TreeNode = this.root): Generator {\n if (node.scopeRef != null) {\n yield node;\n }\n if (node.children.length > 0) {\n for (let child of node.children) {\n yield* this.traverse(child);\n }\n }\n }\n\n clone(): Tree {\n let newTree = new Tree();\n for (let node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);\n }\n return newTree;\n }\n}\n\nclass TreeNode {\n public scopeRef: ScopeRef;\n public nodeToRestore: FocusableElement;\n public parent: TreeNode;\n public children: TreeNode[] = [];\n public contain = false;\n\n constructor(props: {scopeRef: ScopeRef}) {\n this.scopeRef = props.scopeRef;\n }\n addChild(node: TreeNode) {\n this.children.push(node);\n node.parent = this;\n }\n removeChild(node: TreeNode) {\n this.children.splice(this.children.indexOf(node), 1);\n node.parent = undefined;\n }\n}\n\nexport let focusScopeTree = new Tree();\n","import {DOMAttributes} from '@react-types/shared';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useCallback, useState} from 'react';\nimport {useRef} from 'react';\n\nexport interface AriaFocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: DOMAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: AriaFocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback(isFocused => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.current.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\nexport interface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableDOMProps, FocusableElement, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\nexport interface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusableProviderProps extends DOMAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\nexport interface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: DOMAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {forwardRef} from 'react';\nimport {TextProps} from '@react-types/text';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Text(props: TextProps, ref: DOMRef) {\n props = useSlotProps(props, 'text');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Text represents text with no specific semantic meaning.\n */\nconst _Text = forwardRef(Text);\nexport {_Text as Text};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeadingProps} from '@react-types/text';\nimport React, {ElementType, forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Heading(props: HeadingProps, ref: DOMRef) {\n props = useSlotProps(props, 'heading');\n\n let {\n children,\n level = 3,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n let HeadingTag = `h${level}` as ElementType;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Heading is used to create various levels of typographic hierarchies.\n */\nconst _Heading = forwardRef(Heading);\nexport {_Heading as Heading};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {KeyboardProps} from '@react-types/text';\nimport React, {forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Keyboard(props: KeyboardProps, ref: DOMRef) {\n props = useSlotProps(props, 'keyboard');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Keyboard represents text that specifies a keyboard command.\n */\nconst _Keyboard = forwardRef(Keyboard);\nexport {_Keyboard as Keyboard};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {mergeProps} from '@react-aria/utils';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\n\nexport interface ButtonAria {\n /** Props for the button element. */\n buttonProps: T,\n /** Whether the button is currently pressed. */\n isPressed: boolean\n}\n\n// Order with overrides is important: 'button' should be default\nexport function useButton(props: AriaButtonProps<'button'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'a'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'div'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'input'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'span'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,\n * focus behavior, and ARIA props for both native button elements and custom element types.\n * @param props - Props to be applied to the button.\n * @param ref - A ref to a DOM element for the button.\n */\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria> {\n let {\n elementType = 'button',\n isDisabled,\n onPress,\n onPressStart,\n onPressEnd,\n onPressChange,\n // @ts-ignore - undocumented\n preventFocusOnPress,\n // @ts-ignore - undocumented\n allowFocusWhenDisabled,\n // @ts-ignore\n onClick: deprecatedOnClick,\n href,\n target,\n rel,\n type = 'button'\n } = props;\n let additionalProps;\n if (elementType === 'button') {\n additionalProps = {\n type,\n disabled: isDisabled\n };\n } else {\n additionalProps = {\n role: 'button',\n tabIndex: isDisabled ? undefined : 0,\n href: elementType === 'a' && isDisabled ? undefined : href,\n target: elementType === 'a' ? target : undefined,\n type: elementType === 'input' ? type : undefined,\n disabled: elementType === 'input' ? isDisabled : undefined,\n 'aria-disabled': !isDisabled || elementType === 'input' ? undefined : isDisabled,\n rel: elementType === 'a' ? rel : undefined\n };\n }\n\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n isDisabled,\n preventFocusOnPress,\n ref\n });\n\n let {focusableProps} = useFocusable(props, ref);\n if (allowFocusWhenDisabled) {\n focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;\n }\n let buttonProps = mergeProps(focusableProps, pressProps, filterDOMProps(props, {labelable: true}));\n\n return {\n isPressed, // Used to indicate press state for visual\n buttonProps: mergeProps(additionalProps, buttonProps, {\n 'aria-haspopup': props['aria-haspopup'],\n 'aria-expanded': props['aria-expanded'],\n 'aria-controls': props['aria-controls'],\n 'aria-pressed': props['aria-pressed'],\n onClick: (e) => {\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaToggleButtonProps} from '@react-types/button';\nimport {ButtonAria, useButton} from './useButton';\nimport {chain} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {ToggleState} from '@react-stately/toggle';\n\nexport function useToggleButton(props: AriaToggleButtonProps<'a'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'button'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'div'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'input'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'span'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.\n */\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria> {\n const {isSelected} = state;\n const {isPressed, buttonProps} = useButton({\n ...props,\n onPress: chain(state.toggle, props.onPress)\n }, ref);\n\n return {\n isPressed,\n buttonProps: mergeProps(buttonProps, {\n 'aria-pressed': isSelected\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {CSSProperties, JSXElementConstructor, ReactNode, useMemo, useState} from 'react';\nimport {useFocusWithin} from '@react-aria/interactions';\n\nexport interface VisuallyHiddenProps extends DOMAttributes {\n /** The content to visually hide. */\n children?: ReactNode,\n\n /**\n * The element type for the container.\n * @default 'div'\n */\n elementType?: string | JSXElementConstructor,\n\n /** Whether the element should become visible on focus, for example skip links. */\n isFocusable?: boolean\n}\n\nconst styles: CSSProperties = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n};\n\nexport interface VisuallyHiddenAria {\n visuallyHiddenProps: DOMAttributes\n}\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n */\nexport function useVisuallyHidden(props: VisuallyHiddenProps = {}): VisuallyHiddenAria {\n let {\n style,\n isFocusable\n } = props;\n\n let [isFocused, setFocused] = useState(false);\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !isFocusable,\n onFocusWithinChange: (val) => setFocused(val)\n });\n\n // If focused, don't hide the element.\n let combinedStyles = useMemo(() => {\n if (isFocused) {\n return style;\n } else if (style) {\n return {...styles, ...style};\n } else {\n return styles;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocused]);\n\n return {\n visuallyHiddenProps: {\n ...focusWithinProps,\n style: combinedStyles\n }\n };\n}\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible\n * to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children, elementType: Element = 'div', isFocusable, style, ...otherProps} = props;\n let {visuallyHiddenProps} = useVisuallyHidden(props);\n\n return (\n \n {children}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: Element,\n overlayNode: Element,\n scrollNode: Element,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: Element,\n offset: number,\n crossOffset: number,\n maxHeight?: number\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n let documentElement = document.documentElement;\n width = visualViewport?.width ?? documentElement.clientWidth;\n height = visualViewport?.height ?? documentElement.clientHeight;\n\n scroll.top = documentElement.scrollTop || containerNode.scrollTop;\n scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = containerNode.scrollTop;\n scroll.left = containerNode.scrollLeft;\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: Element): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: Element): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n userSetMaxHeight?: number\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n if (userSetMaxHeight && userSetMaxHeight < maxHeight) {\n maxHeight = userSetMaxHeight;\n }\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n } = opts;\n\n let container = ((overlayNode instanceof HTMLElement && overlayNode.offsetParent) || document.body) as Element;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n let {marginTop, marginLeft} = window.getComputedStyle(targetNode);\n childOffset.top += parseInt(marginTop, 10) || 0;\n childOffset.left += parseInt(marginLeft, 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n maxHeight\n );\n}\n\nfunction getOffset(node: Element): Offset {\n let {top, left, width, height} = node.getBoundingClientRect();\n let {scrollTop, scrollLeft, clientTop, clientLeft} = document.documentElement;\n return {\n top: top + scrollTop - clientTop,\n left: left + scrollLeft - clientLeft,\n width,\n height\n };\n}\n\nfunction getPosition(node: Element, parent: Element): Offset {\n let style = window.getComputedStyle(node);\n let offset: Offset;\n if (style.position === 'fixed') {\n let {top, left, width, height} = node.getBoundingClientRect();\n offset = {top, left, width, height};\n } else {\n offset = getOffset(node);\n let parentOffset = getOffset(parent);\n let parentStyle = window.getComputedStyle(parent);\n parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;\n parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;\n offset.top -= parentOffset.top;\n offset.left -= parentOffset.left;\n }\n\n offset.top -= parseInt(style.marginTop, 10) || 0;\n offset.left -= parseInt(style.marginLeft, 10) || 0;\n return offset;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen || onClose === null) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target;\n // window is not a Node and doesn't have contain, but window contains everything\n if (!triggerRef.current || ((target instanceof Node) && !target.contains(triggerRef.current))) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {calculatePosition, PositionResult} from './calculatePosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {RefObject, useCallback, useRef, useState} from 'react';\nimport {useCloseOnScroll} from './useCloseOnScroll';\nimport {useLayoutEffect, useResizeObserver} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: Element,\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject,\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject,\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject,\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean,\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n /**\n * The maxHeight specified for the overlay element.\n * By default, it will take all space up to the current viewport height.\n */\n maxHeight?: number\n}\n\nexport interface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props for the overlay tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis,\n /** Updates the position of the overlay. */\n updatePosition(): void\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n let {direction} = useLocale();\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n onClose,\n maxHeight\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n maxHeight\n ];\n\n let updatePosition = useCallback(() => {\n if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Update position when anything changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Update position when the overlay changes size (might need to flip).\n useResizeObserver({\n ref: overlayRef,\n onResize: updatePosition\n });\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: ReturnType;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose && close\n });\n\n return {\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight\n }\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop\n }\n },\n updatePosition\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {isElementInChildOfActiveScope} from '@react-aria/focus';\nimport {RefObject, SyntheticEvent, useEffect} from 'react';\nimport {useFocusWithin, useInteractOutside} from '@react-aria/interactions';\n\nexport interface AriaOverlayProps {\n /** Whether the overlay is currently open. */\n isOpen?: boolean,\n\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n\n /**\n * Whether to close the overlay when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n\n /** Whether the overlay should close when focus is lost or moves outside it. */\n shouldCloseOnBlur?: boolean,\n\n /**\n * Whether pressing the escape key to close the overlay should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean,\n\n /**\n * When user interacts with the argument element outside of the overlay ref,\n * return true if onClose should be called. This gives you a chance to filter\n * out interaction with elements that should not dismiss the overlay.\n * By default, onClose will always be called on interaction outside the overlay ref.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean\n}\n\nexport interface OverlayAria {\n /** Props to apply to the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes\n}\n\nconst visibleOverlays: RefObject[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(props: AriaOverlayProps, ref: RefObject): OverlayAria {\n let {\n onClose,\n shouldCloseOnBlur,\n isOpen,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n shouldCloseOnInteractOutside\n } = props;\n\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n useEffect(() => {\n if (isOpen) {\n visibleOverlays.push(ref);\n }\n\n return () => {\n let index = visibleOverlays.indexOf(ref);\n if (index >= 0) {\n visibleOverlays.splice(index, 1);\n }\n };\n }, [isOpen, ref]);\n\n // Only hide the overlay when it is the topmost visible overlay in the stack.\n let onHide = () => {\n if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n onClose();\n }\n };\n\n let onInteractOutsideStart = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n };\n\n let onInteractOutside = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n onHide();\n }\n };\n\n // Handle the escape key\n let onKeyDown = (e) => {\n if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n e.stopPropagation();\n e.preventDefault();\n onHide();\n }\n };\n\n // Handle clicking outside the overlay to close it\n useInteractOutside({ref, onInteractOutside: isDismissable ? onInteractOutside : null, onInteractOutsideStart});\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: (e) => {\n // If focus is moving into a child focus scope (e.g. menu inside a dialog),\n // do not close the outer overlay. At this point, the active scope should\n // still be the outer overlay, since blur events run before focus.\n if (e.relatedTarget && isElementInChildOfActiveScope(e.relatedTarget)) {\n return;\n }\n\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as Element)) {\n onClose();\n }\n }\n });\n\n let onPointerDownUnderlay = e => {\n // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n if (e.target === e.currentTarget) {\n e.preventDefault();\n }\n };\n\n return {\n overlayProps: {\n onKeyDown,\n ...focusWithinProps\n },\n underlayProps: {\n onPointerDown: onPointerDownUnderlay\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {onCloseMap} from './useCloseOnScroll';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes\n}\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function useOverlayTrigger(props: OverlayTriggerProps, state: OverlayTriggerState, ref: RefObject): OverlayTriggerAria {\n let {type} = props;\n let {isOpen} = state;\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n useEffect(() => {\n if (ref && ref.current) {\n onCloseMap.set(ref.current, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n let ariaHasPopup = undefined;\n if (type === 'menu') {\n ariaHasPopup = true;\n } else if (type === 'listbox') {\n ariaHasPopup = 'listbox';\n }\n\n let overlayId = useId();\n return {\n triggerProps: {\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': isOpen,\n 'aria-controls': isOpen ? overlayId : null,\n onPress: state.toggle\n },\n overlayProps: {\n id: overlayId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain, getScrollParent, isIOS, useLayoutEffect} from '@react-aria/utils';\n\ninterface PreventScrollOptions {\n /** Whether the scroll lock is disabled. */\n isDisabled?: boolean\n}\n\n// @ts-ignore\nconst visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */\nexport function usePreventScroll(options: PreventScrollOptions = {}) {\n let {isDisabled} = options;\n\n useLayoutEffect(() => {\n if (isDisabled) {\n return;\n }\n\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n } else {\n restore = preventScrollStandard();\n }\n }\n\n return () => {\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore();\n }\n };\n }, [isDisabled]);\n}\n\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n return chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden')\n );\n}\n\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable: Element;\n let lastY = 0;\n let onTouchStart = (e: TouchEvent) => {\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target as Element);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n\n lastY = e.changedTouches[0].pageY;\n };\n\n let onTouchMove = (e: TouchEvent) => {\n // Prevent scrolling the window.\n if (scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n\n if ((scrollTop <= 0 && y > lastY) || (scrollTop >= bottom && y < lastY)) {\n e.preventDefault();\n }\n\n lastY = y;\n };\n\n let onTouchEnd = (e: TouchEvent) => {\n let target = e.target as HTMLElement;\n\n // Apply this change if we're not already focused on the target element\n if (willOpenKeyboard(target) && target !== document.activeElement) {\n e.preventDefault();\n\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(() => {\n target.style.transform = '';\n });\n }\n };\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as HTMLElement;\n if (willOpenKeyboard(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(() => {\n target.style.transform = '';\n\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(() => {\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', () => scrollIntoView(target), {once: true});\n }\n }\n });\n }\n };\n\n let onWindowScroll = () => {\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n\n let restoreStyles = chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden'),\n setStyle(document.body, 'marginTop', `-${scrollY}px`)\n );\n\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n\n let removeEvents = chain(\n addEvent(document, 'touchstart', onTouchStart, {passive: false, capture: true}),\n addEvent(document, 'touchmove', onTouchMove, {passive: false, capture: true}),\n addEvent(document, 'touchend', onTouchEnd, {passive: false, capture: true}),\n addEvent(document, 'focus', onFocus, true),\n addEvent(window, 'scroll', onWindowScroll)\n );\n\n return () => {\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element: HTMLElement, style: string, value: string) {\n let cur = element.style[style];\n element.style[style] = value;\n\n return () => {\n element.style[style] = cur;\n };\n}\n\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(\n target: EventTarget,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n target.addEventListener(event, handler, options);\n return () => {\n target.removeEventListener(event, handler, options);\n };\n}\n\nfunction scrollIntoView(target: Element) {\n let root = document.scrollingElement || document.documentElement;\n while (target && target !== root) {\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n if (targetTop > scrollableTop + target.clientHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n\n target = scrollable.parentElement;\n }\n}\n\nfunction willOpenKeyboard(target: Element) {\n return (\n (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) ||\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLElement && target.isContentEditable)\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport React, {AriaAttributes, ReactNode, useContext, useEffect, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface ModalProviderProps extends DOMAttributes {\n children: ReactNode\n}\n\ninterface ModalContext {\n parent: ModalContext | null,\n modalCount: number,\n addModal: () => void,\n removeModal: () => void\n}\n\nconst Context = React.createContext(null);\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using React context in order to account for things\n * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.\n */\nexport function ModalProvider(props: ModalProviderProps) {\n let {children} = props;\n let parent = useContext(Context);\n let [modalCount, setModalCount] = useState(0);\n let context = useMemo(() => ({\n parent,\n modalCount,\n addModal() {\n setModalCount(count => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount(count => count - 1);\n if (parent) {\n parent.removeModal();\n }\n }\n }), [parent, modalCount]);\n\n return (\n \n {children}\n \n );\n}\n\nexport interface ModalProviderAria {\n /**\n * Props to be spread on the container element.\n */\n modalProviderProps: AriaAttributes\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n let context = useContext(Context);\n return {\n modalProviderProps: {\n 'aria-hidden': context && context.modalCount > 0 ? true : null\n }\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nfunction OverlayContainerDOM(props: ModalProviderProps) {\n let {modalProviderProps} = useModalProvider();\n return
    ;\n}\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a ``. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport function OverlayProvider(props: ModalProviderProps) {\n return (\n \n \n \n );\n}\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport function OverlayContainer(props: OverlayContainerProps): React.ReactPortal {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body, ...rest} = props;\n\n React.useEffect(() => {\n if (portalContainer?.closest('[data-overlay-container]')) {\n throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n }\n }, [portalContainer]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = ;\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\ninterface ModalAriaProps extends DOMAttributes {\n /** Data attribute marks the dom node as a modal for the aria-modal-polyfill. */\n 'data-ismodal': boolean\n}\n\nexport interface AriaModalOptions {\n isDisabled?: boolean\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: ModalAriaProps\n}\n\n/**\n * Hides content outside the current `` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function useModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n let context = useContext(Context);\n if (!context) {\n throw new Error('Modal is not contained within a provider');\n }\n\n useEffect(() => {\n if (options?.isDisabled || !context || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n return () => {\n if (context && context.parent) {\n context.parent.removeModal();\n }\n };\n }, [context, context.parent, options?.isDisabled]);\n\n return {\n modalProps: {\n 'data-ismodal': !options?.isDisabled\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React from 'react';\nimport {useLabels} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {VisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface DismissButtonProps extends AriaLabelingProps, DOMProps {\n /** Called when the dismiss button is activated. */\n onDismiss?: () => void\n}\n\n/**\n * A visually hidden button that can be used to allow screen reader\n * users to dismiss a modal or popup when there is no visual\n * affordance to do so.\n */\nexport function DismissButton(props: DismissButtonProps) {\n let {onDismiss, ...otherProps} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n let labels = useLabels(otherProps, stringFormatter.format('dismiss'));\n\n let onClick = () => {\n if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n \n \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"dismiss\": \"تجاهل\"\n}\n","{\n \"dismiss\": \"Отхвърляне\"\n}\n","{\n \"dismiss\": \"Odstranit\"\n}\n","{\n \"dismiss\": \"Luk\"\n}\n","{\n \"dismiss\": \"Schließen\"\n}\n","{\n \"dismiss\": \"Απόρριψη\"\n}\n","{\n \"dismiss\": \"Dismiss\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Lõpeta\"\n}\n","{\n \"dismiss\": \"Hylkää\"\n}\n","{\n \"dismiss\": \"Rejeter\"\n}\n","{\n \"dismiss\": \"התעלם\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Elutasítás\"\n}\n","{\n \"dismiss\": \"Ignora\"\n}\n","{\n \"dismiss\": \"閉じる\"\n}\n","{\n \"dismiss\": \"무시\"\n}\n","{\n \"dismiss\": \"Atmesti\"\n}\n","{\n \"dismiss\": \"Nerādīt\"\n}\n","{\n \"dismiss\": \"Lukk\"\n}\n","{\n \"dismiss\": \"Negeren\"\n}\n","{\n \"dismiss\": \"Zignoruj\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Dispensar\"\n}\n","{\n \"dismiss\": \"Revocare\"\n}\n","{\n \"dismiss\": \"Пропустить\"\n}\n","{\n \"dismiss\": \"Zrušiť\"\n}\n","{\n \"dismiss\": \"Opusti\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Avvisa\"\n}\n","{\n \"dismiss\": \"Kapat\"\n}\n","{\n \"dismiss\": \"Скасувати\"\n}\n","{\n \"dismiss\": \"取消\"\n}\n","{\n \"dismiss\": \"關閉\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet refCountMap = new WeakMap();\nlet observerStack = [];\n\n/**\n * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,\n * and returns a function to revert these changes. In addition, changes to the DOM are watched\n * and new elements outside the targets are automatically hidden.\n * @param targets - The elements that should remain visible.\n * @param root - Nothing will be hidden above this element.\n * @returns - A function to restore all hidden elements.\n */\nexport function ariaHideOutside(targets: Element[], root = document.body) {\n let visibleNodes = new Set(targets);\n let hiddenNodes = new Set();\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // If this node is a live announcer, add it to the set of nodes to keep visible.\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n }\n\n // Skip this node and its children if it is one of the target nodes, or a live announcer.\n // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is\n // made for elements with role=\"row\" since VoiceOver on iOS has issues hiding elements with role=\"row\".\n // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).\n if (\n visibleNodes.has(node as Element) ||\n (hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row')\n ) {\n return NodeFilter.FILTER_REJECT;\n }\n\n // Skip this node but continue to children if one of the targets is inside the node.\n if (targets.some(target => node.contains(target))) {\n return NodeFilter.FILTER_SKIP;\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n );\n\n let hide = (node: Element) => {\n let refCount = refCountMap.get(node) ?? 0;\n\n // If already aria-hidden, and the ref count is zero, then this element\n // was already hidden and there's nothing for us to do.\n if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) {\n return;\n }\n\n if (refCount === 0) {\n node.setAttribute('aria-hidden', 'true');\n }\n\n hiddenNodes.add(node);\n refCountMap.set(node, refCount + 1);\n };\n\n // If there is already a MutationObserver listening from a previous call,\n // disconnect it so the new on takes over.\n if (observerStack.length) {\n observerStack[observerStack.length - 1].disconnect();\n }\n\n let node = walker.nextNode() as Element;\n while (node != null) {\n hide(node);\n node = walker.nextNode() as Element;\n }\n\n let observer = new MutationObserver(changes => {\n for (let change of changes) {\n if (change.type !== 'childList' || change.addedNodes.length === 0) {\n continue;\n }\n\n // If the parent element of the added nodes is not within one of the targets,\n // and not already inside a hidden node, hide all of the new children.\n if (![...visibleNodes, ...hiddenNodes].some(node => node.contains(change.target))) {\n for (let node of change.addedNodes) {\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n } else if (node instanceof Element) {\n hide(node);\n }\n }\n }\n }\n });\n\n observer.observe(root, {childList: true, subtree: true});\n\n let observerWrapper = {\n observe() {\n observer.observe(root, {childList: true, subtree: true});\n },\n disconnect() {\n observer.disconnect();\n }\n };\n\n observerStack.push(observerWrapper);\n\n return () => {\n observer.disconnect();\n\n for (let node of hiddenNodes) {\n let count = refCountMap.get(node);\n if (count === 1) {\n node.removeAttribute('aria-hidden');\n refCountMap.delete(node);\n } else {\n refCountMap.set(node, count - 1);\n }\n }\n\n // Remove this observer from the stack, and start the previous one.\n if (observerWrapper === observerStack[observerStack.length - 1]) {\n observerStack.pop();\n if (observerStack.length) {\n observerStack[observerStack.length - 1].observe();\n }\n } else {\n observerStack.splice(observerStack.indexOf(observerWrapper), 1);\n }\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {AriaPositionProps, useOverlayPosition} from './useOverlayPosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {PlacementAxis} from '@react-types/overlays';\nimport {RefObject, useState} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaPopoverProps extends Omit {\n /**\n * The ref for the element which the popover positions itself with respect to.\n */\n triggerRef: RefObject,\n /**\n * The ref for the popover element.\n */\n popoverRef: RefObject,\n /**\n * Whether the popover is non-modal, i.e. elements outside the popover may be\n * interacted with by assistive technologies.\n *\n * Most popovers should not use this option as it may negatively impact the screen\n * reader experience. Only use with components such as combobox, which are designed\n * to handle this situation carefully.\n */\n isNonModal?: boolean,\n /**\n * Whether pressing the escape key to close the popover should be disabled.\n *\n * Most popovers should not use this option. When set to true, an alternative\n * way to close the popover with a keyboard must be provided.\n *\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface PopoverAria {\n /** Props for the popover element. */\n popoverProps: DOMAttributes,\n /** Props for the popover tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes,\n /** Placement of the popover with respect to the trigger. */\n placement: PlacementAxis\n}\n\n/**\n * Provides the behavior and accessibility implementation for a popover component.\n * A popover is an overlay element positioned relative to a trigger.\n */\nexport function usePopover(props: AriaPopoverProps, state: OverlayTriggerState): PopoverAria {\n let {\n triggerRef,\n popoverRef,\n isNonModal,\n isKeyboardDismissDisabled,\n ...otherProps\n } = props;\n\n let {overlayProps, underlayProps} = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n shouldCloseOnBlur: true,\n isDismissable: !isNonModal,\n isKeyboardDismissDisabled\n },\n popoverRef\n );\n\n let {overlayProps: positionProps, arrowProps, placement} = useOverlayPosition({\n ...otherProps,\n targetRef: triggerRef,\n overlayRef: popoverRef,\n isOpen: state.isOpen,\n onClose: null\n });\n\n // Delay preventing scroll until popover is positioned to avoid extra scroll padding.\n // This requires a layout effect so that positioning has been committed to the DOM\n // by the time usePreventScroll measures the element.\n let [isPositioned, setPositioned] = useState(false);\n useLayoutEffect(() => {\n if (!isNonModal && placement) {\n setPositioned(true);\n }\n }, [isNonModal, placement]);\n\n usePreventScroll({\n isDisabled: isNonModal || !isPositioned\n });\n\n useLayoutEffect(() => {\n if (state.isOpen && !isNonModal && popoverRef.current) {\n return ariaHideOutside([popoverRef.current]);\n }\n }, [isNonModal, state.isOpen, popoverRef]);\n\n return {\n popoverProps: mergeProps(overlayProps, positionProps),\n arrowProps,\n underlayProps,\n placement\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusScope} from '@react-aria/focus';\nimport React, {ReactNode, useContext, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport interface OverlayProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element,\n /** The overlay to render in the portal. */\n children: ReactNode\n}\n\nexport const OverlayContext = React.createContext(null);\n\n/**\n * A container which renders an overlay such as a popover or modal in a portal,\n * and provides a focus scope for the child elements.\n */\nexport function Overlay(props: OverlayProps) {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body} = props;\n let [contain, setContain] = useState(false);\n let contextValue = useMemo(() => ({contain, setContain}), [contain, setContain]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = (\n \n \n {props.children}\n \n \n );\n\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\n/** @private */\nexport function useOverlayFocusContain() {\n let ctx = useContext(OverlayContext);\n let setContain = ctx?.setContain;\n useLayoutEffect(() => {\n setContain?.(true);\n }, [setContain]);\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {useOverlayFocusContain} from './Overlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaModalOverlayProps {\n /**\n * Whether to close the modal when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n /**\n * Whether pressing the escape key to close the modal should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface ModalOverlayAria {\n /** Props for the modal element. */\n modalProps: DOMAttributes,\n /** Props for the underlay element. */\n underlayProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a modal component.\n * A modal is an overlay element which blocks interaction with elements outside it.\n */\nexport function useModalOverlay(props: AriaModalOverlayProps, state: OverlayTriggerState, ref: RefObject): ModalOverlayAria {\n let {overlayProps, underlayProps} = useOverlay({\n ...props,\n isOpen: state.isOpen,\n onClose: state.close\n }, ref);\n\n usePreventScroll({\n isDisabled: !state.isOpen\n });\n\n useOverlayFocusContain();\n\n useEffect(() => {\n if (state.isOpen) {\n return ariaHideOutside([ref.current]);\n }\n }, [state.isOpen, ref]);\n\n return {\n modalProps: mergeProps(overlayProps),\n underlayProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n@import '../commons/index.css';\n@import 'font.css';\n\n/*@mixin typography .spectrum-Body1 {}\n@mixin typography .spectrum-Body2 {}\n@mixin typography .spectrum-Body3 {}\n@mixin typography .spectrum-Body4 {}\n@mixin typography .spectrum-Body5 {}\n@mixin typography .spectrum-Heading1 {}\n@mixin typography .spectrum-Heading2 {}\n@mixin typography .spectrum-Heading3 {}\n@mixin typography .spectrum-Heading4 {}\n@mixin typography .spectrum-Heading5 {}\n@mixin typography .spectrum-Heading6 {}\n@mixin typography .spectrum-Subheading {}\n@mixin typography .spectrum-Detail {}\n@mixin typography .spectrum-Heading1--quiet, heading-quiet-1 {}\n@mixin typography .spectrum-Heading2--quiet, heading-quiet-2 {}\n@mixin typography .spectrum-Heading1--strong, heading-strong-1 {}\n@mixin typography .spectrum-Heading2--strong, heading-strong-2 {}\n@mixin typography .spectrum-Heading1--display, display-1 {}\n@mixin typography .spectrum-Heading2--display, display-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n\n.spectrum-Typography {\n @mixin typographyMargins .spectrum-Body1 {}\n @mixin typographyMargins .spectrum-Body2 {}\n @mixin typographyMargins .spectrum-Body3 {}\n @mixin typographyMargins .spectrum-Body4 {}\n @mixin typographyMargins .spectrum-Body5 {}\n @mixin typographyMargins .spectrum-Heading1 {}\n @mixin typographyMargins .spectrum-Heading2 {}\n @mixin typographyMargins .spectrum-Heading3 {}\n @mixin typographyMargins .spectrum-Heading4 {}\n @mixin typographyMargins .spectrum-Heading5 {}\n @mixin typographyMargins .spectrum-Heading6 {}\n @mixin typographyMargins .spectrum-Subheading {}\n @mixin typographyMargins .spectrum-Detail {}\n @mixin typographyMargins .spectrum-Heading1--quiet, heading-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--quiet, heading-quiet-2 {}\n @mixin typographyMargins .spectrum-Heading1--strong, heading-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--strong, heading-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display, display-1 {}\n @mixin typographyMargins .spectrum-Heading2--display, display-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n}\n\n.spectrum-Article {\n font-family: var(--spectrum-body-article-1-text-font-family);\n @mixin typography .spectrum-Body1, body-article-1 {}\n @mixin typography .spectrum-Body2, body-article-2 {}\n @mixin typography .spectrum-Body3, body-article-3 {}\n @mixin typography .spectrum-Body4, body-article-4 {}\n @mixin typography .spectrum-Body5, body-article-5 {}\n @mixin typography .spectrum-Heading1, heading-article-1 {}\n @mixin typography .spectrum-Heading2, heading-article-2 {}\n @mixin typography .spectrum-Heading3, heading-article-3 {}\n @mixin typography .spectrum-Heading4, heading-article-4 {}\n @mixin typography .spectrum-Heading5, heading-article-5 {}\n @mixin typography .spectrum-Heading6, heading-article-6 {}\n @mixin typography .spectrum-Subheading, subheading-article {}\n @mixin typography .spectrum-Detail, detail-article {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-article-2 {}\n @mixin typography .spectrum-Heading1--display, display-article-1 {}\n @mixin typography .spectrum-Heading2--display, display-article-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-article-2 {}\n}\n.spectrum {\n &:lang(ja),\n &:lang(ko),\n &:lang(zh) {\n @mixin typography .spectrum-Body1, body-han-1 {}\n @mixin typography .spectrum-Body2, body-han-2 {}\n @mixin typography .spectrum-Body3, body-han-3 {}\n @mixin typography .spectrum-Body4, body-han-4 {}\n @mixin typography .spectrum-Body5, body-han-5 {}\n @mixin typography .spectrum-Heading1, heading-han-1 {}\n @mixin typography .spectrum-Heading2, heading-han-2 {}\n @mixin typography .spectrum-Heading3, heading-han-3 {}\n @mixin typography .spectrum-Heading4, heading-han-4 {}\n @mixin typography .spectrum-Heading5, heading-han-5 {}\n @mixin typography .spectrum-Heading6, heading-han-6 {}\n @mixin typography .spectrum-Subheading, subheading-han {}\n @mixin typography .spectrum-Detail, detail-han {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-han-2 {}\n @mixin typography .spectrum-Heading1--strong, heading-strong-han-1 {}\n @mixin typography .spectrum-Heading2--strong, heading-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display, display-han-1 {}\n @mixin typography .spectrum-Heading2--display, display-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-han-2 {}\n }\n}\n@mixin typography .spectrum-Code1, body-code-1, true {\n font-family: var(--spectrum-body-code-1-text-font-family);\n}\n@mixin typography .spectrum-Code2, body-code-2, true {\n font-family: var(--spectrum-body-code-2-text-font-family);\n}\n@mixin typography .spectrum-Code3, body-code-3, true {\n font-family: var(--spectrum-body-code-3-text-font-family);\n}\n@mixin typography .spectrum-Code4, body-code-4, true {\n font-family: var(--spectrum-body-code-4-text-font-family);\n}\n@mixin typography .spectrum-Code5, body-code-5, true {\n font-family: var(--spectrum-body-code-5-text-font-family);\n}*/\n\n/*\n The &.spectrum makes it so users can do
    and still get the right font sizes\n Without this, they would have to do
    , which makes no sense\n*/\n&.spectrum,\n&.spectrum-Body,\n.spectrum,\n.spectrum-Body {\n font-size: var(--spectrum-body-4-text-size);\n font-weight: var(--spectrum-body-4-text-font-weight);\n line-height: var(--spectrum-body-4-text-line-height);\n font-style: var(--spectrum-body-4-text-font-style);\n}\n\n.spectrum-Body--italic {\n font-style: var(--spectrum-body-4-emphasis-text-font-style);\n}\n\n/*\n.spectrum-Body--large {\n @extend .spectrum-Body2;\n}\n\n.spectrum-Body--small {\n @extend .spectrum-Body5;\n}\n\n.spectrum-Body--secondary {\n @extend .spectrum-Body4;\n}\n\n.spectrum-Heading--display {\n @extend .spectrum-Heading2--display.spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--pageTitle {\n @extend .spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--subtitle1 {\n @extend .spectrum-Heading4;\n}\n\n.spectrum-Heading--subtitle2 {\n @extend .spectrum-Heading6;\n}\n\n.spectrum-Heading--subtitle3 {\n @extend .spectrum-Subheading;\n}*/\n","{\n \"name\": \"@react-spectrum/provider\",\n \"version\": \"3.6.1\",\n \"description\": \"Spectrum UI components in React\",\n \"license\": \"Apache-2.0\",\n \"main\": \"dist/main.js\",\n \"module\": \"dist/module.js\",\n \"types\": \"dist/types.d.ts\",\n \"source\": \"src/index.ts\",\n \"files\": [\n \"dist\",\n \"src\"\n ],\n \"sideEffects\": [\n \"*.css\"\n ],\n \"targets\": {\n \"main\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n },\n \"module\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/adobe/react-spectrum\"\n },\n \"dependencies\": {\n \"@react-aria/i18n\": \"^3.6.3\",\n \"@react-aria/overlays\": \"^3.12.1\",\n \"@react-aria/utils\": \"^3.14.2\",\n \"@react-spectrum/utils\": \"^3.8.1\",\n \"@react-types/provider\": \"^3.5.5\",\n \"@react-types/shared\": \"^3.16.0\",\n \"@swc/helpers\": \"^0.4.14\",\n \"clsx\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@adobe/spectrum-css-temp\": \"3.0.0-alpha.1\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n BreakpointProvider,\n shouldKeepSpectrumClassNames,\n useDOMRef,\n useMatchedBreakpoints,\n useStyleProps\n} from '@react-spectrum/utils';\nimport clsx from 'clsx';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {I18nProvider, useLocale} from '@react-aria/i18n';\nimport {ModalProvider, useModalProvider} from '@react-aria/overlays';\nimport {ProviderContext, ProviderProps} from '@react-types/provider';\nimport React, {useContext, useEffect, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/page/vars.css';\nimport typographyStyles from '@adobe/spectrum-css-temp/components/typography/index.css';\nimport {useColorScheme, useScale} from './mediaQueries';\n// @ts-ignore\nimport {version} from '../package.json';\n\nconst Context = React.createContext(null);\nContext.displayName = 'ProviderContext';\n\nconst DEFAULT_BREAKPOINTS = {S: 640, M: 768, L: 1024, XL: 1280, XXL: 1536};\n\nfunction Provider(props: ProviderProps, ref: DOMRef) {\n let prevContext = useProvider();\n let prevColorScheme = prevContext && prevContext.colorScheme;\n let prevBreakpoints = prevContext && prevContext.breakpoints;\n let {\n theme = prevContext && prevContext.theme,\n defaultColorScheme\n } = props;\n if (!theme) {\n throw new Error('theme not found, the parent provider must have a theme provided');\n }\n // Hooks must always be called.\n let autoColorScheme = useColorScheme(theme, defaultColorScheme);\n let autoScale = useScale(theme);\n let {locale: prevLocale} = useLocale();\n // if the new theme doesn't support the prevColorScheme, we must resort to the auto\n let usePrevColorScheme = !!theme[prevColorScheme];\n\n // importance of color scheme props > parent > auto:(OS > default > omitted)\n let {\n colorScheme = usePrevColorScheme ? prevColorScheme : autoColorScheme,\n scale = prevContext ? prevContext.scale : autoScale,\n locale = prevContext ? prevLocale : null,\n breakpoints = prevContext ? prevBreakpoints : DEFAULT_BREAKPOINTS,\n children,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState,\n ...otherProps\n } = props;\n\n // select only the props with values so undefined props don't overwrite prevContext values\n let currentProps = {\n version,\n theme,\n breakpoints,\n colorScheme,\n scale,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState\n };\n\n let matchedBreakpoints = useMatchedBreakpoints(breakpoints);\n let filteredProps = {};\n Object.entries(currentProps).forEach(([key, value]) => value !== undefined && (filteredProps[key] = value));\n\n // Merge options with parent provider\n let context = Object.assign({}, prevContext, filteredProps);\n\n // Only wrap in a DOM node if the theme, colorScheme, or scale changed\n let contents = children;\n let domProps = filterDOMProps(otherProps);\n let {styleProps} = useStyleProps(otherProps, undefined, {matchedBreakpoints});\n if (!prevContext || props.locale || theme !== prevContext.theme || colorScheme !== prevContext.colorScheme || scale !== prevContext.scale || Object.keys(domProps).length > 0 || otherProps.UNSAFE_className || Object.keys(styleProps.style).length > 0) {\n contents = (\n \n {contents}\n \n );\n }\n\n return (\n \n \n \n \n {contents}\n \n \n \n \n );\n}\n\n/**\n * Provider is the container for all React Spectrum applications.\n * It defines the theme, locale, and other application level settings,\n * and can also be used to provide common properties to a group of components.\n */\nlet _Provider = React.forwardRef(Provider);\nexport {_Provider as Provider};\n\nconst ProviderWrapper = React.forwardRef(function ProviderWrapper(props: ProviderProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {locale, direction} = useLocale();\n let {theme, colorScheme, scale} = useProvider();\n let {modalProviderProps} = useModalProvider();\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n let themeKey = Object.keys(theme[colorScheme])[0];\n let scaleKey = Object.keys(theme[scale])[0];\n\n let className = clsx(\n styleProps.className,\n styles['spectrum'],\n typographyStyles['spectrum'],\n Object.values(theme[colorScheme]),\n Object.values(theme[scale]),\n theme.global ? Object.values(theme.global) : null,\n {\n 'react-spectrum-provider': shouldKeepSpectrumClassNames,\n spectrum: shouldKeepSpectrumClassNames,\n [themeKey]: shouldKeepSpectrumClassNames,\n [scaleKey]: shouldKeepSpectrumClassNames\n }\n );\n\n let style = {\n ...styleProps.style,\n // This ensures that browser native UI like scrollbars are rendered in the right color scheme.\n // See https://web.dev/color-scheme/.\n colorScheme: props.colorScheme ?? colorScheme ?? Object.keys(theme).filter(k => k === 'light' || k === 'dark').join(' ')\n };\n\n let hasWarned = useRef(false);\n useEffect(() => {\n if (direction && domRef.current) {\n let closestDir = domRef.current.parentElement.closest('[dir]');\n let dir = closestDir && closestDir.getAttribute('dir');\n if (dir && dir !== direction && !hasWarned.current) {\n console.warn(`Language directions cannot be nested. ${direction} inside ${dir}.`);\n hasWarned.current = true;\n }\n }\n }, [direction, domRef, hasWarned]);\n\n\n return (\n \n {children}\n
    \n );\n});\n\n/**\n * Returns the various settings and styles applied by the nearest parent Provider.\n * Properties explicitly set by the nearest parent Provider override those provided by preceeding Providers.\n */\nexport function useProvider(): ProviderContext {\n return useContext(Context);\n}\n\nexport function useProviderProps(props: T) : T {\n let context = useProvider();\n if (!context) {\n return props;\n }\n return Object.assign({}, {\n isQuiet: context.isQuiet,\n isEmphasized: context.isEmphasized,\n isDisabled: context.isDisabled,\n isRequired: context.isRequired,\n isReadOnly: context.isReadOnly,\n validationState: context.validationState\n }, props);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ColorScheme, Scale} from '@react-types/provider';\nimport {Theme} from '@react-types/provider';\nimport {useMediaQuery} from '@react-spectrum/utils';\n\nexport function useColorScheme(theme: Theme, defaultColorScheme: ColorScheme): ColorScheme {\n let matchesDark = useMediaQuery('(prefers-color-scheme: dark)');\n let matchesLight = useMediaQuery('(prefers-color-scheme: light)');\n\n // importance OS > default > omitted\n\n if (theme.dark && matchesDark) {\n return 'dark';\n }\n\n if (theme.light && matchesLight) {\n return 'light';\n }\n\n if (theme.dark && defaultColorScheme === 'dark') {\n return 'dark';\n }\n\n if (theme.light && defaultColorScheme === 'light') {\n return 'light';\n }\n\n if (!theme.dark) {\n return 'light';\n }\n\n if (!theme.light) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function useScale(theme: Theme): Scale {\n let matchesFine = useMediaQuery('(any-pointer: fine)');\n if (matchesFine && theme.medium) {\n return 'medium';\n }\n\n if (theme.large) {\n return 'large';\n }\n\n return 'medium';\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CornerTriangle;\n\nvar _CornerTriangle = require(\"@adobe/react-spectrum-ui/dist/CornerTriangle\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CornerTriangle(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CornerTriangle.CornerTriangle, null));\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CornerTriangle = CornerTriangle;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CornerTriangle(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }));\n}\n\nCornerTriangle.displayName = 'CornerTriangle';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, IconColorValue, StyleProps} from '@react-types/shared';\nimport {baseStyleProps, classNames, StyleHandlers, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface IconProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Icon.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * Size of Icon (changes based on scale).\n */\n size?: 'XXS' | 'XS' | 'S' | 'M' | 'L' |'XL' | 'XXL',\n /**\n * A slot to place the icon in.\n * @default 'icon'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true',\n /**\n * Color of the Icon.\n */\n color?: IconColorValue\n}\n\nexport type IconPropsWithoutChildren = Omit;\n\nfunction iconColorValue(value: IconColorValue) {\n return `var(--spectrum-semantic-${value}-color-icon)`;\n}\n\nconst iconStyleProps: StyleHandlers = {\n ...baseStyleProps,\n color: ['color', iconColorValue]\n};\n\n/**\n * Spectrum icons are clear, minimal, and consistent across platforms. They follow the focused and rational principles of the design system in both metaphor and style.\n */\nexport function Icon(props: IconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n size,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, iconStyleProps);\n\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n // Use user specified size, falling back to provider scale if size is undef\n let iconSize = size ? size : scale;\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n `spectrum-Icon--size${iconSize}`,\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {classNames, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface UIIconProps extends DOMProps, AriaLabelingProps, StyleProps {\n children: ReactElement,\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type UIIconPropsWithoutChildren = Omit;\n\nexport function UIIcon(props: UIIconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n\n let {styleProps} = useStyleProps(otherProps);\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n scale,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n {\n [`spectrum-UIIcon-${children.type['displayName']}`]: children.type['displayName']\n },\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nexport interface IllustrationProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Illustration.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * A slot to place the illustration in.\n * @default 'illustration'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type IllustrationPropsWithoutChildren = Omit;\n\n/**\n * Wrapper component for illustrations. Use this to wrap your svg element for a custom illustration.\n */\nexport function Illustration(props: IllustrationProps) {\n props = useSlotProps(props, 'illustration');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n\n let hasLabel = ariaLabel || ariaLabelledby;\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n role: hasLabel ? 'img' : undefined\n });\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CrossSmall;\n\nvar _CrossSmall = require(\"@adobe/react-spectrum-ui/dist/CrossSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CrossSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CrossSmall.CrossSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CrossSmall = CrossSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CrossSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z\"\n }));\n}\n\nCrossSmall.displayName = 'CrossSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ToggleProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface ToggleState {\n /** Whether the toggle is selected. */\n readonly isSelected: boolean,\n\n /** Updates selection state. */\n setSelected(isSelected: boolean): void,\n\n /** Toggle the selection state. */\n toggle(): void\n}\n\n/**\n * Provides state management for toggle components like checkboxes and switches.\n */\nexport function useToggleState(props: ToggleProps = {}): ToggleState {\n let {isReadOnly} = props;\n\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, props.onChange);\n\n function updateSelected(value) {\n if (!isReadOnly) {\n setSelected(value);\n }\n }\n\n function toggleState() {\n if (!isReadOnly) {\n setSelected(!isSelected);\n }\n }\n\n return {\n isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n classNames,\n SlotProvider,\n useFocusableRef,\n useHasChild,\n useSlotProps,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType, ReactElement} from 'react';\nimport {SpectrumButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction Button(props: SpectrumButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'button');\n let {\n elementType: ElementType = 'button',\n children,\n variant,\n style = variant === 'accent' || variant === 'cta' ? 'fill' : 'outline',\n staticColor,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let hasLabel = useHasChild(`.${styles['spectrum-Button-label']}`, domRef);\n let hasIcon = useHasChild(`.${styles['spectrum-Icon']}`, domRef);\n\n if (variant === 'cta') {\n variant = 'accent';\n } else if (variant === 'overBackground') {\n variant = 'primary';\n staticColor = 'white';\n }\n\n return (\n \n \n \n {typeof children === 'string'\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * Buttons allow users to perform an action or to navigate to another page.\n * They have multiple styles for various needs, and are ideal for calling attention to\n * where a user needs to do something in order to move forward in a flow.\n */\nlet _Button = React.forwardRef(Button) as (props: SpectrumButtonProps & {ref?: FocusableRef}) => ReactElement;\nexport {_Button as Button};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport CornerTriangle from '@spectrum-icons/ui/CornerTriangle';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumActionButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction ActionButton(props: SpectrumActionButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'actionButton');\n let {\n isQuiet,\n isDisabled,\n staticColor,\n children,\n autoFocus,\n // @ts-ignore (private)\n holdAffordance,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n {holdAffordance &&\n \n }\n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ActionButtons allow users to perform an action.\n * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.\n */\nlet _ActionButton = React.forwardRef(ActionButton);\nexport {_ActionButton as ActionButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonProps} from '@react-types/button';\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface FieldButtonProps extends ButtonProps, DOMProps, StyleProps {\n isQuiet?: boolean,\n isActive?: boolean,\n validationState?: 'valid' | 'invalid',\n focusRingClass?: string\n}\n\n// @private\nfunction FieldButton(props: FieldButtonProps, ref: FocusableRef) {\n props = useSlotProps(props, 'button');\n let {\n isQuiet,\n isDisabled,\n validationState,\n children,\n autoFocus,\n isActive,\n focusRingClass,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref) as RefObject;\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _FieldButton = React.forwardRef(FieldButton);\nexport {_FieldButton as FieldButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumLogicButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction LogicButton(props: SpectrumLogicButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n variant,\n children,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n {children}\n \n \n );\n}\n\n/**\n * A LogicButton displays an operator within a boolean logic sequence.\n */\nlet _LogicButton = React.forwardRef(LogicButton);\nexport {_LogicButton as LogicButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonElementTypeProps, ButtonProps} from '@react-types/button';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport CrossSmall from '@spectrum-icons/ui/CrossSmall';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface ClearButtonProps extends ButtonProps, AriaButtonElementTypeProps, DOMProps, StyleProps {\n focusClassName?: string,\n variant?: 'overBackground',\n excludeFromTabOrder?: boolean,\n preventFocus?: boolean\n}\n\nfunction ClearButton(props: ClearButtonProps, ref: FocusableRef) {\n let {\n children = ,\n focusClassName,\n variant,\n autoFocus,\n isDisabled,\n preventFocus,\n elementType = preventFocus ? 'div' : 'button' as ElementType,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton({...props, elementType}, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n // For cases like the clear button in a search field, remove the tabIndex so\n // iOS 14 with VoiceOver doesn't focus the button and hide the keyboard when\n // moving the cursor over the clear button.\n if (preventFocus) {\n delete buttonProps.tabIndex;\n }\n\n let ElementType = elementType;\n return (\n \n \n {children}\n \n \n );\n}\n\nlet _ClearButton = React.forwardRef(ClearButton);\nexport {_ClearButton as ClearButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumToggleButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleButton} from '@react-aria/button';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction ToggleButton(props: SpectrumToggleButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n isQuiet,\n isDisabled,\n isEmphasized,\n staticColor,\n children,\n autoFocus,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let state = useToggleState(props);\n let {buttonProps, isPressed} = useToggleButton(props, state, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ToggleButtons allow users to toggle a selection on or off, for example\n * switching between two states or modes.\n */\nlet _ToggleButton = React.forwardRef(ToggleButton);\nexport {_ToggleButton as ToggleButton};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = FolderBreadcrumb;\n\nvar _FolderBreadcrumb = require(\"@adobe/react-spectrum-ui/dist/FolderBreadcrumb\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction FolderBreadcrumb(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_FolderBreadcrumb.FolderBreadcrumb, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FolderBreadcrumb = FolderBreadcrumb;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction FolderBreadcrumb(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M19.5 6l-9.166.004-1.668-1.7A.998.998 0 0 0 7.946 4H3a1 1 0 0 0-1 1v13a.5.5 0 0 0 .5.5h17a.5.5 0 0 0 .5-.5V6.5a.5.5 0 0 0-.5-.5zm-16-.5h4.237l1.964 2H3.5zm11.544 6.044l-3.5 3.5a.77.77 0 0 1-1.088 0l-3.5-3.5a.77.77 0 0 1 1.088-1.088L11 13.41l2.956-2.955a.77.77 0 0 1 1.088 1.088z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z\"\n }));\n}\n\nFolderBreadcrumb.displayName = 'FolderBreadcrumb';","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\nimport {Transition} from 'react-transition-group';\n\nconst OPEN_STATES = {\n entering: false,\n entered: true\n};\n\n/**\n * Timeout issues adding css animations to enter may be related to\n * https://github.com/reactjs/react-transition-group/issues/189 or\n * https://github.com/reactjs/react-transition-group/issues/22\n * my VM isn't good enough to debug accurately and get a better answer.\n *\n * As a result, use enter 0 so that is-open is applied once entered\n * it doesn't matter if we know when the css-animation is done on entering\n * for exiting though, give time for the css-animation to play\n * before removing from the DOM\n * **note** hitting esc bypasses exit animation for anyone testing.\n */\n\nexport function OpenTransition(props) {\n // Do not apply any transition if in chromatic.\n if (process.env.CHROMATIC) {\n return React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: props.in}));\n }\n\n return (\n \n {(state) => React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: !!OPEN_STATES[state]}))}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {OpenTransition} from './OpenTransition';\nimport {OverlayProps} from '@react-types/overlays';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useCallback, useState} from 'react';\nimport {Overlay as ReactAriaOverlay} from '@react-aria/overlays';\n\nfunction Overlay(props: OverlayProps, ref: DOMRef) {\n let {children, isOpen, container, onEnter, onEntering, onEntered, onExit, onExiting, onExited} = props;\n let [exited, setExited] = useState(!isOpen);\n\n let handleEntered = useCallback(() => {\n setExited(false);\n if (onEntered) {\n onEntered();\n }\n }, [onEntered]);\n\n let handleExited = useCallback(() => {\n setExited(true);\n if (onExited) {\n onExited();\n }\n }, [onExited]);\n\n // Don't un-render the overlay while it's transitioning out.\n let mountOverlay = isOpen || !exited;\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _Overlay = React.forwardRef(Overlay);\nexport {_Overlay as Overlay};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum-Popover {\n /* This makes the contents of popovers focusable immediately, without waiting\n a frame for animations to start. */\n &.react-spectrum-Popover {\n visibility: visible;\n }\n\n .spectrum-Dialog-content {\n max-height: initial;\n }\n}\n\n.spectrum-Modal-wrapper.react-spectrum-Modal-wrapper,\n.spectrum-Modal.react-spectrum-Modal {\n visibility: visible;\n}\n\n.spectrum-Tray.react-spectrum-Tray {\n visibility: visible;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport React from 'react';\nimport underlayStyles from '@adobe/spectrum-css-temp/components/underlay/vars.css';\n\ninterface UnderlayProps {\n isOpen?: boolean,\n isTransparent?: boolean\n}\n\nexport function Underlay({isOpen, isTransparent}: UnderlayProps) {\n return (\n
    \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaPopoverProps, DismissButton, usePopover} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject, useRef, useState} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/popover/vars.css';\nimport {Underlay} from './Underlay';\nimport {useLayoutEffect} from '@react-aria/utils';\n\ninterface PopoverProps extends Omit, StyleProps {\n children: ReactNode,\n hideArrow?: boolean,\n state: OverlayTriggerState\n}\n\ninterface PopoverWrapperProps extends PopoverProps {\n isOpen?: boolean\n}\n\n/**\n * Arrow placement can be done pointing right or down because those paths start at 0, x or y. Because the\n * other two don't, they start at a fractional pixel value, it introduces rounding differences between browsers and\n * between display types (retina with subpixels vs not retina). By flipping them with CSS we can ensure that\n * the path always starts at 0 so that it perfectly overlaps the popover's border.\n * See bottom of file for more explanation.\n */\nlet arrowPlacement = {\n left: 'right',\n right: 'right',\n top: 'bottom',\n bottom: 'bottom'\n};\n\nfunction Popover(props: PopoverProps, ref: DOMRef) {\n let {\n children,\n state,\n ...otherProps\n } = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nconst PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject) => {\n let {\n children,\n isOpen,\n hideArrow,\n isNonModal,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {popoverProps, arrowProps, underlayProps, placement} = usePopover({\n ...props,\n popoverRef: ref,\n maxHeight: null\n }, state);\n\n return (\n <>\n {!isNonModal && }\n \n {!isNonModal && }\n {children}\n {hideArrow ? null : (\n \n )}\n \n
    \n \n );\n});\n\nlet ROOT_2 = Math.sqrt(2);\n\nfunction Arrow(props) {\n let [size, setSize] = useState(20);\n let [borderWidth, setBorderWidth] = useState(1);\n let ref = useRef();\n // get the css value for the tip size and divide it by 2 for this arrow implementation\n useLayoutEffect(() => {\n if (ref.current) {\n let spectrumTipWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-size');\n if (spectrumTipWidth !== '') {\n setSize(parseInt(spectrumTipWidth, 10) / 2);\n }\n\n let spectrumBorderWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-borderWidth');\n if (spectrumBorderWidth !== '') {\n setBorderWidth(parseInt(spectrumBorderWidth, 10));\n }\n }\n }, [ref]);\n\n let landscape = props.direction === 'top' || props.direction === 'bottom';\n let mirror = props.direction === 'left' || props.direction === 'top';\n\n let borderDiagonal = borderWidth * ROOT_2;\n let halfBorderDiagonal = borderDiagonal / 2;\n\n let secondary = 2 * size + 2 * borderDiagonal;\n let primary = size + borderDiagonal;\n\n let primaryStart = mirror ? primary : 0;\n let primaryEnd = mirror ? halfBorderDiagonal : primary - halfBorderDiagonal;\n\n let secondaryStart = halfBorderDiagonal;\n let secondaryMiddle = secondary / 2;\n let secondaryEnd = secondary - halfBorderDiagonal;\n\n let pathData = landscape ? [\n 'M', secondaryStart, primaryStart,\n 'L', secondaryMiddle, primaryEnd,\n 'L', secondaryEnd, primaryStart\n ] : [\n 'M', primaryStart, secondaryStart,\n 'L', primaryEnd, secondaryMiddle,\n 'L', primaryStart, secondaryEnd\n ];\n let arrowProps = props.arrowProps;\n\n /* use ceil because the svg needs to always accomodate the path inside it */\n return (\n \n \n \n );\n}\n\nlet _Popover = forwardRef(Popover);\nexport {_Popover as Popover};\n\n/**\n * More explanation on popover tips.\n * - I tried changing the calculation of the popover placement in an effort to get it squarely onto the pixel grid.\n * This did not work because the problem was in the svg partial pixel end of the path in the popover right and popover bottom.\n * - I tried creating an extra 'bandaid' path that matched the background color and would overlap the popover border.\n * This didn't work because the border on the svg triangle didn't extend all the way to match nicely with the popover border.\n * - I tried getting the client bounding box and setting the svg to that partial pixel value\n * This didn't work because again the issue was inside the svg\n * - I didn't try drawing the svg backwards\n * This could still be tried\n * - I tried changing the calculation of the popover placement AND the svg height/width so that they were all rounded\n * This seems to have done the trick.\n */\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport modalStyles from '@adobe/spectrum-css-temp/components/modal/vars.css';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface ModalProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover'\n}\n\ninterface ModalWrapperProps extends ModalProps {\n isOpen?: boolean\n}\n\nfunction Modal(props: ModalProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet typeMap = {\n fullscreen: 'fullscreen',\n fullscreenTakeover: 'fullscreenTakeover'\n};\n\nlet ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: RefObject) {\n let {type, children, state, isOpen} = props;\n let typeVariant = typeMap[type];\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay(props, state, ref);\n\n let wrapperClassName = classNames(\n modalStyles,\n 'spectrum-Modal-wrapper',\n classNames(\n overrideStyles,\n 'spectrum-Modal-wrapper',\n 'react-spectrum-Modal-wrapper'\n )\n );\n\n let modalClassName = classNames(\n modalStyles,\n 'spectrum-Modal',\n {\n 'is-open': isOpen\n },\n classNames(\n overrideStyles,\n 'spectrum-Modal',\n 'react-spectrum-Modal'\n ),\n {[`spectrum-Modal--${typeVariant}`]: typeVariant},\n styleProps.className\n );\n\n let viewport = useViewportSize();\n let style: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n return (\n <>\n \n
    \n \n {children}\n
    \n
    \n \n );\n});\n\nlet _Modal = forwardRef(Modal);\nexport {_Modal as Modal};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, DismissButton, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport trayStyles from '@adobe/spectrum-css-temp/components/tray/vars.css';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface TrayProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n isFixedHeight?: boolean\n}\n\ninterface TrayWrapperProps extends TrayProps {\n isOpen?: boolean\n}\n\nfunction Tray(props: TrayProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject) {\n let {\n children,\n isOpen,\n isFixedHeight,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay({\n ...props,\n isDismissable: true\n }, state, ref);\n\n // We need to measure the window's height in JS rather than using percentages in CSS\n // so that contents (e.g. menu) can inherit the max-height properly. Using percentages\n // does not work properly because there is nothing to base the percentage on.\n // We cannot use vh units because mobile browsers adjust the window height dynamically\n // when the address bar/bottom toolbars show and hide on scroll and vh units are fixed.\n // Also, the visual viewport is smaller than the layout viewport when the virtual keyboard\n // is up, so use the VisualViewport API to ensure the tray is displayed above the keyboard.\n let viewport = useViewportSize();\n let wrapperStyle: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n let wrapperClassName = classNames(\n trayStyles,\n 'spectrum-Tray-wrapper'\n );\n\n let className = classNames(\n trayStyles,\n 'spectrum-Tray',\n {\n 'is-open': isOpen,\n 'spectrum-Tray--fixedHeight': isFixedHeight\n },\n classNames(\n overrideStyles,\n 'spectrum-Tray',\n 'react-spectrum-Tray'\n ),\n styleProps.className\n );\n\n return (\n <>\n \n
    \n \n \n {children}\n \n
    \n
    \n \n );\n});\n\nlet _Tray = forwardRef(Tray);\nexport {_Tray as Tray};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAppleDevice} from '@react-aria/utils';\nimport {isMac} from '@react-aria/utils';\n\ninterface Event {\n altKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean\n}\n\nexport function isNonContiguousSelectionModifier(e: Event) {\n // Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.\n // On Windows and Ubuntu, Alt + Space has a system wide meaning.\n return isAppleDevice() ? e.altKey : e.ctrlKey;\n}\n\nexport function isCtrlKeyPressed(e: Event) {\n if (isMac()) {\n return e.metaKey;\n }\n\n return e.ctrlKey;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {Key, KeyboardEvent, useRef} from 'react';\nimport {MultipleSelectionManager} from '@react-stately/selection';\n\n/**\n * Controls how long to wait before clearing the typeahead buffer.\n */\nconst TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000; // 1 second\n\nexport interface AriaTypeSelectOptions {\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * Called when an item is focused by typing.\n */\n onTypeSelect?: (key: Key) => void\n}\n\nexport interface TypeSelectAria {\n /**\n * Props to be spread on the owner of the options.\n */\n typeSelectProps: DOMAttributes\n}\n\n/**\n * Handles typeahead interactions with collections.\n */\nexport function useTypeSelect(options: AriaTypeSelectOptions): TypeSelectAria {\n let {keyboardDelegate, selectionManager, onTypeSelect} = options;\n let state = useRef({\n search: '',\n timeout: null\n }).current;\n\n let onKeyDown = (e: KeyboardEvent) => {\n let character = getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey) {\n return;\n }\n\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character === ' ' && state.search.trim().length > 0) {\n e.preventDefault();\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n }\n\n state.search += character;\n\n // Use the delegate to find a key to focus.\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);\n\n // If no key found, search from the top.\n if (key == null) {\n key = keyboardDelegate.getKeyForSearch(state.search);\n }\n\n if (key != null) {\n selectionManager.setFocusedKey(key);\n if (onTypeSelect) {\n onTypeSelect(key);\n }\n }\n\n clearTimeout(state.timeout);\n state.timeout = setTimeout(() => {\n state.search = '';\n }, TYPEAHEAD_DEBOUNCE_WAIT_MS);\n };\n\n return {\n typeSelectProps: {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : null\n }\n };\n}\n\nfunction getStringForKey(key: string) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n\n return '';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, FocusStrategy, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, Key, KeyboardEvent, RefObject, useEffect, useRef} from 'react';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {focusWithoutScrolling, mergeProps, scrollIntoView, useEvent} from '@react-aria/utils';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useLocale} from '@react-aria/i18n';\nimport {useTypeSelect} from './useTypeSelect';\n\nexport interface AriaSelectableCollectionOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A delegate object that implements behavior for keyboard focus movement.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * The ref attached to the element representing the collection.\n */\n ref: RefObject,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether the collection allows the user to select all items via keyboard shortcut.\n * @default false\n */\n disallowSelectAll?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean,\n /**\n * Whether the collection items are contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * The ref attached to the scrollable body. Used to provide automatic scrolling on item focus for non-virtualized collections.\n * If not provided, defaults to the collection ref.\n */\n scrollRef?: RefObject\n}\n\nexport interface SelectableCollectionAria {\n /** Props for the collection element. */\n collectionProps: DOMAttributes\n}\n\n/**\n * Handles interactions with selectable collections.\n */\nexport function useSelectableCollection(options: AriaSelectableCollectionOptions): SelectableCollectionAria {\n let {\n selectionManager: manager,\n keyboardDelegate: delegate,\n ref,\n autoFocus = false,\n shouldFocusWrap = false,\n disallowEmptySelection = false,\n disallowSelectAll = false,\n selectOnFocus = manager.selectionBehavior === 'replace',\n disallowTypeAhead = false,\n shouldUseVirtualFocus,\n allowsTabNavigation = false,\n isVirtualized,\n // If no scrollRef is provided, assume the collection ref is the scrollable region\n scrollRef = ref\n } = options;\n let {direction} = useLocale();\n\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Prevent option + tab from doing anything since it doesn't move focus to the cells, only buttons/checkboxes\n if (e.altKey && e.key === 'Tab') {\n e.preventDefault();\n }\n\n // Keyboard events bubble through portals. Don't handle keyboard events\n // for elements outside the collection (e.g. menus).\n if (!ref.current.contains(e.target as Element)) {\n return;\n }\n\n const navigateToKey = (key: Key | undefined, childFocus?: FocusStrategy) => {\n if (key != null) {\n manager.setFocusedKey(key, childFocus);\n\n if (e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(key);\n } else if (selectOnFocus && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n }\n };\n\n switch (e.key) {\n case 'ArrowDown': {\n if (delegate.getKeyBelow) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyBelow(manager.focusedKey)\n : delegate.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getFirstKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowUp': {\n if (delegate.getKeyAbove) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyAbove(manager.focusedKey)\n : delegate.getLastKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getLastKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowLeft': {\n if (delegate.getKeyLeftOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyLeftOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'first' : 'last');\n }\n break;\n }\n case 'ArrowRight': {\n if (delegate.getKeyRightOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyRightOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'last' : 'first');\n }\n break;\n }\n case 'Home':\n if (delegate.getFirstKey) {\n e.preventDefault();\n let firstKey = delegate.getFirstKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(firstKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(firstKey);\n }\n }\n break;\n case 'End':\n if (delegate.getLastKey) {\n e.preventDefault();\n let lastKey = delegate.getLastKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(lastKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(lastKey);\n }\n }\n break;\n case 'PageDown':\n if (delegate.getKeyPageBelow) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageBelow(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'PageUp':\n if (delegate.getKeyPageAbove) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageAbove(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'a':\n if (isCtrlKeyPressed(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case 'Escape':\n e.preventDefault();\n if (!disallowEmptySelection) {\n manager.clearSelection();\n }\n break;\n case 'Tab': {\n if (!allowsTabNavigation) {\n // There may be elements that are \"tabbable\" inside a collection (e.g. in a grid cell).\n // However, collections should be treated as a single tab stop, with arrow key navigation internally.\n // We don't control the rendering of these, so we can't override the tabIndex to prevent tabbing.\n // Instead, we handle the Tab key, and move focus manually to the first/last tabbable element\n // in the collection, so that the browser default behavior will apply starting from that element\n // rather than the currently focused one.\n if (e.shiftKey) {\n ref.current.focus();\n } else {\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n\n if (next && !next.contains(document.activeElement)) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n\n // Store the scroll position so we can restore it later.\n let scrollPos = useRef({top: 0, left: 0});\n useEvent(scrollRef, 'scroll', isVirtualized ? null : () => {\n scrollPos.current = {\n top: scrollRef.current.scrollTop,\n left: scrollRef.current.scrollLeft\n };\n });\n\n let onFocus = (e: FocusEvent) => {\n if (manager.isFocused) {\n // If a focus event bubbled through a portal, reset focus state.\n if (!e.currentTarget.contains(e.target)) {\n manager.setFocused(false);\n }\n\n return;\n }\n\n // Focus events can bubble through portals. Ignore these events.\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n manager.setFocused(true);\n\n if (manager.focusedKey == null) {\n let navigateToFirstKey = (key: Key | undefined) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (selectOnFocus) {\n manager.replaceSelection(key);\n }\n }\n };\n // If the user hasn't yet interacted with the collection, there will be no focusedKey set.\n // Attempt to detect whether the user is tabbing forward or backward into the collection\n // and either focus the first or last item accordingly.\n let relatedTarget = e.relatedTarget as Element;\n if (relatedTarget && (e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING)) {\n navigateToFirstKey(manager.lastSelectedKey ?? delegate.getLastKey());\n } else {\n navigateToFirstKey(manager.firstSelectedKey ?? delegate.getFirstKey());\n }\n } else if (!isVirtualized) {\n // Restore the scroll position to what it was before.\n scrollRef.current.scrollTop = scrollPos.current.top;\n scrollRef.current.scrollLeft = scrollPos.current.left;\n\n // Refocus and scroll the focused item into view if it exists within the scrollable region.\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n // This prevents a flash of focus on the first/last element in the collection\n focusWithoutScrolling(element);\n scrollIntoView(scrollRef.current, element);\n }\n }\n };\n\n let onBlur = (e) => {\n // Don't set blurred and then focused again if moving focus within the collection.\n if (!e.currentTarget.contains(e.relatedTarget as HTMLElement)) {\n manager.setFocused(false);\n }\n };\n\n const autoFocusRef = useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n let focusedKey = null;\n\n // Check focus strategy to determine which item to focus\n if (autoFocus === 'first') {\n focusedKey = delegate.getFirstKey();\n } if (autoFocus === 'last') {\n focusedKey = delegate.getLastKey();\n }\n\n // If there are any selected keys, make the first one the new focus target\n let selectedKeys = manager.selectedKeys;\n if (selectedKeys.size) {\n focusedKey = selectedKeys.values().next().value;\n }\n\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n\n // If no default focus key is selected, focus the collection itself.\n if (focusedKey == null && !shouldUseVirtualFocus) {\n focusSafely(ref.current);\n }\n }\n autoFocusRef.current = false;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // If not virtualized, scroll the focused element into view when the focusedKey changes.\n // When virtualized, Virtualizer handles this internally.\n useEffect(() => {\n if (!isVirtualized && manager.focusedKey && scrollRef?.current) {\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n scrollIntoView(scrollRef.current, element);\n }\n }\n }, [isVirtualized, scrollRef, manager.focusedKey]);\n\n let handlers = {\n onKeyDown,\n onFocus,\n onBlur,\n onMouseDown(e) {\n // Ignore events that bubbled through portals.\n if (scrollRef.current === e.target) {\n // Prevent focus going to the collection when clicking on the scrollbar.\n e.preventDefault();\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: manager\n });\n\n if (!disallowTypeAhead) {\n handlers = mergeProps(typeSelectProps, handlers);\n }\n\n // If nothing is focused within the collection, make the collection itself tabbable.\n // This will be marshalled to either the first or last item depending on where focus came from.\n // If using virtual focus, don't set a tabIndex at all so that VoiceOver on iOS 14 doesn't try\n // to move real DOM focus to the element anyway.\n let tabIndex: number;\n if (!shouldUseVirtualFocus) {\n tabIndex = manager.focusedKey == null ? 0 : -1;\n }\n\n return {\n collectionProps: {\n ...handlers,\n tabIndex\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, LongPressEvent, PressEvent} from '@react-types/shared';\nimport {focusSafely} from '@react-aria/focus';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {Key, RefObject, useEffect, useRef} from 'react';\nimport {mergeProps} from '@react-aria/utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {PressProps, useLongPress, usePress} from '@react-aria/interactions';\n\nexport interface SelectableItemOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A unique key for the item.\n */\n key: Key,\n /**\n * Ref to the item.\n */\n ref: RefObject,\n /**\n * By default, selection occurs on pointer down. This can be strange if selecting an\n * item causes the UI to disappear immediately (e.g. menus).\n */\n shouldSelectOnPressUp?: boolean,\n /**\n * Whether selection requires the pointer/mouse down and up events to occur on the same target or triggers selection on\n * the target of the pointer/mouse up event.\n */\n allowsDifferentPressOrigin?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Function to focus the item.\n */\n focus?: () => void,\n /**\n * Whether the option should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /** Whether the item is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void\n}\n\nexport interface SelectableItemStates {\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /**\n * Whether the item is non-interactive, i.e. both selection and actions are disabled and the item may\n * not be focused. Dependent on `disabledKeys` and `disabledBehavior`.\n */\n isDisabled: boolean,\n /**\n * Whether the item may be selected, dependent on `selectionMode`, `disabledKeys`, and `disabledBehavior`.\n */\n allowsSelection: boolean,\n /**\n * Whether the item has an action, dependent on `onAction`, `disabledKeys`,\n * and `disabledBehavior`. It may also change depending on the current selection state\n * of the list (e.g. when selection is primary). This can be used to enable or disable hover\n * styles or other visual indications of interactivity.\n */\n hasAction: boolean\n}\n\nexport interface SelectableItemAria extends SelectableItemStates {\n /**\n * Props to be spread on the item root node.\n */\n itemProps: DOMAttributes\n}\n\n/**\n * Handles interactions with an item in a selectable collection.\n */\nexport function useSelectableItem(options: SelectableItemOptions): SelectableItemAria {\n let {\n selectionManager: manager,\n key,\n ref,\n shouldSelectOnPressUp,\n isVirtualized,\n shouldUseVirtualFocus,\n focus,\n isDisabled,\n onAction,\n allowsDifferentPressOrigin\n } = options;\n\n let onSelect = (e: PressEvent | LongPressEvent | PointerEvent) => {\n if (e.pointerType === 'keyboard' && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(key);\n } else {\n if (manager.selectionMode === 'none') {\n return;\n }\n\n if (manager.selectionMode === 'single') {\n if (manager.isSelected(key) && !manager.disallowEmptySelection) {\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n } else if (e && e.shiftKey) {\n manager.extendSelection(key);\n } else if (manager.selectionBehavior === 'toggle' || (e && (isCtrlKeyPressed(e) || e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n }\n };\n\n // Focus the associated DOM node when this item becomes the focusedKey\n useEffect(() => {\n let isFocused = key === manager.focusedKey;\n if (isFocused && manager.isFocused && !shouldUseVirtualFocus && document.activeElement !== ref.current) {\n if (focus) {\n focus();\n } else {\n focusSafely(ref.current);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, key, manager.focusedKey, manager.childFocusStrategy, manager.isFocused, shouldUseVirtualFocus]);\n\n isDisabled = isDisabled || manager.isDisabled(key);\n // Set tabIndex to 0 if the element is focused, or -1 otherwise so that only the last focused\n // item is tabbable. If using virtual focus, don't set a tabIndex at all so that VoiceOver\n // on iOS 14 doesn't try to move real DOM focus to the item anyway.\n let itemProps: SelectableItemAria['itemProps'] = {};\n if (!shouldUseVirtualFocus && !isDisabled) {\n itemProps = {\n tabIndex: key === manager.focusedKey ? 0 : -1,\n onFocus(e) {\n if (e.target === ref.current) {\n manager.setFocusedKey(key);\n }\n }\n };\n } else if (isDisabled) {\n itemProps.onMouseDown = (e) => {\n // Prevent focus going to the body when clicking on a disabled item.\n e.preventDefault();\n };\n }\n\n // With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click of the row.\n // Clicking the checkbox enters selection mode, after which clicking anywhere on any row toggles selection for that row.\n // With highlight selection, onAction is secondary, and occurs on double click. Single click selects the row.\n // With touch, onAction occurs on single tap, and long press enters selection mode.\n let allowsSelection = !isDisabled && manager.canSelectItem(key);\n let allowsActions = onAction && !isDisabled;\n let hasPrimaryAction = allowsActions && (\n manager.selectionBehavior === 'replace'\n ? !allowsSelection\n : manager.isEmpty\n );\n let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === 'replace';\n let hasAction = hasPrimaryAction || hasSecondaryAction;\n let modality = useRef(null);\n\n let longPressEnabled = hasAction && allowsSelection;\n let longPressEnabledOnPressStart = useRef(false);\n let hadPrimaryActionOnPressStart = useRef(false);\n\n // By default, selection occurs on pointer down. This can be strange if selecting an\n // item causes the UI to disappear immediately (e.g. menus).\n // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.\n // onPress requires a pointer down event on the same element as pointer up. For menus,\n // we want to be able to have the pointer down on the trigger that opens the menu and\n // the pointer up on the menu item rather than requiring a separate press.\n // For keyboard events, selection still occurs on key down.\n let itemPressProps: PressProps = {};\n if (shouldSelectOnPressUp) {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n if (e.pointerType === 'keyboard' && (!hasAction || isSelectionKey())) {\n onSelect(e);\n }\n };\n\n // If allowsDifferentPressOrigin, make selection happen on pressUp (e.g. open menu on press down, selection on menu item happens on press up.)\n // Otherwise, have selection happen onPress (prevents listview row selection when clicking on interactable elements in the row)\n if (!allowsDifferentPressOrigin) {\n itemPressProps.onPress = (e) => {\n if (hasPrimaryAction || (hasSecondaryAction && e.pointerType !== 'mouse')) {\n if (e.pointerType === 'keyboard' && !isActionKey()) {\n return;\n }\n\n onAction();\n } else if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n } else {\n itemPressProps.onPressUp = (e) => {\n if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = hasPrimaryAction ? () => onAction() : null;\n }\n } else {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n hadPrimaryActionOnPressStart.current = hasPrimaryAction;\n\n // Select on mouse down unless there is a primary action which will occur on mouse up.\n // For keyboard, select on key down. If there is an action, the Space key selects on key down,\n // and the Enter key performs onAction on key up.\n if (\n (e.pointerType === 'mouse' && !hasPrimaryAction) ||\n (e.pointerType === 'keyboard' && (!onAction || isSelectionKey()))\n ) {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = (e) => {\n // Selection occurs on touch up. Primary actions always occur on pointer up.\n // Both primary and secondary actions occur on Enter key up. The only exception\n // is secondary actions, which occur on double click with a mouse.\n if (\n e.pointerType === 'touch' ||\n e.pointerType === 'pen' ||\n e.pointerType === 'virtual' ||\n (e.pointerType === 'keyboard' && hasAction && isActionKey()) ||\n (e.pointerType === 'mouse' && hadPrimaryActionOnPressStart.current)\n ) {\n if (hasAction) {\n onAction();\n } else {\n onSelect(e);\n }\n }\n };\n }\n\n if (!isVirtualized) {\n itemProps['data-key'] = key;\n }\n\n itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;\n let {pressProps, isPressed} = usePress(itemPressProps);\n\n // Double clicking with a mouse with selectionBehavior = 'replace' performs an action.\n let onDoubleClick = hasSecondaryAction ? (e) => {\n if (modality.current === 'mouse') {\n e.stopPropagation();\n e.preventDefault();\n onAction();\n }\n } : undefined;\n\n // Long pressing an item with touch when selectionBehavior = 'replace' switches the selection behavior\n // to 'toggle'. This changes the single tap behavior from performing an action (i.e. navigating) to\n // selecting, and may toggle the appearance of a UI affordance like checkboxes on each item.\n let {longPressProps} = useLongPress({\n isDisabled: !longPressEnabled,\n onLongPress(e) {\n if (e.pointerType === 'touch') {\n onSelect(e);\n manager.setSelectionBehavior('toggle');\n }\n }\n });\n\n // Prevent native drag and drop on long press if we also select on long press.\n // Once the user is in selection mode, they can long press again to drag.\n // Use a capturing listener to ensure this runs before useDrag, regardless of\n // the order the props get merged.\n let onDragStartCapture = e => {\n if (modality.current === 'touch' && longPressEnabledOnPressStart.current) {\n e.preventDefault();\n }\n };\n\n return {\n itemProps: mergeProps(\n itemProps,\n allowsSelection || hasPrimaryAction ? pressProps : {},\n longPressEnabled ? longPressProps : {},\n {onDoubleClick, onDragStartCapture}\n ),\n isPressed,\n isSelected: manager.isSelected(key),\n isDisabled,\n allowsSelection,\n hasAction\n };\n}\n\nfunction isActionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === 'Enter';\n}\n\nfunction isSelectionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === ' ' || event?.code === 'Space';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject} from 'react';\n\nexport class ListKeyboardDelegate implements KeyboardDelegate {\n private collection: Collection>;\n private disabledKeys: Set;\n private ref: RefObject;\n private collator: Intl.Collator;\n\n constructor(collection: Collection>, disabledKeys: Set, ref: RefObject, collator?: Intl.Collator) {\n this.collection = collection;\n this.disabledKeys = disabledKeys;\n this.ref = ref;\n this.collator = collator;\n }\n\n getKeyBelow(key: Key) {\n key = this.collection.getKeyAfter(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getKeyAbove(key: Key) {\n key = this.collection.getKeyBefore(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n getFirstKey() {\n let key = this.collection.getFirstKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let key = this.collection.getLastKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n private getItem(key: Key): HTMLElement {\n return this.ref.current.querySelector(`[data-key=\"${key}\"]`);\n }\n\n getKeyPageAbove(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);\n\n while (item && item.offsetTop > pageY) {\n key = this.getKeyAbove(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyPageBelow(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);\n\n while (item && item.offsetTop < pageY) {\n key = this.getKeyBelow(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DOMAttributes, FocusStrategy, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate} from './ListKeyboardDelegate';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useCollator} from '@react-aria/i18n';\nimport {useSelectableCollection} from './useSelectableCollection';\n\nexport interface AriaSelectableListOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * State of the collection.\n */\n collection: Collection>,\n /**\n * The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with.\n */\n disabledKeys: Set,\n /**\n * A ref to the item.\n */\n ref?: RefObject,\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean\n}\n\nexport interface SelectableListAria {\n /**\n * Props for the option element.\n */\n listProps: DOMAttributes\n}\n\n/**\n * Handles interactions with a selectable list.\n */\nexport function useSelectableList(props: AriaSelectableListOptions): SelectableListAria {\n let {\n selectionManager,\n collection,\n disabledKeys,\n ref,\n keyboardDelegate,\n autoFocus,\n shouldFocusWrap,\n isVirtualized,\n disallowEmptySelection,\n selectOnFocus = selectionManager.selectionBehavior === 'replace',\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let disabledBehavior = selectionManager.disabledBehavior;\n let delegate = useMemo(() => (\n keyboardDelegate || new ListKeyboardDelegate(collection, disabledBehavior === 'selection' ? new Set() : disabledKeys, ref, collator)\n ), [keyboardDelegate, collection, disabledKeys, ref, collator, disabledBehavior]);\n\n let {collectionProps} = useSelectableCollection({\n ref,\n selectionManager,\n keyboardDelegate: delegate,\n autoFocus,\n shouldFocusWrap,\n disallowEmptySelection,\n selectOnFocus,\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation,\n isVirtualized,\n scrollRef: ref\n });\n\n return {\n listProps: collectionProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ItemElement, ItemProps} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\n\nfunction Item(props: ItemProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nItem.getCollectionNode = function* getCollectionNode(props: ItemProps, context: any): Generator> {\n let {childItems, title, children} = props;\n\n let rendered = props.title || props.children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'] || '';\n\n // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.\n if (!textValue && !context?.suppressTextValueWarning) {\n console.warn(' with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.');\n }\n\n yield {\n type: 'item',\n props: props,\n rendered,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: hasChildItems(props),\n *childNodes() {\n if (childItems) {\n for (let child of childItems) {\n yield {\n type: 'item',\n value: child\n };\n }\n } else if (title) {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child as ItemElement\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\nfunction hasChildItems(props: ItemProps) {\n if (props.hasChildItems != null) {\n return props.hasChildItems;\n }\n\n if (props.childItems) {\n return true;\n }\n\n if (props.title && React.Children.count(props.children) > 0) {\n return true;\n }\n\n return false;\n}\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Item = Item as (props: ItemProps) => JSX.Element;\nexport {_Item as Item};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\nimport {SectionProps} from '@react-types/shared';\n\nfunction Section(props: SectionProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nSection.getCollectionNode = function* getCollectionNode(props: SectionProps): Generator> {\n let {children, title, items} = props;\n yield {\n type: 'section',\n props: props,\n hasChildNodes: true,\n rendered: title,\n 'aria-label': props['aria-label'],\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n \n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Section = Section as (props: SectionProps) => JSX.Element;\nexport {_Section as Section};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, CollectionElement, Node} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {Key, ReactElement} from 'react';\n\ninterface CollectionBuilderState {\n renderer?: (value: any) => ReactElement\n}\n\nexport class CollectionBuilder {\n private context?: unknown;\n private cache: WeakMap> = new WeakMap();\n\n build(props: CollectionBase, context?: unknown) {\n this.context = context;\n return iterable(() => this.iterateCollection(props));\n }\n\n private *iterateCollection(props: CollectionBase) {\n let {children, items} = props;\n\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of props.items) {\n yield* this.getFullNode({\n value: item\n }, {renderer: children});\n }\n } else {\n let items: CollectionElement[] = [];\n React.Children.forEach(children, child => {\n items.push(child);\n });\n\n let index = 0;\n for (let item of items) {\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n }\n }\n\n private getKey(item: CollectionElement, partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key): Key {\n if (item.key != null) {\n return item.key;\n }\n\n if (partialNode.type === 'cell' && partialNode.key != null) {\n return `${parentKey}${partialNode.key}`;\n }\n\n let v = partialNode.value as any;\n if (v != null) {\n let key = v.key ?? v.id;\n if (key == null) {\n throw new Error('No key found for item');\n }\n\n return key;\n }\n\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n\n private getChildState(state: CollectionBuilderState, partialNode: PartialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n\n private *getFullNode(partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key, parentNode?: Node): Generator> {\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n\n element = state.renderer(partialNode.value);\n }\n\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if (React.isValidElement(element)) {\n let type = element.type as any;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = typeof element.type === 'function' ? element.type.name : element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n\n let childNodes = type.getCollectionNode(element.props, this.context) as Generator, void, Node[]>;\n let index = partialNode.index;\n let result = childNodes.next();\n while (!result.done && result.value) {\n let childNode = result.value;\n\n partialNode.index = index;\n\n let nodeKey = childNode.key;\n if (!nodeKey) {\n nodeKey = childNode.element ? null : this.getKey(element as CollectionElement, partialNode, state, parentKey);\n }\n\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index,\n wrapper: compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n\n let children = [...nodes];\n for (let node of children) {\n // Cache the node based on its value\n node.value = childNode.value || partialNode.value;\n if (node.value) {\n this.cache.set(node.value, node);\n }\n\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) {\n throw new Error(`Unsupported type <${capitalize(node.type)}> in <${capitalize(parentNode.type)}>. Only <${capitalize(partialNode.type)}> is supported.`);\n }\n\n index++;\n yield node;\n }\n\n result = childNodes.next(children);\n }\n\n return;\n }\n\n // Ignore invalid elements\n if (partialNode.key == null) {\n return;\n }\n\n // Create full node\n let builder = this;\n let node: Node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: partialNode.value,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: partialNode.textValue,\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes,\n childNodes: iterable(function *() {\n if (!partialNode.hasChildNodes) {\n return;\n }\n\n let index = 0;\n for (let child of partialNode.childNodes()) {\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) {\n // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n }\n\n child.index = index;\n let nodes = builder.getFullNode(child, builder.getChildState(state, child), node.key, node);\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n })\n };\n\n yield node;\n }\n}\n\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction iterable(iterator: () => IterableIterator>): Iterable> {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator]() {\n for (let item of cache) {\n yield item;\n }\n\n if (!iterable) {\n iterable = iterator();\n }\n\n for (let item of iterable) {\n cache.push(item);\n yield item;\n }\n }\n };\n}\n\ntype Wrapper = (element: ReactElement) => ReactElement;\nfunction compose(outer: Wrapper | void, inner: Wrapper | void): Wrapper {\n if (outer && inner) {\n return (element) => outer(inner(element));\n }\n\n if (outer) {\n return outer;\n }\n\n if (inner) {\n return inner;\n }\n}\n\nfunction capitalize(str: string) {\n return str[0].toUpperCase() + str.slice(1);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {CollectionBuilder} from './CollectionBuilder';\nimport {useMemo, useRef} from 'react';\n\ntype CollectionFactory>> = (node: Iterable>, prev: C | null) => C;\n\nexport function useCollection> = Collection>>(props: CollectionBase, factory: CollectionFactory, context?: unknown, invalidators: Array = []): C {\n let builder = useMemo(() => new CollectionBuilder(), []);\n\n let prev = useRef(null);\n return useMemo(() => {\n let nodes = builder.build(props, context);\n prev.current = factory(nodes, prev.current);\n return prev.current;\n // Don't invalidate when any prop changes, just the two we care about.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [builder, props.children, props.items, context, ...invalidators]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Node} from '@react-types/shared';\n\nconst cache = new WeakMap, number>();\n\nexport function getItemCount(collection: Iterable>): number {\n let count = cache.get(collection);\n if (count != null) {\n return count;\n }\n\n count = 0;\n for (let item of collection) {\n if (item.type === 'section') {\n count += getItemCount(item.childNodes);\n } else {\n count++;\n }\n }\n\n cache.set(collection, count);\n return count;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaMenuOptions} from './useMenu';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MenuTriggerState} from '@react-stately/menu';\nimport {MenuTriggerType} from '@react-types/menu';\nimport {RefObject} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useLongPress} from '@react-aria/interactions';\nimport {useOverlayTrigger} from '@react-aria/overlays';\n\nexport interface AriaMenuTriggerProps {\n /** The type of menu that the menu trigger opens. */\n type?: 'menu' | 'listbox',\n /** Whether menu trigger is disabled. */\n isDisabled?: boolean,\n /** How menu is triggered. */\n trigger?: MenuTriggerType\n}\n\nexport interface MenuTriggerAria {\n /** Props for the menu trigger element. */\n menuTriggerProps: AriaButtonProps,\n\n /** Props for the menu. */\n menuProps: AriaMenuOptions\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu trigger.\n * @param props - Props for the menu trigger.\n * @param state - State for the menu trigger.\n */\nexport function useMenuTrigger(props: AriaMenuTriggerProps, state: MenuTriggerState, ref: RefObject): MenuTriggerAria {\n let {\n type = 'menu' as AriaMenuTriggerProps['type'],\n isDisabled,\n trigger = 'press'\n } = props;\n\n let menuTriggerId = useId();\n let {triggerProps, overlayProps} = useOverlayTrigger({type}, state, ref);\n\n let onKeyDown = (e) => {\n if (isDisabled) {\n return;\n }\n\n if (trigger === 'longPress' && !e.altKey) {\n return;\n }\n\n if (ref && ref.current) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n if (trigger === 'longPress') {\n return;\n }\n // fallthrough\n case 'ArrowDown':\n // Stop propagation, unless it would already be handled by useKeyboard.\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('first');\n break;\n case 'ArrowUp':\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('last');\n break;\n }\n }\n };\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let {longPressProps} = useLongPress({\n isDisabled: isDisabled || trigger !== 'longPress',\n accessibilityDescription: stringFormatter.format('longPressMessage'),\n onLongPressStart() {\n state.close();\n },\n onLongPress() {\n state.open('first');\n }\n });\n\n let pressProps = {\n onPressStart(e) {\n // For consistency with native, open the menu on mouse/key down, but touch up.\n if (e.pointerType !== 'touch' && e.pointerType !== 'keyboard' && !isDisabled) {\n // If opened with a screen reader, auto focus the first item.\n // Otherwise, the menu itself will be focused.\n state.toggle(e.pointerType === 'virtual' ? 'first' : null);\n }\n },\n onPress(e) {\n if (e.pointerType === 'touch' && !isDisabled) {\n state.toggle();\n }\n }\n };\n\n // omit onPress from triggerProps since we override it above.\n delete triggerProps.onPress;\n\n return {\n menuTriggerProps: {\n ...triggerProps,\n ...(trigger === 'press' ? pressProps : longPressProps),\n id: menuTriggerId,\n onKeyDown\n },\n menuProps: {\n ...overlayProps,\n 'aria-labelledby': menuTriggerId,\n autoFocus: state.focusStrategy || true,\n onClose: state.close\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"longPressMessage\": \"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة\"\n}\n","{\n \"longPressMessage\": \"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто\"\n}\n","{\n \"longPressMessage\": \"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku\"\n}\n","{\n \"longPressMessage\": \"Langt tryk eller tryk på Alt + pil ned for at åbne menuen\"\n}\n","{\n \"longPressMessage\": \"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen\"\n}\n","{\n \"longPressMessage\": \"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού\"\n}\n","{\n \"longPressMessage\": \"Long press or press Alt + ArrowDown to open menu\"\n}\n","{\n \"longPressMessage\": \"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú\"\n}\n","{\n \"longPressMessage\": \"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool\"\n}\n","{\n \"longPressMessage\": \"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli\"\n}\n","{\n \"longPressMessage\": \"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.\"\n}\n","{\n \"longPressMessage\": \"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika\"\n}\n","{\n \"longPressMessage\": \"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához\"\n}\n","{\n \"longPressMessage\": \"Premere a lungo o premere Alt + Freccia giù per aprire il menu\"\n}\n","{\n \"longPressMessage\": \"長押しまたは Alt+下矢印キーでメニューを開く\"\n}\n","{\n \"longPressMessage\": \"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기\"\n}\n","{\n \"longPressMessage\": \"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.\"\n}\n","{\n \"longPressMessage\": \"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa\"\n}\n","{\n \"longPressMessage\": \"Langt trykk eller trykk Alt + PilNed for å åpne menyen\"\n}\n","{\n \"longPressMessage\": \"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen\"\n}\n","{\n \"longPressMessage\": \"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu\"\n}\n","{\n \"longPressMessage\": \"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul\"\n}\n","{\n \"longPressMessage\": \"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню\"\n}\n","{\n \"longPressMessage\": \"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol\"\n}\n","{\n \"longPressMessage\": \"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni\"\n}\n","{\n \"longPressMessage\": \"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn\"\n}\n","{\n \"longPressMessage\": \"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın\"\n}\n","{\n \"longPressMessage\": \"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню\"\n}\n","{\n \"longPressMessage\": \"长按或按 Alt + 向下方向键以打开菜单\"\n}\n","{\n \"longPressMessage\": \"長按或按 Alt+向下鍵以開啟功能表\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaMenuProps} from '@react-types/menu';\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface MenuAria {\n /** Props for the menu element. */\n menuProps: DOMAttributes\n}\n\nexport interface AriaMenuOptions extends Omit, 'children'> {\n /** Whether the menu uses virtual scrolling. */\n isVirtualized?: boolean,\n\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\ninterface MenuData {\n onClose?: () => void,\n onAction?: (key: Key) => void\n}\n\nexport const menuData = new WeakMap, MenuData>();\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n * @param props - Props for the menu.\n * @param state - State for the menu, as returned by `useListState`.\n */\nexport function useMenu(props: AriaMenuOptions, state: TreeState, ref: RefObject): MenuAria {\n let {\n shouldFocusWrap = true,\n ...otherProps\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {listProps} = useSelectableList({\n ...otherProps,\n ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n shouldFocusWrap\n });\n\n menuData.set(state, {\n onClose: props.onClose,\n onAction: props.onAction\n });\n\n return {\n menuProps: mergeProps(domProps, {\n role: 'menu',\n ...listProps\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, PressEvent} from '@react-types/shared';\nimport {getItemCount} from '@react-stately/collections';\nimport {isFocusVisible, useHover, usePress} from '@react-aria/interactions';\nimport {Key, RefObject} from 'react';\nimport {menuData} from './useMenu';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableItem} from '@react-aria/selection';\n\nexport interface MenuItemAria {\n /** Props for the menu item element. */\n menuItemProps: DOMAttributes,\n\n /** Props for the main text element inside the menu item. */\n labelProps: DOMAttributes,\n\n /** Props for the description text element inside the menu item, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the keyboard shortcut text element inside the item, if any. */\n keyboardShortcutProps: DOMAttributes,\n\n /** Whether the item is currently focused. */\n isFocused: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is disabled. */\n isDisabled: boolean\n}\n\nexport interface AriaMenuItemProps {\n /**\n * Whether the menu item is disabled.\n * @deprecated - pass disabledKeys to useTreeState instead.\n */\n isDisabled?: boolean,\n\n /**\n * Whether the menu item is selected.\n * @deprecated - pass selectedKeys to useTreeState instead.\n */\n isSelected?: boolean,\n\n /** A screen reader only label for the menu item. */\n 'aria-label'?: string,\n\n /** The unique key for the menu item. */\n key?: Key,\n\n /**\n * Handler that is called when the menu should close after selecting an item.\n * @deprecated - pass to the menu instead.\n */\n onClose?: () => void,\n\n /**\n * Whether the menu should close when the menu item is selected.\n * @default true\n */\n closeOnSelect?: boolean,\n\n /** Whether the menu item is contained in a virtual scrolling menu. */\n isVirtualized?: boolean,\n\n /**\n * Handler that is called when the user activates the item.\n * @deprecated - pass to the menu instead.\n */\n onAction?: (key: Key) => void\n}\n\n/**\n * Provides the behavior and accessibility implementation for an item in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the item.\n * @param state - State for the menu, as returned by `useTreeState`.\n */\nexport function useMenuItem(props: AriaMenuItemProps, state: TreeState, ref: RefObject): MenuItemAria {\n let {\n key,\n closeOnSelect,\n isVirtualized\n } = props;\n\n let isDisabled = props.isDisabled ?? state.disabledKeys.has(key);\n let isSelected = props.isSelected ?? state.selectionManager.isSelected(key);\n let isFocused = state.selectionManager.focusedKey === key;\n\n let data = menuData.get(state);\n let onClose = props.onClose || data.onClose;\n let onAction = props.onAction || data.onAction;\n\n let role = 'menuitem';\n if (state.selectionManager.selectionMode === 'single') {\n role = 'menuitemradio';\n } else if (state.selectionManager.selectionMode === 'multiple') {\n role = 'menuitemcheckbox';\n }\n\n let labelId = useSlotId();\n let descriptionId = useSlotId();\n let keyboardId = useSlotId();\n\n let ariaProps = {\n 'aria-disabled': isDisabled,\n role,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': labelId,\n 'aria-describedby': [descriptionId, keyboardId].filter(Boolean).join(' ') || undefined\n };\n\n if (state.selectionManager.selectionMode !== 'none') {\n ariaProps['aria-checked'] = isSelected;\n }\n\n if (isVirtualized) {\n ariaProps['aria-posinset'] = state.collection.getItem(key).index;\n ariaProps['aria-setsize'] = getItemCount(state.collection);\n }\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Ignore repeating events, which may have started on the menu trigger before moving\n // focus to the menu item. We want to wait for a second complete key press sequence.\n if (e.repeat) {\n return;\n }\n\n switch (e.key) {\n case ' ':\n if (!isDisabled && state.selectionManager.selectionMode === 'none' && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n case 'Enter':\n // The Enter key should always close on select, except if overridden.\n if (!isDisabled && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n }\n };\n\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType === 'keyboard' && onAction) {\n onAction(key);\n }\n };\n\n let onPressUp = (e: PressEvent) => {\n if (e.pointerType !== 'keyboard') {\n if (onAction) {\n onAction(key);\n }\n\n // Pressing a menu item should close by default in single selection mode but not multiple\n // selection mode, except if overridden by the closeOnSelect prop.\n if (onClose && (closeOnSelect ?? state.selectionManager.selectionMode !== 'multiple')) {\n onClose();\n }\n }\n };\n\n let {itemProps} = useSelectableItem({\n selectionManager: state.selectionManager,\n key,\n ref,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true\n });\n\n let {pressProps, isPressed} = usePress({onPressStart, onPressUp, isDisabled});\n let {hoverProps} = useHover({\n isDisabled,\n onHoverStart() {\n if (!isFocusVisible()) {\n state.selectionManager.setFocused(true);\n state.selectionManager.setFocusedKey(key);\n }\n }\n });\n\n return {\n menuItemProps: {\n ...ariaProps,\n ...mergeProps(itemProps, pressProps, hoverProps, {onKeyDown})\n },\n labelProps: {\n id: labelId\n },\n descriptionProps: {\n id: descriptionId\n },\n keyboardShortcutProps: {\n id: keyboardId\n },\n isFocused,\n isSelected,\n isPressed,\n isDisabled\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {ReactNode} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface AriaMenuSectionProps {\n /** The heading for the section. */\n heading?: ReactNode,\n /** An accessibility label for the section. Required if `heading` is not present. */\n 'aria-label'?: string\n}\n\nexport interface MenuSectionAria {\n /** Props for the wrapper list item. */\n itemProps: DOMAttributes,\n\n /** Props for the heading element, if any. */\n headingProps: DOMAttributes,\n\n /** Props for the group element. */\n groupProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a section in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the section.\n */\nexport function useMenuSection(props: AriaMenuSectionProps): MenuSectionAria {\n let {heading, 'aria-label': ariaLabel} = props;\n let headingId = useId();\n\n return {\n itemProps: {\n role: 'presentation'\n },\n headingProps: heading ? {\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label for the nested group.\n id: headingId,\n 'aria-hidden': true\n } : {},\n groupProps: {\n role: 'group',\n 'aria-label': ariaLabel,\n 'aria-labelledby': heading ? headingId : undefined\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {OverlayTriggerProps} from '@react-types/overlays';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface OverlayTriggerState {\n /** Whether the overlay is currently open. */\n readonly isOpen: boolean,\n /** Sets whether the overlay is open. */\n setOpen(isOpen: boolean): void,\n /** Opens the overlay. */\n open(): void,\n /** Closes the overlay. */\n close(): void,\n /** Toggles the overlay's visibility. */\n toggle(): void\n}\n\n/**\n * Manages state for an overlay trigger. Tracks whether the overlay is open, and provides\n * methods to toggle this state.\n */\nexport function useOverlayTriggerState(props: OverlayTriggerProps): OverlayTriggerState {\n let [isOpen, setOpen] = useControlledState(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n\n return {\n isOpen,\n setOpen,\n open() {\n setOpen(true);\n },\n close() {\n setOpen(false);\n },\n toggle() {\n setOpen(!isOpen);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport {MenuTriggerProps} from '@react-types/menu';\nimport {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';\nimport {useState} from 'react';\n\nexport interface MenuTriggerState extends OverlayTriggerState {\n /** Controls which item will be auto focused when the menu opens. */\n readonly focusStrategy: FocusStrategy,\n\n /** Opens the menu. */\n open(focusStrategy?: FocusStrategy | null): void,\n\n /** Toggles the menu. */\n toggle(focusStrategy?: FocusStrategy | null): void\n}\n\n/**\n * Manages state for a menu trigger. Tracks whether the menu is currently open,\n * and controls which item will receive focus when it opens.\n */\nexport function useMenuTriggerState(props: MenuTriggerProps): MenuTriggerState {\n let overlayTriggerState = useOverlayTriggerState(props);\n let [focusStrategy, setFocusStrategy] = useState(null);\n\n return {\n focusStrategy,\n ...overlayTriggerState,\n open(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.open();\n },\n toggle(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.toggle();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\n\n/**\n * A Selection is a special Set containing Keys, which also has an anchor\n * and current selected key for use when range selecting.\n */\nexport class Selection extends Set {\n anchorKey: Key;\n currentKey: Key;\n\n constructor(keys?: Iterable | Selection, anchorKey?: Key, currentKey?: Key) {\n super(keys);\n if (keys instanceof Selection) {\n this.anchorKey = anchorKey || keys.anchorKey;\n this.currentKey = currentKey || keys.currentKey;\n } else {\n this.anchorKey = anchorKey;\n this.currentKey = currentKey;\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DisabledBehavior, MultipleSelection, SelectionBehavior, SelectionMode} from '@react-types/shared';\nimport {Key, useEffect, useMemo, useRef, useState} from 'react';\nimport {MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\nimport {useControlledState} from '@react-stately/utils';\n\nfunction equalSets(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n\n for (let item of setA) {\n if (!setB.has(item)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport interface MultipleSelectionStateProps extends MultipleSelection {\n /** How multiple selection should behave in the collection. */\n selectionBehavior?: SelectionBehavior,\n /** Whether onSelectionChange should fire even if the new set of keys is the same as the last. */\n allowDuplicateSelectionEvents?: boolean,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\n/**\n * Manages state for multiple selection and focus in a collection.\n */\nexport function useMultipleSelectionState(props: MultipleSelectionStateProps): MultipleSelectionState {\n let {\n selectionMode = 'none' as SelectionMode,\n disallowEmptySelection,\n allowDuplicateSelectionEvents,\n selectionBehavior: selectionBehaviorProp = 'toggle',\n disabledBehavior = 'all'\n } = props;\n\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = useRef(false);\n let [, setFocused] = useState(false);\n let focusedKeyRef = useRef(null);\n let childFocusStrategyRef = useRef(null);\n let [, setFocusedKey] = useState(null);\n let selectedKeysProp = useMemo(() => convertSelection(props.selectedKeys), [props.selectedKeys]);\n let defaultSelectedKeys = useMemo(() => convertSelection(props.defaultSelectedKeys, new Selection()), [props.defaultSelectedKeys]);\n let [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp,\n defaultSelectedKeys,\n props.onSelectionChange\n );\n let disabledKeysProp = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n let [selectionBehavior, setSelectionBehavior] = useState(selectionBehaviorProp);\n\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) {\n setSelectionBehavior('replace');\n }\n\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = useRef(selectionBehaviorProp);\n useEffect(() => {\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [selectionBehaviorProp]);\n\n return {\n selectionMode,\n disallowEmptySelection,\n selectionBehavior,\n setSelectionBehavior,\n get isFocused() {\n return isFocusedRef.current;\n },\n setFocused(f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey() {\n return focusedKeyRef.current;\n },\n get childFocusStrategy() {\n return childFocusStrategyRef.current;\n },\n setFocusedKey(k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys,\n setSelectedKeys(keys) {\n if (allowDuplicateSelectionEvents || !equalSets(keys, selectedKeys)) {\n setSelectedKeys(keys);\n }\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior\n };\n}\n\nfunction convertSelection(selection: 'all' | Iterable, defaultValue?: Selection): 'all' | Selection {\n if (!selection) {\n return defaultValue;\n }\n\n return selection === 'all'\n ? 'all'\n : new Selection(selection);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Collection,\n DisabledBehavior,\n FocusStrategy,\n Selection as ISelection,\n LongPressEvent,\n Node,\n PressEvent,\n SelectionBehavior,\n SelectionMode\n} from '@react-types/shared';\nimport {Key} from 'react';\nimport {MultipleSelectionManager, MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\n\ninterface SelectionManagerOptions {\n allowsCellSelection?: boolean\n}\n\n/**\n * An interface for reading and updating multiple selection state.\n */\nexport class SelectionManager implements MultipleSelectionManager {\n private collection: Collection>;\n private state: MultipleSelectionState;\n private allowsCellSelection: boolean;\n private _isSelectAll: boolean;\n\n constructor(collection: Collection>, state: MultipleSelectionState, options?: SelectionManagerOptions) {\n this.collection = collection;\n this.state = state;\n this.allowsCellSelection = options?.allowsCellSelection ?? false;\n this._isSelectAll = null;\n }\n\n /**\n * The type of selection that is allowed in the collection.\n */\n get selectionMode(): SelectionMode {\n return this.state.selectionMode;\n }\n\n /**\n * Whether the collection allows empty selection.\n */\n get disallowEmptySelection(): boolean {\n return this.state.disallowEmptySelection;\n }\n\n /**\n * The selection behavior for the collection.\n */\n get selectionBehavior(): SelectionBehavior {\n return this.state.selectionBehavior;\n }\n\n /**\n * Sets the selection behavior for the collection.\n */\n setSelectionBehavior(selectionBehavior: SelectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n\n /**\n * Whether the collection is currently focused.\n */\n get isFocused(): boolean {\n return this.state.isFocused;\n }\n\n /**\n * Sets whether the collection is focused.\n */\n setFocused(isFocused: boolean) {\n this.state.setFocused(isFocused);\n }\n\n /**\n * The current focused key in the collection.\n */\n get focusedKey(): Key {\n return this.state.focusedKey;\n }\n\n /** Whether the first or last child of the focused key should receive focus. */\n get childFocusStrategy(): FocusStrategy {\n return this.state.childFocusStrategy;\n }\n\n /**\n * Sets the focused key.\n */\n setFocusedKey(key: Key, childFocusStrategy?: FocusStrategy) {\n if (key == null || this.collection.getItem(key)) {\n this.state.setFocusedKey(key, childFocusStrategy);\n }\n }\n\n /**\n * The currently selected keys in the collection.\n */\n get selectedKeys(): Set {\n return this.state.selectedKeys === 'all'\n ? new Set(this.getSelectAllKeys())\n : this.state.selectedKeys;\n }\n\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */\n get rawSelection(): ISelection {\n return this.state.selectedKeys;\n }\n\n /**\n * Returns whether a key is selected.\n */\n isSelected(key: Key) {\n if (this.state.selectionMode === 'none') {\n return false;\n }\n\n key = this.getKey(key);\n return this.state.selectedKeys === 'all'\n ? this.canSelectItem(key)\n : this.state.selectedKeys.has(key);\n }\n\n /**\n * Whether the selection is empty.\n */\n get isEmpty(): boolean {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n\n /**\n * Whether all items in the collection are selected.\n */\n get isSelectAll(): boolean {\n if (this.isEmpty) {\n return false;\n }\n\n if (this.state.selectedKeys === 'all') {\n return true;\n }\n\n if (this._isSelectAll != null) {\n return this._isSelectAll;\n }\n\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every(k => selectedKeys.has(k));\n return this._isSelectAll;\n }\n\n get firstSelectedKey(): Key | null {\n let first: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!first || item?.index < first.index) {\n first = item;\n }\n }\n\n return first?.key;\n }\n\n get lastSelectedKey(): Key | null {\n let last: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!last || item?.index > last.index) {\n last = item;\n }\n }\n\n return last?.key;\n }\n\n get disabledKeys(): Set {\n return this.state.disabledKeys;\n }\n\n get disabledBehavior(): DisabledBehavior {\n return this.state.disabledBehavior;\n }\n\n /**\n * Extends the selection to the given key.\n */\n extendSelection(toKey: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n\n toKey = this.getKey(toKey);\n\n let selection: Selection;\n\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') {\n selection = new Selection([toKey], toKey, toKey);\n } else {\n let selectedKeys = this.state.selectedKeys as Selection;\n let anchorKey = selectedKeys.anchorKey || toKey;\n selection = new Selection(selectedKeys, anchorKey, toKey);\n for (let key of this.getKeyRange(anchorKey, selectedKeys.currentKey || toKey)) {\n selection.delete(key);\n }\n\n for (let key of this.getKeyRange(toKey, anchorKey)) {\n if (this.canSelectItem(key)) {\n selection.add(key);\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getKeyRange(from: Key, to: Key) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if (fromItem.index <= toItem.index) {\n return this.getKeyRangeInternal(from, to);\n }\n\n return this.getKeyRangeInternal(to, from);\n }\n\n return [];\n }\n\n private getKeyRangeInternal(from: Key, to: Key) {\n let keys: Key[] = [];\n let key = from;\n while (key) {\n let item = this.collection.getItem(key);\n if (item && item.type === 'item' || (item.type === 'cell' && this.allowsCellSelection)) {\n keys.push(key);\n }\n\n if (key === to) {\n return keys;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n\n return [];\n }\n\n private getKey(key: Key) {\n let item = this.collection.getItem(key);\n if (!item) {\n // ¯\\_(ツ)_/¯\n return key;\n }\n\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) {\n return key;\n }\n\n // Find a parent item to select\n while (item.type !== 'item' && item.parentKey != null) {\n item = this.collection.getItem(item.parentKey);\n }\n\n if (!item || item.type !== 'item') {\n return null;\n }\n\n return item.key;\n }\n\n /**\n * Toggles whether the given key is selected.\n */\n toggleSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let keys = new Selection(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(key)) {\n keys.delete(key);\n // TODO: move anchor to last selected key...\n // Does `current` need to move here too?\n } else if (this.canSelectItem(key)) {\n keys.add(key);\n keys.anchorKey = key;\n keys.currentKey = key;\n }\n\n if (this.disallowEmptySelection && keys.size === 0) {\n return;\n }\n\n this.state.setSelectedKeys(keys);\n }\n\n /**\n * Replaces the selection with only the given key.\n */\n replaceSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let selection = this.canSelectItem(key)\n ? new Selection([key], key, key)\n : new Selection();\n\n this.state.setSelectedKeys(selection);\n }\n\n /**\n * Replaces the selection with the given keys.\n */\n setSelectedKeys(keys: Iterable) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n let selection = new Selection();\n for (let key of keys) {\n key = this.getKey(key);\n if (key != null) {\n selection.add(key);\n if (this.selectionMode === 'single') {\n break;\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getSelectAllKeys() {\n let keys: Key[] = [];\n let addKeys = (key: Key) => {\n while (key) {\n if (this.canSelectItem(key)) {\n let item = this.collection.getItem(key);\n if (item.type === 'item') {\n keys.push(key);\n }\n\n // Add child keys. If cell selection is allowed, then include item children too.\n if (item.hasChildNodes && (this.allowsCellSelection || item.type !== 'item')) {\n addKeys([...item.childNodes][0].key);\n }\n }\n\n key = this.collection.getKeyAfter(key);\n }\n };\n\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n\n /**\n * Selects all items in the collection.\n */\n selectAll() {\n if (this.selectionMode === 'multiple') {\n this.state.setSelectedKeys('all');\n }\n }\n\n /**\n * Removes all keys from the selection.\n */\n clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) {\n this.state.setSelectedKeys(new Selection());\n }\n }\n\n /**\n * Toggles between select all and an empty selection.\n */\n toggleSelectAll() {\n if (this.isSelectAll) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n }\n\n select(key: Key, e?: PressEvent | LongPressEvent | PointerEvent) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n } else if (this.selectionBehavior === 'toggle' || (e && (e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n }\n\n /**\n * Returns whether the current selection is equal to the given selection.\n */\n isSelectionEqual(selection: Set) {\n if (selection === this.state.selectedKeys) {\n return true;\n }\n\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) {\n return false;\n }\n\n for (let key of selection) {\n if (!selectedKeys.has(key)) {\n return false;\n }\n }\n\n for (let key of selectedKeys) {\n if (!selection.has(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n canSelectItem(key: Key) {\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) {\n return false;\n }\n\n let item = this.collection.getItem(key);\n if (!item || (item.type === 'cell' && !this.allowsCellSelection)) {\n return false;\n }\n\n return true;\n }\n\n isDisabled(key: Key) {\n return this.state.disabledKeys.has(key) && this.state.disabledBehavior === 'all';\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class TreeCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>, {expandedKeys}: {expandedKeys?: Set} = {}) {\n this.iterable = nodes;\n expandedKeys = expandedKeys || new Set();\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && (node.type === 'section' || expandedKeys.has(node.key))) {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Expandable, MultipleSelection, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {TreeCollection} from './TreeCollection';\nimport {useCollection} from '@react-stately/collections';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface TreeProps extends CollectionBase, Expandable, MultipleSelection {}\nexport interface TreeState {\n /** A collection of items in the tree. */\n readonly collection: Collection>,\n\n /** A set of keys for items that are disabled. */\n readonly disabledKeys: Set,\n\n /** A set of keys for items that are expanded. */\n readonly expandedKeys: Set,\n\n /** Toggles the expanded state for an item by its key. */\n toggleKey(key: Key): void,\n\n /** A selection manager to read and update multiple selection state. */\n readonly selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for tree-like components. Handles building a collection\n * of items from props, item expanded state, and manages multiple selection state.\n */\nexport function useTreeState(props: TreeProps): TreeState {\n let [expandedKeys, setExpandedKeys] = useControlledState(\n props.expandedKeys ? new Set(props.expandedKeys) : undefined,\n props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : new Set(),\n props.onExpandedChange\n );\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let tree = useCollection(props, nodes => new TreeCollection(nodes, {expandedKeys}), null, [expandedKeys]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tree, selectionState.focusedKey]);\n\n let onToggle = (key: Key) => {\n setExpandedKeys(toggleKey(expandedKeys, key));\n };\n\n return {\n collection: tree,\n expandedKeys,\n disabledKeys,\n toggleKey: onToggle,\n selectionManager: new SelectionManager(tree, selectionState)\n };\n}\n\nfunction toggleKey(set: Set, key: Key): Set {\n let res = new Set(set);\n if (res.has(key)) {\n res.delete(key);\n } else {\n res.add(key);\n }\n\n return res;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CheckmarkMedium;\n\nvar _CheckmarkMedium = require(\"@adobe/react-spectrum-ui/dist/CheckmarkMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CheckmarkMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.CheckmarkMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckmarkMedium = CheckmarkMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CheckmarkMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z\"\n }));\n}\n\nCheckmarkMedium.displayName = 'CheckmarkMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n baseStyleProps,\n dimensionValue,\n passthroughStyle,\n StyleHandlers,\n useDOMRef,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {DimensionValue, DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {GridProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\n\nconst gridStyleProps: StyleHandlers = {\n ...baseStyleProps,\n autoFlow: ['gridAutoFlow', passthroughStyle],\n autoColumns: ['gridAutoColumns', gridDimensionValue],\n autoRows: ['gridAutoRows', gridDimensionValue],\n areas: ['gridTemplateAreas', gridTemplateAreasValue],\n columns: ['gridTemplateColumns', gridTemplateValue],\n rows: ['gridTemplateRows', gridTemplateValue],\n gap: ['gap', dimensionValue],\n rowGap: ['rowGap', dimensionValue],\n columnGap: ['columnGap', dimensionValue],\n justifyItems: ['justifyItems', passthroughStyle],\n justifyContent: ['justifyContent', passthroughStyle],\n alignItems: ['alignItems', passthroughStyle],\n alignContent: ['alignContent', passthroughStyle]\n};\n\nfunction Grid(props: GridProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, gridStyleProps);\n styleProps.style.display = 'grid'; // inline-grid?\n let domRef = useDOMRef(ref);\n\n return (\n
    \n {children}\n
    \n );\n}\n\n/**\n * Can be used to make a repeating fragment of the columns or rows list.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/repeat).\n * @param count - The number of times to repeat the fragment.\n * @param repeat - The fragment to repeat.\n */\nexport function repeat(count: number | 'auto-fill' | 'auto-fit', repeat: DimensionValue | DimensionValue[]): string {\n return `repeat(${count}, ${gridTemplateValue(repeat)})`;\n}\n\n/**\n * Defines a size range greater than or equal to min and less than or equal to max.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/minmax).\n * @param min - The minimum size.\n * @param max - The maximum size.\n */\nexport function minmax(min: DimensionValue, max: DimensionValue): string {\n return `minmax(${gridDimensionValue(min)}, ${gridDimensionValue(max)})`;\n}\n\n/**\n * Clamps a given size to an available size.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content).\n * @param dimension - The size to clamp.\n */\nexport function fitContent(dimension: DimensionValue): string {\n return `fit-content(${gridDimensionValue(dimension)})`;\n}\n\nfunction gridTemplateAreasValue(value) {\n return value.map(v => `\"${v}\"`).join('\\n');\n}\n\nfunction gridDimensionValue(value) {\n if (/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(value)) {\n return value;\n }\n\n return dimensionValue(value);\n}\n\nfunction gridTemplateValue(value) {\n if (Array.isArray(value)) {\n return value.map(gridDimensionValue).join(' ');\n }\n\n return gridDimensionValue(value);\n}\n\n/**\n * A layout container using CSS grid. Supports Spectrum dimensions as values to\n * ensure consistent and adaptive sizing and spacing.\n */\nconst _Grid = forwardRef(Grid);\nexport {_Grid as Grid};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.flex-container {\n /* this is necessary so that the inner margins don't affect anything outside */\n display: flex;\n}\n\n.flex {\n display: flex;\n}\n\n.flex-gap {\n --gap: 0px;\n --column-gap: var(--gap);\n --row-gap: var(--gap);\n\n /* apply a negative margin to counteract the margin on each item at the edges */\n margin: calc(var(--row-gap) / -2) calc(var(--column-gap) / -2);\n\n /* increase the width and height to account for this margin */\n /* Add 1px to fix rounding error in Safari (╯°□°)╯︵ ┻━┻ */\n width: calc(100% + calc(var(--column-gap) + 1px));\n height: calc(100% + var(--row-gap));\n}\n\n/* If the selector was .flex-gap > *, it wouldn't override when components have a margin 0 specified by a single\n * class selector, specificity is equal. Both are one class. Neither > nor * contribute to specificity.\n * We need to make it more specific, so we raise it by 1 class.\n */\n.flex-container .flex-gap > * {\n /* apply half of the gap to each side of every item */\n margin: calc(var(--row-gap) / 2) calc(var(--column-gap) / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, passthroughStyle, responsiveDimensionValue, StyleHandlers, useBreakpoint, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FlexProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\nimport styles from './flex-gap.css';\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst flexStyleProps: StyleHandlers = {\n direction: ['flexDirection', passthroughStyle],\n wrap: ['flexWrap', flexWrapValue],\n justifyContent: ['justifyContent', flexAlignValue],\n alignItems: ['alignItems', flexAlignValue],\n alignContent: ['alignContent', flexAlignValue]\n};\n\nfunction Flex(props: FlexProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base'];\n let {styleProps} = useStyleProps(otherProps);\n let {styleProps: flexStyle} = useStyleProps(otherProps, flexStyleProps);\n let domRef = useDOMRef(ref);\n let isSSR = useIsSSR();\n\n // If a gap property is specified, and there is no native support or we're in SSR, use a shim.\n // Two divs are required for this: the outer one contains most style properties, and the inner\n // one is the flex container. Each item inside the flex container gets a margin around it based\n // on the gap, and the flex container has a negative margin to counteract this. The outer container\n // is necessary to allow nesting of flex containers with gaps, so that the inner CSS variable doesn't\n // override the outer one.\n if ((props.gap || props.rowGap || props.columnGap) && (isSSR || !isFlexGapSupported())) {\n let style = {\n ...flexStyle.style,\n '--column-gap': props.columnGap != null ? responsiveDimensionValue(props.columnGap, matchedBreakpoints) : undefined,\n '--row-gap': props.rowGap != null ? responsiveDimensionValue(props.rowGap, matchedBreakpoints) : undefined,\n '--gap': props.gap != null ? responsiveDimensionValue(props.gap, matchedBreakpoints) : undefined\n };\n\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n }\n\n // If no gaps, or native support exists, then we only need to render a single div.\n let style = {\n ...styleProps.style,\n ...flexStyle.style\n };\n\n if (props.gap != null) {\n style.gap = responsiveDimensionValue(props.gap, matchedBreakpoints);\n }\n\n if (props.columnGap != null) {\n style.columnGap = responsiveDimensionValue(props.columnGap, matchedBreakpoints);\n }\n\n if (props.rowGap != null) {\n style.rowGap = responsiveDimensionValue(props.rowGap, matchedBreakpoints);\n }\n\n return (\n
    \n {children}\n
    \n );\n}\n\n/**\n * Normalize 'start' and 'end' alignment values to 'flex-start' and 'flex-end'\n * in flex containers for browser compatibility.\n */\nfunction flexAlignValue(value) {\n if (value === 'start') {\n return 'flex-start';\n }\n\n if (value === 'end') {\n return 'flex-end';\n }\n\n return value;\n}\n\n/**\n * Takes a boolean and translates it to flex wrap or nowrap.\n */\nfunction flexWrapValue(value) {\n if (typeof value === 'boolean') {\n return value ? 'wrap' : 'nowrap';\n }\n\n return value;\n}\n\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/Modernizr/Modernizr/blob/7efb9d0edd66815fb115fdce95fabaf019ce8db5/feature-detects/css/flexgap.js\n\nlet _isFlexGapSupported = null;\nfunction isFlexGapSupported() {\n if (_isFlexGapSupported != null) {\n return _isFlexGapSupported;\n }\n\n if (typeof document === 'undefined') {\n return false;\n }\n\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n _isFlexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n flex.parentNode.removeChild(flex);\n\n return _isFlexGapSupported;\n}\n\n/**\n * A layout container using flexbox. Provides Spectrum dimension values, and supports the gap\n * property to define consistent spacing between items.\n */\nconst _Flex = forwardRef(Flex);\nexport {_Flex as Flex};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n\nexport interface SeparatorProps extends DOMProps, AriaLabelingProps {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: Orientation,\n /** The HTML element type that will be used to render the separator. */\n elementType?: string\n}\n\nexport interface SeparatorAria {\n /** Props for the separator element. */\n separatorProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a separator.\n * A separator is a visual divider between two groups of content,\n * e.g. groups of menu items or sections of a page.\n */\nexport function useSeparator(props: SeparatorProps): SeparatorAria {\n let domProps = filterDOMProps(props, {labelable: true});\n let ariaOrientation;\n // if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined\n // if it's vertical, we need to specify it\n if (props.orientation === 'vertical') {\n ariaOrientation = 'vertical';\n }\n // hr elements implicitly have role = separator and a horizontal orientation\n if (props.elementType !== 'hr') {\n return {\n separatorProps: {\n ...domProps,\n role: 'separator',\n 'aria-orientation': ariaOrientation\n }\n };\n }\n return {separatorProps: domProps};\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = More;\n\nvar _More = require(\"@adobe/react-spectrum-workflow/dist/More\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction More(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_More.A4uMore, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uMore = A4uMore;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uMore(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"17.8\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"29.5\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"6.1\",\n cy: \"18.2\",\n r: \"3.4\"\n }));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useContext} from 'react';\n\nexport interface MenuContextValue extends HTMLAttributes {\n onClose?: () => void,\n closeOnSelect?: boolean,\n shouldFocusWrap?: boolean,\n autoFocus?: boolean | FocusStrategy,\n ref?: MutableRefObject\n}\n\nexport const MenuContext = React.createContext({});\n\nexport function useMenuContext(): MenuContextValue {\n return useContext(MenuContext);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useDOMRef, useIsMobileDevice} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {Placement} from '@react-types/overlays';\nimport {Popover, Tray} from '@react-spectrum/overlays';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {forwardRef, Fragment, useRef} from 'react';\nimport {SpectrumMenuTriggerProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenuTrigger} from '@react-aria/menu';\nimport {useMenuTriggerState} from '@react-stately/menu';\n\nfunction MenuTrigger(props: SpectrumMenuTriggerProps, ref: DOMRef) {\n let triggerRef = useRef();\n let domRef = useDOMRef(ref);\n let menuTriggerRef = domRef || triggerRef;\n let menuRef = useRef();\n let {\n children,\n align = 'start',\n shouldFlip = true,\n direction = 'bottom',\n closeOnSelect,\n trigger = 'press'\n } = props;\n\n let [menuTrigger, menu] = React.Children.toArray(children);\n let state = useMenuTriggerState(props);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger({trigger}, state, menuTriggerRef);\n\n let initialPlacement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n initialPlacement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n initialPlacement = `${direction} ${align}` as Placement;\n }\n\n let isMobile = useIsMobileDevice();\n let menuContext = {\n ...menuProps,\n ref: menuRef,\n onClose: state.close,\n closeOnSelect,\n autoFocus: state.focusStrategy || true,\n UNSAFE_style: isMobile ? {\n width: '100%',\n maxHeight: 'inherit'\n } : undefined,\n UNSAFE_className: classNames(styles, {'spectrum-Menu-popover': !isMobile})\n };\n\n // On small screen devices, the menu is rendered in a tray, otherwise a popover.\n let overlay;\n if (isMobile) {\n overlay = (\n \n {menu}\n \n );\n } else {\n overlay = (\n \n {menu}\n \n );\n }\n\n return (\n \n \n \n {menuTrigger}\n \n \n \n {overlay}\n \n \n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nlet _MenuTrigger = forwardRef(MenuTrigger);\nexport {_MenuTrigger as MenuTrigger};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport CheckmarkMedium from '@spectrum-icons/ui/CheckmarkMedium';\nimport {classNames, ClearSlots, SlotProvider} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {mergeProps} from '@react-aria/utils';\nimport {Node} from '@react-types/shared';\nimport React, {Key, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {TreeState} from '@react-stately/tree';\nimport {useHover} from '@react-aria/interactions';\nimport {useMenuContext} from './context';\nimport {useMenuItem} from '@react-aria/menu';\n\ninterface MenuItemProps {\n item: Node,\n state: TreeState,\n isVirtualized?: boolean,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuItem(props: MenuItemProps) {\n let {\n item,\n state,\n isVirtualized,\n onAction\n } = props;\n\n let {\n onClose,\n closeOnSelect\n } = useMenuContext();\n\n let {\n rendered,\n key\n } = item;\n\n let isSelected = state.selectionManager.isSelected(key);\n let isDisabled = state.disabledKeys.has(key);\n\n let ref = useRef();\n let {menuItemProps, labelProps, descriptionProps, keyboardShortcutProps} = useMenuItem(\n {\n isSelected,\n isDisabled,\n 'aria-label': item['aria-label'],\n key,\n onClose,\n closeOnSelect,\n isVirtualized,\n onAction\n },\n state,\n ref\n );\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let contents = typeof rendered === 'string'\n ? {rendered}\n : rendered;\n\n return (\n \n \n \n \n \n {contents}\n {isSelected &&\n \n }\n \n \n \n \n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport {MenuItem} from './MenuItem';\nimport {Node} from '@react-types/shared';\nimport React, {Fragment, Key} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {TreeState} from '@react-stately/tree';\nimport {useMenuSection} from '@react-aria/menu';\nimport {useSeparator} from '@react-aria/separator';\n\ninterface MenuSectionProps {\n item: Node,\n state: TreeState,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuSection(props: MenuSectionProps) {\n let {item, state, onAction} = props;\n let {itemProps, headingProps, groupProps} = useMenuSection({\n heading: item.rendered,\n 'aria-label': item['aria-label']\n });\n\n let {separatorProps} = useSeparator({\n elementType: 'li'\n });\n\n return (\n \n {item.key !== state.collection.getFirstKey() &&\n \n }\n
  • \n {item.rendered &&\n \n {item.rendered}\n \n }\n \n {[...item.childNodes].map(node => {\n let item = (\n \n );\n\n if (node.wrapper) {\n item = node.wrapper(item);\n }\n\n return item;\n })}\n \n
  • \n
    \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {MenuItem} from './MenuItem';\nimport {MenuSection} from './MenuSection';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {ReactElement, useContext} from 'react';\nimport {SpectrumMenuProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenu} from '@react-aria/menu';\nimport {useTreeState} from '@react-stately/tree';\n\nfunction Menu(props: SpectrumMenuProps, ref: DOMRef) {\n let contextProps = useContext(MenuContext);\n let completeProps = {\n ...mergeProps(contextProps, props)\n };\n\n let domRef = useDOMRef(ref);\n let state = useTreeState(completeProps);\n let {menuProps} = useMenu(completeProps, state, domRef);\n let {styleProps} = useStyleProps(completeProps);\n useSyncRef(contextProps, domRef);\n\n return (\n \n {[...state.collection].map(item => {\n if (item.type === 'section') {\n return (\n \n );\n }\n\n let menuItem = (\n \n );\n\n if (item.wrapper) {\n menuItem = item.wrapper(menuItem);\n }\n\n return menuItem;\n })}\n \n );\n}\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Menu = React.forwardRef(Menu) as (props: SpectrumMenuProps & {ref?: DOMRef}) => ReactElement;\nexport {_Menu as Menu};\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"moreActions\": \"المزيد من الإجراءات\"\n}\n","{\n \"moreActions\": \"Повече действия\"\n}\n","{\n \"moreActions\": \"Další akce\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Mehr Aktionen\"\n}\n","{\n \"moreActions\": \"Περισσότερες ενέργειες\"\n}\n","{\n \"moreActions\": \"More actions\"\n}","{\n \"moreActions\": \"Más acciones\"\n}\n","{\n \"moreActions\": \"Veel toiminguid\"\n}\n","{\n \"moreActions\": \"Lisää toimintoja\"\n}\n","{\n \"moreActions\": \"Autres actions\"\n}\n","{\n \"moreActions\": \"פעולות נוספות\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"További lehetőségek\"\n}\n","{\n \"moreActions\": \"Altre azioni\"\n}\n","{\n \"moreActions\": \"その他のアクション\"\n}\n","{\n \"moreActions\": \"기타 작업\"\n}\n","{\n \"moreActions\": \"Daugiau veiksmų\"\n}\n","{\n \"moreActions\": \"Citas darbības\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Meer handelingen\"\n}\n","{\n \"moreActions\": \"Więcej akcji\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mai multe acțiuni\"\n}\n","{\n \"moreActions\": \"Дополнительные действия\"\n}\n","{\n \"moreActions\": \"Ďalšie akcie\"\n}\n","{\n \"moreActions\": \"Več možnosti\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"Fler åtgärder\"\n}\n","{\n \"moreActions\": \"Daha fazla eylem\"\n}\n","{\n \"moreActions\": \"Більше дій\"\n}\n","{\n \"moreActions\": \"更多操作\"\n}\n","{\n \"moreActions\": \"更多動作\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from '@react-spectrum/button';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusableRef} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Menu} from './Menu';\nimport {MenuTrigger} from './MenuTrigger';\nimport More from '@spectrum-icons/workflow/More';\nimport React, {forwardRef, ReactElement} from 'react';\nimport {SpectrumActionMenuProps} from '@react-types/menu';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useSlotProps} from '@react-spectrum/utils';\n\nfunction ActionMenu(props: SpectrumActionMenuProps, ref: FocusableRef) {\n props = useSlotProps(props, 'actionMenu');\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let buttonProps = filterDOMProps(props, {labelable: true});\n if (buttonProps['aria-label'] === undefined) {\n buttonProps['aria-label'] = stringFormatter.format('moreActions');\n }\n\n return (\n \n \n \n \n \n \n );\n}\n\n/**\n * ActionMenu combines an ActionButton with a Menu for simple \"more actions\" use cases.\n */\nconst _ActionMenu = forwardRef(ActionMenu) as (props: SpectrumActionMenuProps & {ref?: FocusableRef}) => ReactElement;\nexport {_ActionMenu as ActionMenu};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLinkProps} from '@react-types/link';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface AriaLinkOptions extends AriaLinkProps {\n /** Whether the link is disabled. */\n isDisabled?: boolean,\n /**\n * The HTML element used to render the link, e.g. 'a', or 'span'.\n * @default 'a'\n */\n elementType?: string\n}\n\nexport interface LinkAria {\n /** Props for the link element. */\n linkProps: DOMAttributes,\n /** Whether the link is currently pressed. */\n isPressed: boolean\n}\n\n/**\n * Provides the behavior and accessibility implementation for a link component.\n * A link allows a user to navigate to another page or resource within a web page\n * or application.\n */\nexport function useLink(props: AriaLinkOptions, ref: RefObject): LinkAria {\n let {\n elementType = 'a',\n onPress,\n onPressStart,\n onPressEnd,\n // @ts-ignore\n onClick: deprecatedOnClick,\n isDisabled,\n ...otherProps\n } = props;\n\n let linkProps: DOMAttributes;\n if (elementType !== 'a') {\n linkProps = {\n role: 'link',\n tabIndex: !isDisabled ? 0 : undefined\n };\n }\n let {focusableProps} = useFocusable(props, ref);\n let {pressProps, isPressed} = usePress({onPress, onPressStart, onPressEnd, isDisabled, ref});\n let domProps = filterDOMProps(otherProps, {labelable: true});\n let interactionHandlers = mergeProps(focusableProps, pressProps);\n\n return {\n isPressed, // Used to indicate press state for visual\n linkProps: mergeProps(domProps, {\n ...interactionHandlers,\n ...linkProps,\n 'aria-disabled': isDisabled || undefined,\n onClick: (e) => {\n pressProps.onClick(e);\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {RefObject} from 'react';\nimport {useLink} from '@react-aria/link';\n\nexport interface BreadcrumbItemAria {\n /** Props for the breadcrumb item link element. */\n itemProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for an in a breadcrumbs component.\n * See `useBreadcrumbs` for details about breadcrumbs.\n */\nexport function useBreadcrumbItem(props: AriaBreadcrumbItemProps, ref: RefObject): BreadcrumbItemAria {\n let {\n isCurrent,\n isDisabled,\n 'aria-current': ariaCurrent,\n elementType = 'a',\n ...otherProps\n } = props;\n\n let {linkProps} = useLink({isDisabled: isDisabled || isCurrent, elementType, ...otherProps}, ref);\n let isHeading = /^h[1-6]$/.test(elementType);\n let itemProps: DOMAttributes = {};\n\n if (!isHeading) {\n itemProps = linkProps;\n }\n\n if (isCurrent) {\n itemProps['aria-current'] = ariaCurrent || 'page';\n // isCurrent sets isDisabled === true for the current item,\n // so we have to restore the tabIndex in order to support autoFocus.\n itemProps.tabIndex = props.autoFocus ? -1 : undefined;\n }\n\n return {\n itemProps: {\n 'aria-disabled': isDisabled,\n ...itemProps\n }\n };\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightSmall;\n\nvar _ChevronRightSmall = require(\"@adobe/react-spectrum-ui/dist/ChevronRightSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightSmall.ChevronRightSmall, null));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs navigation element. */\n navProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a breadcrumbs component.\n * Breadcrumbs display a hierarchy of links to the current page or resource in an application.\n */\nexport function useBreadcrumbs(props: AriaBreadcrumbsProps): BreadcrumbsAria {\n let {\n 'aria-label': ariaLabel,\n ...otherProps\n } = props;\n\n let strings = useLocalizedStringFormatter(intlMessages);\n return {\n navProps: {\n ...filterDOMProps(otherProps, {labelable: true}),\n 'aria-label': ariaLabel || strings.format('breadcrumbs')\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"breadcrumbs\": \"عناصر الواجهة\"\n}\n","{\n \"breadcrumbs\": \"Трохи хляб\"\n}\n","{\n \"breadcrumbs\": \"Popis cesty\"\n}\n","{\n \"breadcrumbs\": \"Brødkrummer\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Πλοηγήσεις breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Migas de pan\"\n}\n","{\n \"breadcrumbs\": \"Lingiread\"\n}\n","{\n \"breadcrumbs\": \"Navigointilinkit\"\n}\n","{\n \"breadcrumbs\": \"Chemin de navigation\"\n}\n","{\n \"breadcrumbs\": \"שבילי ניווט\"\n}\n","{\n \"breadcrumbs\": \"Navigacijski putovi\"\n}\n","{\n \"breadcrumbs\": \"Morzsamenü\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"パンくずリスト\"\n}\n","{\n \"breadcrumbs\": \"탐색 표시\"\n}\n","{\n \"breadcrumbs\": \"Naršymo kelias\"\n}\n","{\n \"breadcrumbs\": \"Atpakaļceļi\"\n}\n","{\n \"breadcrumbs\": \"Navigasjonsstier\"\n}\n","{\n \"breadcrumbs\": \"Broodkruimels\"\n}\n","{\n \"breadcrumbs\": \"Struktura nawigacyjna\"\n}\n","{\n \"breadcrumbs\": \"Caminho detalhado\"\n}\n","{\n \"breadcrumbs\": \"Categorias\"\n}\n","{\n \"breadcrumbs\": \"Miez de pâine\"\n}\n","{\n \"breadcrumbs\": \"Навигация\"\n}\n","{\n \"breadcrumbs\": \"Navigačné prvky Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Drobtine\"\n}\n","{\n \"breadcrumbs\": \"Putanje navigacije\"\n}\n","{\n \"breadcrumbs\": \"Sökvägar\"\n}\n","{\n \"breadcrumbs\": \"İçerik haritaları\"\n}\n","{\n \"breadcrumbs\": \"Навігаційна стежка\"\n}\n","{\n \"breadcrumbs\": \"导航栏\"\n}\n","{\n \"breadcrumbs\": \"導覽列\"\n}\n","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightSmall = ChevronRightSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z\"\n }));\n}\n\nChevronRightSmall.displayName = 'ChevronRightSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n \n \n {element}\n \n {isCurrent === false &&\n \n }\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs(props: SpectrumBreadcrumbsProps, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n autoFocusCurrent,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n let containerWidth = currListRef.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n \n \n \n \n \n \n {childArray}\n \n \n \n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n \n \n {child.props.children}\n \n \n );\n });\n\n return (\n \n \n {breadcrumbItems}\n \n \n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--darkest {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(0, 0, 0);\n --spectrum-gray-75: rgb(14, 14, 14);\n --spectrum-gray-100: rgb(29, 29, 29);\n --spectrum-gray-200: rgb(48, 48, 48);\n --spectrum-gray-300: rgb(75, 75, 75);\n --spectrum-gray-400: rgb(106, 106, 106);\n --spectrum-gray-500: rgb(141, 141, 141);\n --spectrum-gray-600: rgb(176, 176, 176);\n --spectrum-gray-700: rgb(208, 208, 208);\n --spectrum-gray-800: rgb(235, 235, 235);\n --spectrum-gray-900: rgb(255, 255, 255);\n --spectrum-red-100: rgb(87, 0, 0);\n --spectrum-red-200: rgb(110, 0, 0);\n --spectrum-red-300: rgb(138, 0, 0);\n --spectrum-red-400: rgb(167, 0, 0);\n --spectrum-red-500: rgb(196, 7, 6);\n --spectrum-red-600: rgb(221, 33, 24);\n --spectrum-red-700: rgb(238, 67, 49);\n --spectrum-red-800: rgb(249, 99, 76);\n --spectrum-red-900: rgb(255, 129, 107);\n --spectrum-red-1000: rgb(255, 158, 140);\n --spectrum-red-1100: rgb(255, 183, 169);\n --spectrum-red-1200: rgb(255, 205, 195);\n --spectrum-red-1300: rgb(255, 223, 217);\n --spectrum-red-1400: rgb(255, 237, 234);\n --spectrum-orange-100: rgb(72, 24, 1);\n --spectrum-orange-200: rgb(92, 32, 0);\n --spectrum-orange-300: rgb(115, 43, 0);\n --spectrum-orange-400: rgb(138, 55, 0);\n --spectrum-orange-500: rgb(162, 68, 0);\n --spectrum-orange-600: rgb(186, 82, 0);\n --spectrum-orange-700: rgb(210, 98, 0);\n --spectrum-orange-800: rgb(232, 116, 0);\n --spectrum-orange-900: rgb(249, 137, 23);\n --spectrum-orange-1000: rgb(255, 162, 59);\n --spectrum-orange-1100: rgb(255, 188, 102);\n --spectrum-orange-1200: rgb(253, 210, 145);\n --spectrum-orange-1300: rgb(255, 226, 181);\n --spectrum-orange-1400: rgb(255, 239, 213);\n --spectrum-yellow-100: rgb(53, 36, 0);\n --spectrum-yellow-200: rgb(68, 47, 0);\n --spectrum-yellow-300: rgb(86, 62, 0);\n --spectrum-yellow-400: rgb(103, 77, 0);\n --spectrum-yellow-500: rgb(122, 92, 0);\n --spectrum-yellow-600: rgb(141, 108, 0);\n --spectrum-yellow-700: rgb(161, 126, 0);\n --spectrum-yellow-800: rgb(180, 144, 0);\n --spectrum-yellow-900: rgb(199, 162, 0);\n --spectrum-yellow-1000: rgb(216, 181, 0);\n --spectrum-yellow-1100: rgb(233, 199, 0);\n --spectrum-yellow-1200: rgb(247, 216, 4);\n --spectrum-yellow-1300: rgb(249, 233, 97);\n --spectrum-yellow-1400: rgb(252, 243, 170);\n --spectrum-chartreuse-100: rgb(32, 43, 0);\n --spectrum-chartreuse-200: rgb(42, 56, 0);\n --spectrum-chartreuse-300: rgb(54, 72, 0);\n --spectrum-chartreuse-400: rgb(66, 88, 0);\n --spectrum-chartreuse-500: rgb(79, 105, 0);\n --spectrum-chartreuse-600: rgb(93, 123, 0);\n --spectrum-chartreuse-700: rgb(107, 142, 0);\n --spectrum-chartreuse-800: rgb(122, 161, 0);\n --spectrum-chartreuse-900: rgb(138, 180, 3);\n --spectrum-chartreuse-1000: rgb(154, 198, 11);\n --spectrum-chartreuse-1100: rgb(170, 216, 22);\n --spectrum-chartreuse-1200: rgb(187, 232, 41);\n --spectrum-chartreuse-1300: rgb(205, 246, 72);\n --spectrum-chartreuse-1400: rgb(225, 253, 132);\n --spectrum-celery-100: rgb(0, 47, 7);\n --spectrum-celery-200: rgb(0, 61, 9);\n --spectrum-celery-300: rgb(0, 77, 12);\n --spectrum-celery-400: rgb(0, 95, 15);\n --spectrum-celery-500: rgb(0, 113, 15);\n --spectrum-celery-600: rgb(0, 132, 15);\n --spectrum-celery-700: rgb(0, 151, 20);\n --spectrum-celery-800: rgb(13, 171, 37);\n --spectrum-celery-900: rgb(45, 191, 58);\n --spectrum-celery-1000: rgb(80, 208, 82);\n --spectrum-celery-1100: rgb(115, 224, 107);\n --spectrum-celery-1200: rgb(147, 237, 131);\n --spectrum-celery-1300: rgb(180, 247, 162);\n --spectrum-celery-1400: rgb(213, 252, 202);\n --spectrum-green-100: rgb(10, 44, 28);\n --spectrum-green-200: rgb(7, 59, 36);\n --spectrum-green-300: rgb(0, 76, 46);\n --spectrum-green-400: rgb(0, 93, 57);\n --spectrum-green-500: rgb(0, 111, 69);\n --spectrum-green-600: rgb(0, 130, 82);\n --spectrum-green-700: rgb(0, 149, 98);\n --spectrum-green-800: rgb(28, 168, 114);\n --spectrum-green-900: rgb(52, 187, 132);\n --spectrum-green-1000: rgb(75, 205, 149);\n --spectrum-green-1100: rgb(103, 222, 168);\n --spectrum-green-1200: rgb(137, 236, 188);\n --spectrum-green-1300: rgb(177, 244, 209);\n --spectrum-green-1400: rgb(214, 249, 228);\n --spectrum-seafoam-100: rgb(18, 43, 42);\n --spectrum-seafoam-200: rgb(19, 57, 55);\n --spectrum-seafoam-300: rgb(16, 73, 70);\n --spectrum-seafoam-400: rgb(3, 91, 88);\n --spectrum-seafoam-500: rgb(0, 108, 104);\n --spectrum-seafoam-600: rgb(0, 127, 121);\n --spectrum-seafoam-700: rgb(0, 146, 140);\n --spectrum-seafoam-800: rgb(0, 165, 159);\n --spectrum-seafoam-900: rgb(26, 185, 178);\n --spectrum-seafoam-1000: rgb(66, 202, 195);\n --spectrum-seafoam-1100: rgb(102, 218, 211);\n --spectrum-seafoam-1200: rgb(139, 232, 225);\n --spectrum-seafoam-1300: rgb(179, 242, 237);\n --spectrum-seafoam-1400: rgb(215, 248, 244);\n --spectrum-cyan-100: rgb(0, 41, 68);\n --spectrum-cyan-200: rgb(0, 54, 88);\n --spectrum-cyan-300: rgb(0, 69, 108);\n --spectrum-cyan-400: rgb(0, 86, 128);\n --spectrum-cyan-500: rgb(0, 103, 147);\n --spectrum-cyan-600: rgb(0, 121, 167);\n --spectrum-cyan-700: rgb(0, 140, 186);\n --spectrum-cyan-800: rgb(4, 160, 205);\n --spectrum-cyan-900: rgb(23, 180, 221);\n --spectrum-cyan-1000: rgb(57, 199, 234);\n --spectrum-cyan-1100: rgb(96, 216, 243);\n --spectrum-cyan-1200: rgb(134, 230, 250);\n --spectrum-cyan-1300: rgb(170, 242, 255);\n --spectrum-cyan-1400: rgb(206, 249, 255);\n --spectrum-blue-100: rgb(0, 38, 81);\n --spectrum-blue-200: rgb(0, 50, 106);\n --spectrum-blue-300: rgb(0, 64, 135);\n --spectrum-blue-400: rgb(0, 78, 166);\n --spectrum-blue-500: rgb(0, 92, 200);\n --spectrum-blue-600: rgb(6, 108, 231);\n --spectrum-blue-700: rgb(29, 128, 245);\n --spectrum-blue-800: rgb(64, 150, 243);\n --spectrum-blue-900: rgb(94, 170, 247);\n --spectrum-blue-1000: rgb(124, 189, 250);\n --spectrum-blue-1100: rgb(152, 206, 253);\n --spectrum-blue-1200: rgb(179, 222, 254);\n --spectrum-blue-1300: rgb(206, 234, 255);\n --spectrum-blue-1400: rgb(227, 243, 255);\n --spectrum-indigo-100: rgb(26, 29, 97);\n --spectrum-indigo-200: rgb(35, 39, 125);\n --spectrum-indigo-300: rgb(46, 50, 158);\n --spectrum-indigo-400: rgb(58, 63, 189);\n --spectrum-indigo-500: rgb(73, 78, 216);\n --spectrum-indigo-600: rgb(90, 96, 235);\n --spectrum-indigo-700: rgb(110, 115, 246);\n --spectrum-indigo-800: rgb(132, 136, 253);\n --spectrum-indigo-900: rgb(153, 157, 255);\n --spectrum-indigo-1000: rgb(174, 177, 255);\n --spectrum-indigo-1100: rgb(194, 196, 255);\n --spectrum-indigo-1200: rgb(212, 213, 255);\n --spectrum-indigo-1300: rgb(227, 228, 255);\n --spectrum-indigo-1400: rgb(240, 240, 255);\n --spectrum-purple-100: rgb(50, 16, 104);\n --spectrum-purple-200: rgb(67, 13, 140);\n --spectrum-purple-300: rgb(86, 16, 173);\n --spectrum-purple-400: rgb(106, 29, 200);\n --spectrum-purple-500: rgb(126, 49, 222);\n --spectrum-purple-600: rgb(145, 70, 236);\n --spectrum-purple-700: rgb(162, 94, 246);\n --spectrum-purple-800: rgb(178, 119, 250);\n --spectrum-purple-900: rgb(192, 143, 252);\n --spectrum-purple-1000: rgb(206, 166, 253);\n --spectrum-purple-1100: rgb(219, 188, 254);\n --spectrum-purple-1200: rgb(230, 207, 255);\n --spectrum-purple-1300: rgb(240, 224, 255);\n --spectrum-purple-1400: rgb(248, 237, 255);\n --spectrum-fuchsia-100: rgb(70, 14, 68);\n --spectrum-fuchsia-200: rgb(93, 9, 92);\n --spectrum-fuchsia-300: rgb(120, 0, 120);\n --spectrum-fuchsia-400: rgb(146, 0, 147);\n --spectrum-fuchsia-500: rgb(169, 19, 170);\n --spectrum-fuchsia-600: rgb(191, 43, 191);\n --spectrum-fuchsia-700: rgb(211, 65, 213);\n --spectrum-fuchsia-800: rgb(228, 91, 229);\n --spectrum-fuchsia-900: rgb(239, 120, 238);\n --spectrum-fuchsia-1000: rgb(246, 149, 243);\n --spectrum-fuchsia-1100: rgb(251, 175, 246);\n --spectrum-fuchsia-1200: rgb(254, 199, 248);\n --spectrum-fuchsia-1300: rgb(255, 220, 250);\n --spectrum-fuchsia-1400: rgb(255, 235, 252);\n --spectrum-magenta-100: rgb(83, 3, 41);\n --spectrum-magenta-200: rgb(106, 0, 52);\n --spectrum-magenta-300: rgb(133, 0, 65);\n --spectrum-magenta-400: rgb(161, 0, 78);\n --spectrum-magenta-500: rgb(186, 22, 93);\n --spectrum-magenta-600: rgb(209, 43, 114);\n --spectrum-magenta-700: rgb(227, 69, 137);\n --spectrum-magenta-800: rgb(241, 97, 156);\n --spectrum-magenta-900: rgb(252, 124, 173);\n --spectrum-magenta-1000: rgb(255, 152, 191);\n --spectrum-magenta-1100: rgb(255, 179, 207);\n --spectrum-magenta-1200: rgb(255, 202, 221);\n --spectrum-magenta-1300: rgb(255, 221, 233);\n --spectrum-magenta-1400: rgb(255, 236, 243);\n /* legacy color aliases matching closest v6 color to v5 name */\n --spectrum-legacy-color-celery-400: var(--spectrum-celery-800);\n --spectrum-legacy-color-celery-500: var(--spectrum-celery-900);\n --spectrum-legacy-color-celery-600: var(--spectrum-celery-1000);\n --spectrum-legacy-color-celery-700: var(--spectrum-celery-1100);\n --spectrum-legacy-color-chartreuse-400: var(--spectrum-chartreuse-900);\n --spectrum-legacy-color-chartreuse-500: var(--spectrum-chartreuse-1000);\n --spectrum-legacy-color-chartreuse-600: var(--spectrum-chartreuse-1100);\n --spectrum-legacy-color-chartreuse-700: var(--spectrum-chartreuse-1200);\n --spectrum-legacy-color-yellow-400: var(--spectrum-yellow-1000);\n --spectrum-legacy-color-yellow-500: var(--spectrum-yellow-1100);\n --spectrum-legacy-color-yellow-600: var(--spectrum-yellow-1200);\n --spectrum-legacy-color-yellow-700: var(--spectrum-yellow-1300);\n --spectrum-legacy-color-magenta-400: var(--spectrum-magenta-600);\n --spectrum-legacy-color-magenta-500: var(--spectrum-magenta-700);\n --spectrum-legacy-color-magenta-600: var(--spectrum-magenta-800);\n --spectrum-legacy-color-magenta-700: var(--spectrum-magenta-900);\n --spectrum-legacy-color-fuchsia-400: var(--spectrum-fuchsia-600);\n --spectrum-legacy-color-fuchsia-500: var(--spectrum-fuchsia-700);\n --spectrum-legacy-color-fuchsia-600: var(--spectrum-fuchsia-800);\n --spectrum-legacy-color-fuchsia-700: var(--spectrum-fuchsia-900);\n --spectrum-legacy-color-purple-400: var(--spectrum-purple-600);\n --spectrum-legacy-color-purple-500: var(--spectrum-purple-700);\n --spectrum-legacy-color-purple-600: var(--spectrum-purple-800);\n --spectrum-legacy-color-purple-700: var(--spectrum-purple-900);\n --spectrum-legacy-color-indigo-400: var(--spectrum-indigo-600);\n --spectrum-legacy-color-indigo-500: var(--spectrum-indigo-700);\n --spectrum-legacy-color-indigo-600: var(--spectrum-indigo-800);\n --spectrum-legacy-color-indigo-700: var(--spectrum-indigo-900);\n --spectrum-legacy-color-red-400: var(--spectrum-red-600);\n --spectrum-legacy-color-red-500: var(--spectrum-red-700);\n --spectrum-legacy-color-red-600: var(--spectrum-red-800);\n --spectrum-legacy-color-red-700: var(--spectrum-red-900);\n --spectrum-legacy-color-orange-400: var(--spectrum-orange-800);\n --spectrum-legacy-color-orange-500: var(--spectrum-orange-900);\n --spectrum-legacy-color-orange-600: var(--spectrum-orange-1000);\n --spectrum-legacy-color-orange-700: var(--spectrum-orange-1100);\n --spectrum-legacy-color-green-400: var(--spectrum-green-700);\n --spectrum-legacy-color-green-500: var(--spectrum-green-800);\n --spectrum-legacy-color-green-600: var(--spectrum-green-900);\n --spectrum-legacy-color-green-700: var(--spectrum-green-1000);\n --spectrum-legacy-color-blue-400: var(--spectrum-blue-700);\n --spectrum-legacy-color-blue-500: var(--spectrum-blue-800);\n --spectrum-legacy-color-blue-600: var(--spectrum-blue-900);\n --spectrum-legacy-color-blue-700: var(--spectrum-blue-1000);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.6);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.8);\n --spectrum-alias-background-color-hover-overlay: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-hover: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-active: rgba(239,239,239,0.15);\n --spectrum-alias-highlight-selected: rgba(64,150,243,0.2);\n --spectrum-alias-highlight-selected-hover: rgba(64,150,243,0.3);\n --spectrum-alias-highlight-invalid: rgba(221, 33, 24, 0.15); /* matches red-600 */\n --spectrum-alias-text-highlight-color: rgba(64,150,243,0.3);\n --spectrum-alias-background-color-quickactions: rgba(29,29,29,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(235,235,235,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-50);\n --spectrum-colorarea-border-color: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(38,128,235,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(38,128,235,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(235,235,235,0.02);\n --spectrum-well-border-color: rgba(239,239,239,0.05);\n /* BEGIN RSP PATCH */\n /* missing in spectrum-css */\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-100);\n /* END RSP PATCH */\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: var(--spectrum-global-color-gray-600); /* 4.8:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-600);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-500);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-400);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-500);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-600);\n --spectrum-negative-background-color-hover: var(--spectrum-red-500);\n --spectrum-negative-background-color-down: var(--spectrum-red-400);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-500);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-600);\n --spectrum-positive-background-color-hover: var(--spectrum-green-500);\n --spectrum-positive-background-color-down: var(--spectrum-green-400);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-500);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-600);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-500);\n --spectrum-informative-background-color-down: var(--spectrum-blue-400);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-500);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-700);\n --spectrum-orange-background-color-default: var(--spectrum-orange-800);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-1000);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-900);\n --spectrum-celery-background-color-default: var(--spectrum-celery-800);\n --spectrum-green-background-color-default: var(--spectrum-green-700);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-700);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-700);\n --spectrum-blue-background-color-default: var(--spectrum-blue-700);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-700);\n --spectrum-purple-background-color-default: var(--spectrum-purple-700);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-700);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-700);\n\n --spectrum-negative-visual-color: var(--spectrum-red-700);\n --spectrum-positive-visual-color: var(--spectrum-green-800);\n --spectrum-notice-visual-color: var(--spectrum-orange-900);\n --spectrum-informative-visual-color: var(--spectrum-blue-900);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-600);\n --spectrum-red-visual-color: var(--spectrum-red-700);\n --spectrum-orange-visual-color: var(--spectrum-orange-900);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-1100);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-900);\n --spectrum-celery-visual-color: var(--spectrum-celery-800);\n --spectrum-green-visual-color: var(--spectrum-green-800);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-800);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-900);\n --spectrum-blue-visual-color: var(--spectrum-blue-900);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-900);\n --spectrum-purple-visual-color: var(--spectrum-purple-900);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-900);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-900);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum { /* spectrum-animationGlobals.css */\n --spectrum-global-animation-duration-0: 0ms;\n --spectrum-global-animation-duration-100: 130ms;\n --spectrum-global-animation-duration-200: 160ms;\n --spectrum-global-animation-duration-300: 190ms;\n --spectrum-global-animation-duration-400: 220ms;\n --spectrum-global-animation-duration-500: 250ms;\n --spectrum-global-animation-duration-600: 300ms;\n --spectrum-global-animation-duration-700: 350ms;\n --spectrum-global-animation-duration-800: 400ms;\n --spectrum-global-animation-duration-900: 450ms;\n --spectrum-global-animation-duration-1000: 500ms;\n --spectrum-global-animation-duration-2000: 1000ms;\n --spectrum-global-animation-duration-4000: 2000ms;\n --spectrum-global-animation-ease-in-out: cubic-bezier(.45, 0, .40, 1);\n --spectrum-global-animation-ease-in: cubic-bezier(.50, 0, 1, 1);\n --spectrum-global-animation-ease-out: cubic-bezier(0, 0, 0.40, 1);\n --spectrum-global-animation-linear: cubic-bezier(0, 0, 1, 1);\n\n\n /* spectrum-colorGlobals.css */\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-global-color-static-black: rgb(0, 0, 0);\n --spectrum-global-color-static-white: rgb(255, 255, 255);\n --spectrum-global-color-static-blue: rgb(0, 87, 191);\n --spectrum-global-color-static-gray-50: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-75: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-100: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-200: rgb(235, 235, 235);\n --spectrum-global-color-static-gray-300: rgb(217, 217, 217);\n --spectrum-global-color-static-gray-400: rgb(179, 179, 179);\n --spectrum-global-color-static-gray-500: rgb(146, 146, 146);\n --spectrum-global-color-static-gray-600: rgb(110, 110, 110);\n --spectrum-global-color-static-gray-700: rgb(71, 71, 71);\n --spectrum-global-color-static-gray-800: rgb(34, 34, 34);\n --spectrum-global-color-static-gray-900: rgb(0, 0, 0);\n --spectrum-global-color-static-blue-200: rgb(130, 193, 251);\n --spectrum-global-color-static-blue-300: rgb(98, 173, 247);\n --spectrum-global-color-static-blue-400: rgb(66, 151, 244);\n --spectrum-global-color-static-blue-500: rgb(27, 127, 245);\n --spectrum-global-color-static-blue-600: rgb(4, 105, 227);\n --spectrum-global-color-static-blue-700: rgb(0, 87, 190);\n --spectrum-global-color-static-blue-800: rgb(0, 72, 153);\n --spectrum-global-color-static-red-400: rgb(237, 64, 48);\n --spectrum-global-color-static-red-500: rgb(217, 28, 21);\n --spectrum-global-color-static-red-600: rgb(187, 2, 2);\n --spectrum-global-color-static-red-700: rgb(154, 0, 0);\n --spectrum-global-color-static-orange-400: rgb(250, 139, 26);\n --spectrum-global-color-static-orange-500: rgb(233, 117, 0);\n --spectrum-global-color-static-orange-600: rgb(209, 97, 0);\n --spectrum-global-color-static-orange-700: rgb(182, 80, 0);\n --spectrum-global-color-static-green-400: rgb(29, 169, 115);\n --spectrum-global-color-static-green-500: rgb(0, 148, 97);\n --spectrum-global-color-static-green-600: rgb(0, 126, 80);\n --spectrum-global-color-static-green-700: rgb(0, 105, 65);\n --spectrum-global-color-static-celery-200: rgb(126, 229, 114);\n --spectrum-global-color-static-celery-300: rgb(87, 212, 86);\n --spectrum-global-color-static-celery-400: rgb(48, 193, 61);\n --spectrum-global-color-static-celery-500: rgb(15, 172, 38);\n --spectrum-global-color-static-celery-600: rgb(0, 150, 20);\n --spectrum-global-color-static-celery-700: rgb(0, 128, 15);\n --spectrum-global-color-static-chartreuse-300: rgb(176, 222, 27);\n --spectrum-global-color-static-chartreuse-400: rgb(157, 203, 13);\n --spectrum-global-color-static-chartreuse-500: rgb(139, 182, 4);\n --spectrum-global-color-static-chartreuse-600: rgb(122, 162, 0);\n --spectrum-global-color-static-chartreuse-700: rgb(106, 141, 0);\n --spectrum-global-color-static-yellow-200: rgb(250, 237, 123);\n --spectrum-global-color-static-yellow-300: rgb(250, 224, 23);\n --spectrum-global-color-static-yellow-400: rgb(238, 205, 0);\n --spectrum-global-color-static-yellow-500: rgb(221, 185, 0);\n --spectrum-global-color-static-yellow-600: rgb(201, 164, 0);\n --spectrum-global-color-static-yellow-700: rgb(181, 144, 0);\n --spectrum-global-color-static-magenta-200: rgb(253, 127, 175);\n --spectrum-global-color-static-magenta-300: rgb(242, 98, 157);\n --spectrum-global-color-static-magenta-400: rgb(226, 68, 135);\n --spectrum-global-color-static-magenta-500: rgb(205, 40, 111);\n --spectrum-global-color-static-magenta-600: rgb(179, 15, 89);\n --spectrum-global-color-static-magenta-700: rgb(149, 0, 72);\n --spectrum-global-color-static-fuchsia-400: rgb(228, 93, 230);\n --spectrum-global-color-static-fuchsia-500: rgb(211, 63, 212);\n --spectrum-global-color-static-fuchsia-600: rgb(188, 39, 187);\n --spectrum-global-color-static-fuchsia-700: rgb(163, 10, 163);\n --spectrum-global-color-static-purple-400: rgb(178, 121, 250);\n --spectrum-global-color-static-purple-500: rgb(161, 93, 246);\n --spectrum-global-color-static-purple-600: rgb(142, 67, 234);\n --spectrum-global-color-static-purple-700: rgb(120, 43, 216);\n --spectrum-global-color-static-purple-800: rgb(98, 23, 190);\n --spectrum-global-color-static-indigo-200: rgb(178, 181, 255);\n --spectrum-global-color-static-indigo-300: rgb(155, 159, 255);\n --spectrum-global-color-static-indigo-400: rgb(132, 137, 253);\n --spectrum-global-color-static-indigo-500: rgb(109, 115, 246);\n --spectrum-global-color-static-indigo-600: rgb(87, 93, 232);\n --spectrum-global-color-static-indigo-700: rgb(68, 74, 208);\n --spectrum-global-color-static-seafoam-200: rgb(75, 206, 199);\n --spectrum-global-color-static-seafoam-300: rgb(32, 187, 180);\n --spectrum-global-color-static-seafoam-400: rgb(0, 166, 160);\n --spectrum-global-color-static-seafoam-500: rgb(0, 145, 139);\n --spectrum-global-color-static-seafoam-600: rgb(0, 124, 118);\n --spectrum-global-color-static-seafoam-700: rgb(0, 103, 99);\n --spectrum-global-color-opacity-100: 1;\n --spectrum-global-color-opacity-90: 0.9;\n --spectrum-global-color-opacity-80: 0.8;\n --spectrum-global-color-opacity-60: 0.6;\n --spectrum-global-color-opacity-50: 0.5;\n --spectrum-global-color-opacity-42: 0.42;\n --spectrum-global-color-opacity-40: 0.4;\n --spectrum-global-color-opacity-30: 0.3;\n --spectrum-global-color-opacity-25: 0.25;\n --spectrum-global-color-opacity-20: 0.2;\n --spectrum-global-color-opacity-15: 0.15;\n --spectrum-global-color-opacity-10: 0.1;\n --spectrum-global-color-opacity-8: 0.08;\n --spectrum-global-color-opacity-7: 0.07;\n --spectrum-global-color-opacity-6: 0.06;\n --spectrum-global-color-opacity-5: 0.05;\n --spectrum-global-color-opacity-4: 0.04;\n\n /* mappings from v5 color indices to v6 color indices */\n --spectrum-global-color-celery-400: var(--spectrum-celery-600);\n --spectrum-global-color-celery-500: var(--spectrum-celery-700);\n --spectrum-global-color-celery-600: var(--spectrum-celery-800);\n --spectrum-global-color-celery-700: var(--spectrum-celery-900);\n --spectrum-global-color-chartreuse-400: var(--spectrum-chartreuse-500);\n --spectrum-global-color-chartreuse-500: var(--spectrum-chartreuse-600);\n --spectrum-global-color-chartreuse-600: var(--spectrum-chartreuse-700);\n --spectrum-global-color-chartreuse-700: var(--spectrum-chartreuse-800);\n --spectrum-global-color-yellow-400: var(--spectrum-yellow-400);\n --spectrum-global-color-yellow-500: var(--spectrum-yellow-500);\n --spectrum-global-color-yellow-600: var(--spectrum-yellow-600);\n --spectrum-global-color-yellow-700: var(--spectrum-yellow-700);\n --spectrum-global-color-magenta-400: var(--spectrum-magenta-800);\n --spectrum-global-color-magenta-500: var(--spectrum-magenta-900);\n --spectrum-global-color-magenta-600: var(--spectrum-magenta-1000);\n --spectrum-global-color-magenta-700: var(--spectrum-magenta-1100);\n --spectrum-global-color-fuchsia-400: var(--spectrum-fuchsia-800);\n --spectrum-global-color-fuchsia-500: var(--spectrum-fuchsia-900);\n --spectrum-global-color-fuchsia-600: var(--spectrum-fuchsia-1000);\n --spectrum-global-color-fuchsia-700: var(--spectrum-fuchsia-1100);\n --spectrum-global-color-purple-400: var(--spectrum-purple-800);\n --spectrum-global-color-purple-500: var(--spectrum-purple-900);\n --spectrum-global-color-purple-600: var(--spectrum-purple-1000);\n --spectrum-global-color-purple-700: var(--spectrum-purple-1100);\n --spectrum-global-color-indigo-400: var(--spectrum-indigo-800);\n --spectrum-global-color-indigo-500: var(--spectrum-indigo-900);\n --spectrum-global-color-indigo-600: var(--spectrum-indigo-1000);\n --spectrum-global-color-indigo-700: var(--spectrum-indigo-1100);\n --spectrum-global-color-seafoam-400: var(--spectrum-seafoam-700);\n --spectrum-global-color-seafoam-500: var(--spectrum-seafoam-800);\n --spectrum-global-color-seafoam-600: var(--spectrum-seafoam-900);\n --spectrum-global-color-seafoam-700: var(--spectrum-seafoam-1000);\n --spectrum-global-color-red-400: var(--spectrum-red-800);\n --spectrum-global-color-red-500: var(--spectrum-red-900);\n --spectrum-global-color-red-600: var(--spectrum-red-1000);\n --spectrum-global-color-red-700: var(--spectrum-red-1100);\n --spectrum-global-color-orange-400: var(--spectrum-orange-600);\n --spectrum-global-color-orange-500: var(--spectrum-orange-700);\n --spectrum-global-color-orange-600: var(--spectrum-orange-800);\n --spectrum-global-color-orange-700: var(--spectrum-orange-900);\n --spectrum-global-color-green-400: var(--spectrum-green-800);\n --spectrum-global-color-green-500: var(--spectrum-green-900);\n --spectrum-global-color-green-600: var(--spectrum-green-1000);\n --spectrum-global-color-green-700: var(--spectrum-green-1100);\n --spectrum-global-color-blue-400: var(--spectrum-blue-800);\n --spectrum-global-color-blue-500: var(--spectrum-blue-900);\n --spectrum-global-color-blue-600: var(--spectrum-blue-1000);\n --spectrum-global-color-blue-700: var(--spectrum-blue-1100);\n --spectrum-global-color-gray-50: var(--spectrum-gray-50);\n --spectrum-global-color-gray-75: var(--spectrum-gray-75);\n --spectrum-global-color-gray-100: var(--spectrum-gray-100);\n --spectrum-global-color-gray-200: var(--spectrum-gray-200);\n --spectrum-global-color-gray-300: var(--spectrum-gray-300);\n --spectrum-global-color-gray-400: var(--spectrum-gray-400);\n --spectrum-global-color-gray-500: var(--spectrum-gray-500);\n --spectrum-global-color-gray-600: var(--spectrum-gray-600);\n --spectrum-global-color-gray-700: var(--spectrum-gray-700);\n --spectrum-global-color-gray-800: var(--spectrum-gray-800);\n --spectrum-global-color-gray-900: var(--spectrum-gray-900);\n\n /* v6 aliases */\n --spectrum-accent-color-100: var(--spectrum-blue-100);\n --spectrum-accent-color-200: var(--spectrum-blue-200);\n --spectrum-accent-color-300: var(--spectrum-blue-300);\n --spectrum-accent-color-400: var(--spectrum-blue-400);\n --spectrum-accent-color-500: var(--spectrum-blue-500);\n --spectrum-accent-color-600: var(--spectrum-blue-600);\n --spectrum-accent-color-700: var(--spectrum-blue-700);\n --spectrum-accent-color-800: var(--spectrum-blue-800);\n --spectrum-accent-color-900: var(--spectrum-blue-900);\n --spectrum-accent-color-1000: var(--spectrum-blue-1000);\n --spectrum-accent-color-1100: var(--spectrum-blue-1100);\n --spectrum-accent-color-1200: var(--spectrum-blue-1200);\n --spectrum-accent-color-1300: var(--spectrum-blue-1300);\n --spectrum-accent-color-1400: var(--spectrum-blue-1400);\n\n /* spectrum-colorSemantics.css */\n --spectrum-semantic-negative-color-background: var(--spectrum-negative-background-color-default);\n --spectrum-semantic-negative-color-default: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-hover: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-dark: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-border: var(--spectrum-red-800);\n --spectrum-semantic-negative-color-icon: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-status: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-text-large: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-text-small: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-down: var(--spectrum-red-1100);\n --spectrum-semantic-negative-color-state-focus: var(--spectrum-red-1000);\n --spectrum-semantic-notice-color-background: var(--spectrum-global-color-static-orange-600);\n --spectrum-semantic-notice-color-default: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-dark: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-border: var(--spectrum-orange-600);\n --spectrum-semantic-notice-color-icon: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-status: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-text-large: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-text-small: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-state-down: var(--spectrum-orange-900);\n --spectrum-semantic-notice-color-state-focus: var(--spectrum-orange-600);\n --spectrum-semantic-positive-color-background: var(--spectrum-positive-background-color-default);\n --spectrum-semantic-positive-color-default: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-dark: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-border: var(--spectrum-green-800);\n --spectrum-semantic-positive-color-icon: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-status: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-text-large: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-text-small: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-state-down: var(--spectrum-green-1100);\n --spectrum-semantic-positive-color-state-focus: var(--spectrum-green-800);\n --spectrum-semantic-informative-color-background: var(--spectrum-informative-background-color-default);\n --spectrum-semantic-informative-color-default: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-dark: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-border: var(--spectrum-blue-800);\n --spectrum-semantic-informative-color-icon: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-status: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-text-large: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-text-small: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-state-down: var(--spectrum-blue-1100);\n --spectrum-semantic-informative-color-state-focus: var(--spectrum-blue-800);\n --spectrum-semantic-cta-color-background-default: var(--spectrum-accent-background-color-default);\n --spectrum-semantic-cta-color-background-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-semantic-cta-color-background-down: var(--spectrum-accent-background-color-down);\n --spectrum-semantic-cta-color-background-key-focus: var(--spectrum-accent-background-color-key-focus);\n --spectrum-semantic-background-color-key-focus: var(--spectrum-global-color-static-blue-600);\n --spectrum-semantic-neutral-color-background: var(--spectrum-neutral-subdued-background-color-default);\n --spectrum-semantic-presence-color-1: var(--spectrum-global-color-static-red-500);\n --spectrum-semantic-presence-color-2: var(--spectrum-global-color-static-orange-400);\n --spectrum-semantic-presence-color-3: var(--spectrum-global-color-static-yellow-400);\n --spectrum-semantic-presence-color-4: rgb(75, 204, 162);\n --spectrum-semantic-presence-color-5: rgb(0, 199, 255);\n --spectrum-semantic-presence-color-6: rgb(0, 140, 184);\n --spectrum-semantic-presence-color-7: rgb(126, 75, 243);\n --spectrum-semantic-presence-color-8: var(--spectrum-global-color-static-fuchsia-600);\n\n\n /* spectrum-dimensionGlobals.css */\n --spectrum-global-dimension-static-size-0: 0px;\n --spectrum-global-dimension-static-size-10: 1px;\n --spectrum-global-dimension-static-size-25: 2px;\n --spectrum-global-dimension-static-size-50: 4px;\n --spectrum-global-dimension-static-size-40: 3px;\n --spectrum-global-dimension-static-size-65: 5px;\n --spectrum-global-dimension-static-size-100: 8px;\n --spectrum-global-dimension-static-size-115: 9px;\n --spectrum-global-dimension-static-size-125: 10px;\n --spectrum-global-dimension-static-size-130: 11px;\n --spectrum-global-dimension-static-size-150: 12px;\n --spectrum-global-dimension-static-size-160: 13px;\n --spectrum-global-dimension-static-size-175: 14px;\n --spectrum-global-dimension-static-size-200: 16px;\n --spectrum-global-dimension-static-size-225: 18px;\n --spectrum-global-dimension-static-size-250: 20px;\n --spectrum-global-dimension-static-size-300: 24px;\n --spectrum-global-dimension-static-size-400: 32px;\n --spectrum-global-dimension-static-size-450: 36px;\n --spectrum-global-dimension-static-size-500: 40px;\n --spectrum-global-dimension-static-size-550: 44px;\n --spectrum-global-dimension-static-size-600: 48px;\n --spectrum-global-dimension-static-size-700: 56px;\n --spectrum-global-dimension-static-size-800: 64px;\n --spectrum-global-dimension-static-size-900: 72px;\n --spectrum-global-dimension-static-size-1000: 80px;\n --spectrum-global-dimension-static-size-1200: 96px;\n --spectrum-global-dimension-static-size-1700: 136px;\n --spectrum-global-dimension-static-size-2400: 192px;\n --spectrum-global-dimension-static-size-2600: 208px;\n --spectrum-global-dimension-static-size-3400: 272px;\n --spectrum-global-dimension-static-size-3600: 288px;\n --spectrum-global-dimension-static-size-4600: 368px;\n --spectrum-global-dimension-static-size-5000: 400px;\n --spectrum-global-dimension-static-size-6000: 480px;\n --spectrum-global-dimension-static-font-size-50: 11px;\n --spectrum-global-dimension-static-font-size-75: 12px;\n --spectrum-global-dimension-static-font-size-100: 14px;\n --spectrum-global-dimension-static-font-size-150: 15px;\n --spectrum-global-dimension-static-font-size-200: 16px;\n --spectrum-global-dimension-static-font-size-300: 18px;\n --spectrum-global-dimension-static-font-size-400: 20px;\n --spectrum-global-dimension-static-font-size-500: 22px;\n --spectrum-global-dimension-static-font-size-600: 25px;\n --spectrum-global-dimension-static-font-size-700: 28px;\n --spectrum-global-dimension-static-font-size-800: 32px;\n --spectrum-global-dimension-static-font-size-900: 36px;\n --spectrum-global-dimension-static-font-size-1000: 40px;\n --spectrum-global-dimension-static-percent-50: 50%;\n --spectrum-global-dimension-static-percent-100: 100%;\n --spectrum-global-dimension-static-breakpoint-xsmall: 304px;\n --spectrum-global-dimension-static-breakpoint-small: 768px;\n --spectrum-global-dimension-static-breakpoint-medium: 1280px;\n --spectrum-global-dimension-static-breakpoint-large: 1768px;\n --spectrum-global-dimension-static-breakpoint-xlarge: 2160px;\n --spectrum-global-dimension-static-grid-columns: 12;\n --spectrum-global-dimension-static-grid-fluid-width: 100%;\n --spectrum-global-dimension-static-grid-fixed-max-width: 1280px;\n\n\n /* spectrum-fontGlobals.css */\n --spectrum-global-font-family-base: adobe-clean, 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Trebuchet MS', 'Lucida Grande', sans-serif;\n --spectrum-global-font-family-serif: adobe-clean-serif, 'Source Serif Pro', Georgia, serif;\n --spectrum-global-font-family-code: 'Source Code Pro', Monaco, monospace;\n --spectrum-global-font-weight-thin: 100;\n --spectrum-global-font-weight-ultra-light: 200;\n --spectrum-global-font-weight-light: 300;\n --spectrum-global-font-weight-regular: 400;\n --spectrum-global-font-weight-medium: 500;\n --spectrum-global-font-weight-semi-bold: 600;\n --spectrum-global-font-weight-bold: 700;\n --spectrum-global-font-weight-extra-bold: 800;\n --spectrum-global-font-weight-black: 900;\n --spectrum-global-font-style-regular: normal;\n --spectrum-global-font-style-italic: italic;\n --spectrum-global-font-letter-spacing-none: 0;\n --spectrum-global-font-letter-spacing-small: 0.0125em;\n --spectrum-global-font-letter-spacing-han: 0.05em;\n --spectrum-global-font-letter-spacing-medium: 0.06em;\n --spectrum-global-font-line-height-large: 1.7;\n --spectrum-global-font-line-height-medium: 1.5;\n --spectrum-global-font-line-height-small: 1.3;\n --spectrum-global-font-multiplier-25: 0.25em;\n --spectrum-global-font-multiplier-75: 0.75em;\n\n\n /* spectrum-staticAliases.css */\n --spectrum-alias-border-size-thin: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-size-thick: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-size-thicker: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-size-thickest: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-input-border-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-offset-thin: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-offset-thick: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-offset-thicker: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-border-offset-thickest: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-baseline: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-grid-gutter-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-gutter-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-gutter-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-gutter-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-gutter-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-margin-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-margin-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-margin-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-margin-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-margin-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-layout-region-margin-bottom-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-layout-region-margin-bottom-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-layout-region-margin-bottom-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-layout-region-margin-bottom-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-layout-region-margin-bottom-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-radial-reaction-size-default: var(--spectrum-global-dimension-static-size-550);\n --spectrum-alias-font-family-ar: var(--spectrum-global-font-font-family-ar);\n --spectrum-alias-font-family-he: var(--spectrum-global-font-font-family-he);\n --spectrum-alias-font-family-zh: var(--spectrum-global-font-font-family-zh);\n --spectrum-alias-font-family-zhhans: var(--spectrum-global-font-font-family-zhhans);\n --spectrum-alias-font-family-ko: var(--spectrum-global-font-font-family-ko);\n --spectrum-alias-font-family-ja: var(--spectrum-global-font-font-family-ja);\n --spectrum-alias-font-family-condensed: var(--spectrum-global-font-font-family-condensed);\n --spectrum-alias-line-height-body: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-line-height-title: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-body-han-text-line-height: var(--spectrum-global-font-line-height-large);\n --spectrum-alias-body-text-font-family: var(--spectrum-global-font-family-base);\n --spectrum-alias-body-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-body-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-button-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-han-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-detail-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-detail-text-font-weight-light: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-serif-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-detail-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-font-family: var(--spectrum-global-font-family-code);\n --spectrum-alias-han-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-quiet-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-light: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-light-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-light-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-body-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-body-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-subheading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-subheading-text-font-weight-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-detail-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-code-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-code-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-margin-bottom: var(--spectrum-global-font-multiplier-25);\n --spectrum-alias-body-margin-bottom: var(--spectrum-global-font-multiplier-75);\n --spectrum-alias-focus-ring-gap: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-gap: var(--spectrum-global-dimension-static-size-0);\n --spectrum-alias-focus-ring-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-loupe-entry-animation-duration: var(--spectrum-global-animation-duration-300);\n --spectrum-alias-loupe-exit-animation-duration: var(--spectrum-global-animation-duration-300);\n}\n\n.spectrum--medium,\n.spectrum--large {\n /* spectrum-dimensionAliases.css */\n --spectrum-alias-dropshadow-blur: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-dropshadow-offset-y: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-font-size-default: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-line-height-small: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-line-height-medium: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-line-height-large: var(--spectrum-global-dimension-size-300);\n --spectrum-alias-line-height-xlarge: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-line-height-xxlarge: var(--spectrum-global-dimension-size-600);\n --spectrum-alias-layout-label-gap-size: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-pill-button-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-pill-button-text-baseline: var(--spectrum-global-dimension-static-size-150);\n --spectrum-alias-border-radius-xsmall: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-border-radius-small: var(--spectrum-global-dimension-size-25);\n --spectrum-alias-border-radius-regular: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-border-radius-medium: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-border-radius-large: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-single-line-height: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-single-line-width: var(--spectrum-global-dimension-size-2400);\n --spectrum-alias-workflow-icon-size: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-heading-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-han-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display2-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-xxl-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-display2-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xxl-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-xxl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xxl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading1-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-xl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xl-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-han-xl-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-l-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-l-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-han-l-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-han-l-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-m-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-m-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-han-m-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-han-m-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-s-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-s-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-xs-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xs-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xxs-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-heading-xxs-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-avatar-size-50: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-avatar-size-75: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-avatar-size-200: var(--spectrum-global-dimension-size-275);\n --spectrum-alias-avatar-size-300: var(--spectrum-global-dimension-size-325);\n --spectrum-alias-avatar-size-500: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-avatar-size-700: var(--spectrum-global-dimension-size-500);\n}\n\n.spectrum--darkest,\n.spectrum--dark,\n.spectrum--light,\n.spectrum--lightest {\n /* spectrum-colorAliases.css */\n --spectrum-alias-background-color-default: var(--spectrum-gray-100);\n --spectrum-alias-background-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-background-color-transparent: transparent;\n --spectrum-alias-background-color-label-gray: rgb(112, 112, 112);\n --spectrum-alias-background-color-quickactions-overlay: rgba(0,0,0,0.2);\n --spectrum-alias-placeholder-text-color: var(--spectrum-gray-800);\n --spectrum-alias-placeholder-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-selected: var(--spectrum-gray-800);\n --spectrum-alias-label-text-color: var(--spectrum-gray-700);\n --spectrum-alias-text-color: var(--spectrum-gray-800);\n --spectrum-alias-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-text-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-mouse-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-text-color-invalid: var(--spectrum-red-900);\n --spectrum-alias-text-color-selected: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-title-text-color: var(--spectrum-gray-900);\n --spectrum-alias-heading-text-color: var(--spectrum-gray-900);\n --spectrum-alias-border-color: var(--spectrum-gray-500);\n --spectrum-alias-border-color-hover: var(--spectrum-gray-600);\n --spectrum-alias-border-color-down: var(--spectrum-gray-600);\n --spectrum-alias-border-color-focus: var(--spectrum-blue-800);\n --spectrum-alias-input-border-color-key-focus: var(--spectrum-alias-border-color-focus);\n --spectrum-alias-border-color-mouse-focus: var(--spectrum-blue-900);\n --spectrum-alias-border-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-border-color-extralight: var(--spectrum-gray-100);\n --spectrum-alias-border-color-light: var(--spectrum-gray-200);\n --spectrum-alias-border-color-mid: var(--spectrum-gray-300);\n --spectrum-alias-border-color-dark: var(--spectrum-gray-400);\n --spectrum-alias-border-color-transparent: transparent;\n --spectrum-alias-border-color-translucent-dark: rgba(0,0,0,0.05);\n --spectrum-alias-border-color-translucent-darker: rgba(0,0,0,0.1);\n --spectrum-alias-focus-color: var(--spectrum-blue-800);\n --spectrum-alias-focus-ring-color: var(--spectrum-alias-focus-color);\n --spectrum-alias-track-color-default: var(--spectrum-gray-300);\n --spectrum-alias-track-color-disabled: var(--spectrum-gray-300);\n --spectrum-alias-track-color-over-background: rgba(255,255,255,0.2);\n --spectrum-alias-icon-color: var(--spectrum-gray-700);\n --spectrum-alias-icon-color-over-background: var(--spectrum-global-color-static-white);\n --spectrum-alias-icon-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-down: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-focus: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-icon-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-selected: var(--spectrum-blue-900);\n --spectrum-alias-icon-color-selected-hover: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-selected-down: var(--spectrum-blue-1100);\n --spectrum-alias-icon-color-selected-focus: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-error: var(--spectrum-red-800);\n --spectrum-alias-toolbar-background-color: var(--spectrum-gray-100);\n --spectrum-alias-colorhandle-outer-border-color: rgba(0,0,0,0.42);\n --spectrum-alias-categorical-color-1: var(--spectrum-global-color-static-seafoam-200);\n --spectrum-alias-categorical-color-2: var(--spectrum-global-color-static-indigo-700);\n --spectrum-alias-categorical-color-3: var(--spectrum-global-color-static-orange-500);\n --spectrum-alias-categorical-color-4: var(--spectrum-global-color-static-magenta-500);\n --spectrum-alias-categorical-color-5: var(--spectrum-global-color-static-indigo-200);\n --spectrum-alias-categorical-color-6: var(--spectrum-global-color-static-celery-200);\n --spectrum-alias-categorical-color-7: var(--spectrum-global-color-static-blue-500);\n --spectrum-alias-categorical-color-8: var(--spectrum-global-color-static-purple-800);\n --spectrum-alias-categorical-color-9: var(--spectrum-global-color-static-yellow-500);\n --spectrum-alias-categorical-color-10: var(--spectrum-global-color-static-orange-700);\n --spectrum-alias-categorical-color-11: var(--spectrum-global-color-static-green-600);\n --spectrum-alias-categorical-color-12: var(--spectrum-global-color-static-chartreuse-300);\n --spectrum-alias-categorical-color-13: var(--spectrum-global-color-static-blue-200);\n --spectrum-alias-categorical-color-14: var(--spectrum-global-color-static-fuchsia-500);\n --spectrum-alias-categorical-color-15: var(--spectrum-global-color-static-magenta-200);\n --spectrum-alias-categorical-color-16: var(--spectrum-global-color-static-yellow-200);\n\n --spectrum-alias-toggle-color-default: var(--spectrum-gray-600);\n --spectrum-alias-toggle-color-hover: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-key-focus: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected-hover: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-key-focus: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-down: var(--spectrum-gray-900);\n\n --spectrum-actionbutton-background-color-disabled: transparent;\n --spectrum-actionbutton-border-color-disabled: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-quiet-background-color-hover: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-key-focus: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-down: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-static-black-border-color: rgba(0, 0, 0, 0.4);\n --spectrum-actionbutton-static-black-border-color-hover: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-key-focus: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-down: rgba(0, 0, 0, 0.7);\n --spectrum-actionbutton-static-black-border-color-disabled: rgba(0, 0, 0, 0.25);\n --spectrum-actionbutton-static-black-border-color-selected-disabled: rgba(0, 0, 0, 0.1);\n --spectrum-actionbutton-static-black-background-color: transparent;\n --spectrum-actionbutton-static-black-background-color-disabled: transparent;\n\n --spectrum-actionbutton-static-white-border-color: rgba(255, 255, 255, 0.4);\n --spectrum-actionbutton-static-white-border-color-hover: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-key-focus: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-down: rgba(255, 255, 255, 0.7);\n --spectrum-actionbutton-static-white-border-color-disabled: rgba(255, 255, 255, 0.25);\n --spectrum-actionbutton-static-white-border-color-selected-disabled: rgba(255, 255, 255, 0.1);\n --spectrum-actionbutton-static-white-background-color: transparent;\n --spectrum-actionbutton-static-white-background-color-disabled: transparent;\n\n --spectrum-combobox-fieldbutton-inset: 0;\n --spectrum-combobox-fieldbutton-border-left-width: var(--spectrum-alias-input-border-size);\n --spectrum-combobox-fieldbutton-focus-ring-border-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius);\n --spectrum-combobox-fieldbutton-start-border-radius: 0;\n --spectrum-combobox-fieldbutton-end-border-radius: var(--spectrum-alias-border-radius-regular);\n\n --spectrum-actiongroup-compact-button-gap: calc(-1 * var(--spectrum-actionbutton-border-size));\n\n --spectrum-tooltip-background-color: var(--spectrum-neutral-subdued-background-color-default);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--large {\n --spectrum-global-dimension-scale-factor: 1.25;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 4px;\n --spectrum-global-dimension-size-50: 5px;\n --spectrum-global-dimension-size-65: 6px;\n --spectrum-global-dimension-size-75: 8px;\n --spectrum-global-dimension-size-85: 9px;\n --spectrum-global-dimension-size-100: 10px;\n --spectrum-global-dimension-size-115: 11px;\n --spectrum-global-dimension-size-125: 13px;\n --spectrum-global-dimension-size-130: 14px;\n --spectrum-global-dimension-size-150: 15px;\n --spectrum-global-dimension-size-160: 16px;\n --spectrum-global-dimension-size-175: 18px;\n --spectrum-global-dimension-size-200: 20px;\n --spectrum-global-dimension-size-225: 22px;\n --spectrum-global-dimension-size-250: 25px;\n --spectrum-global-dimension-size-275: 28px;\n --spectrum-global-dimension-size-300: 30px;\n --spectrum-global-dimension-size-325: 32px;\n --spectrum-global-dimension-size-350: 35px;\n --spectrum-global-dimension-size-400: 40px;\n --spectrum-global-dimension-size-450: 45px;\n --spectrum-global-dimension-size-500: 50px;\n --spectrum-global-dimension-size-550: 56px;\n --spectrum-global-dimension-size-600: 60px;\n --spectrum-global-dimension-size-675: 68px;\n --spectrum-global-dimension-size-700: 70px;\n --spectrum-global-dimension-size-800: 80px;\n --spectrum-global-dimension-size-900: 90px;\n --spectrum-global-dimension-size-1000: 100px;\n --spectrum-global-dimension-size-1200: 120px;\n --spectrum-global-dimension-size-1250: 125px;\n --spectrum-global-dimension-size-1600: 160px;\n --spectrum-global-dimension-size-1700: 170px;\n --spectrum-global-dimension-size-2000: 200px;\n --spectrum-global-dimension-size-2400: 240px;\n --spectrum-global-dimension-size-3000: 300px;\n --spectrum-global-dimension-size-3400: 340px;\n --spectrum-global-dimension-size-3600: 360px;\n --spectrum-global-dimension-size-4600: 460px;\n --spectrum-global-dimension-size-5000: 500px;\n --spectrum-global-dimension-size-6000: 600px;\n --spectrum-global-dimension-font-size-25: 12px;\n --spectrum-global-dimension-font-size-50: 13px;\n --spectrum-global-dimension-font-size-75: 15px;\n --spectrum-global-dimension-font-size-100: 17px;\n --spectrum-global-dimension-font-size-150: 18px;\n --spectrum-global-dimension-font-size-200: 19px;\n --spectrum-global-dimension-font-size-300: 22px;\n --spectrum-global-dimension-font-size-400: 24px;\n --spectrum-global-dimension-font-size-500: 27px;\n --spectrum-global-dimension-font-size-600: 31px;\n --spectrum-global-dimension-font-size-700: 34px;\n --spectrum-global-dimension-font-size-800: 39px;\n --spectrum-global-dimension-font-size-900: 44px;\n --spectrum-global-dimension-font-size-1000: 49px;\n --spectrum-global-dimension-font-size-1100: 55px;\n --spectrum-global-dimension-font-size-1200: 62px;\n --spectrum-global-dimension-font-size-1300: 70px;\n --spectrum-alias-avatar-size-100: 26px;\n --spectrum-alias-avatar-size-400: 36px;\n --spectrum-alias-avatar-size-600: 46px;\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-barloader-large-border-radius: 4px;\n --spectrum-barloader-large-indeterminate-border-radius: 4px;\n --spectrum-barloader-large-over-background-border-radius: 4px;\n --spectrum-barloader-small-border-radius: 3px;\n --spectrum-barloader-small-indeterminate-border-radius: 3px;\n --spectrum-barloader-small-over-background-border-radius: 3px;\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-cta-min-width: 90px;\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-over-background-min-width: 90px;\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-primary-min-width: 90px;\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-over-background-min-width: 90px;\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-primary-min-width: 90px;\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-secondary-min-width: 90px;\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-warning-min-width: 90px;\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-secondary-min-width: 90px;\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-warning-min-width: 90px;\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-small-border-size: 3px;\n --spectrum-circleloader-small-over-background-border-size: 3px;\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-85);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-static-size-2600);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-85);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-icon-arrow-down-small-height: 12px;\n --spectrum-icon-arrow-left-medium-height: 12px;\n --spectrum-icon-checkmark-medium-width: 16px;\n --spectrum-icon-checkmark-medium-height: 16px;\n --spectrum-icon-checkmark-small-width: 12px;\n --spectrum-icon-checkmark-small-height: 12px;\n --spectrum-icon-chevron-down-medium-width: 12px;\n --spectrum-icon-chevron-left-large-width: 16px;\n --spectrum-icon-chevron-left-medium-height: 12px;\n --spectrum-icon-chevron-right-large-width: 16px;\n --spectrum-icon-chevron-right-medium-height: 12px;\n --spectrum-icon-cross-large-width: 16px;\n --spectrum-icon-cross-large-height: 16px;\n --spectrum-icon-dash-small-width: 12px;\n --spectrum-icon-dash-small-height: 12px;\n --spectrum-icon-skip-left-width: 10px;\n --spectrum-icon-skip-left-height: 12px;\n --spectrum-icon-skip-right-width: 10px;\n --spectrum-icon-skip-right-height: 12px;\n --spectrum-icon-triplegripper-width: 12px;\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-600);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-600);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin).\n */\n --spectrum-selectlist-option-padding-height: var(--spectrum-global-dimension-static-size-160);\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-loader-bar-large-border-radius: 4px;\n --spectrum-loader-bar-large-over-background-border-radius: 4px;\n --spectrum-loader-bar-small-border-radius: 3px;\n --spectrum-loader-bar-small-over-background-border-radius: 3px;\n --spectrum-loader-circle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-small-border-size: 3px;\n --spectrum-loader-circle-small-over-background-border-size: 3px;\n --spectrum-meter-large-border-radius: 4px;\n --spectrum-meter-small-border-radius: 3px;\n --spectrum-pagination-page-button-line-height: 32px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 8px;\n --spectrum-overlay-negative-transform-distance: -8px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progressbar-large-border-radius: 4px;\n --spectrum-progressbar-large-indeterminate-border-radius: 4px;\n --spectrum-progressbar-large-over-background-border-radius: 4px;\n --spectrum-progressbar-small-border-radius: 3px;\n --spectrum-progressbar-small-indeterminate-border-radius: 3px;\n --spectrum-progressbar-small-over-background-border-radius: 3px;\n --spectrum-progresscircle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-small-border-size: 3px;\n --spectrum-progresscircle-small-indeterminate-border-size: 3px;\n --spectrum-progresscircle-small-over-background-border-size: 3px;\n --spectrum-progresscircle-medium-indeterminate-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-icon-width: 30px;\n --spectrum-rating-indicator-width: 20px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-emphasized-icon-width: 30px;\n --spectrum-rating-emphasized-indicator-width: 20px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-quiet-icon-width: 30px;\n --spectrum-rating-quiet-indicator-width: 20px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-sidenav-item-touch-hit-bottom: 3px;\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: 3px;\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-handle-border-radius: 9px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 18px;\n --spectrum-switch-handle-transform-x-rtl: -18px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-emphasized-handle-border-radius: 9px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-quiet-handle-border-radius: 9px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tabs-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-margin-left: -11px;\n --spectrum-tabs-compact-margin-right: -11px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-focus-ring-border-radius: 6px;\n --spectrum-tabs-margin-left: -11px;\n --spectrum-tabs-margin-right: -11px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-emphasized-margin-left: -11px;\n --spectrum-tabs-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-margin-left: -11px;\n --spectrum-tabs-quiet-margin-right: -11px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-margin-left: -11px;\n --spectrum-tabs-quiet-compact-margin-right: -11px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-vertical-focus-ring-border-radius: 6px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tooltip-padding-bottom: 6px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 6px;\n --spectrum-tooltip-info-content-max-width: 126px;\n --spectrum-tooltip-negative-padding-bottom: 6px;\n --spectrum-tooltip-negative-content-max-width: 126px;\n --spectrum-tooltip-positive-padding-bottom: 6px;\n --spectrum-tooltip-positive-content-max-width: 126px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--light {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(255, 255, 255);\n --spectrum-gray-75: rgb(253, 253, 253);\n --spectrum-gray-100: rgb(248, 248, 248);\n --spectrum-gray-200: rgb(230, 230, 230);\n --spectrum-gray-300: rgb(213, 213, 213);\n --spectrum-gray-400: rgb(177, 177, 177);\n --spectrum-gray-500: rgb(144, 144, 144);\n --spectrum-gray-600: rgb(109, 109, 109);\n --spectrum-gray-700: rgb(70, 70, 70);\n --spectrum-gray-800: rgb(34, 34, 34);\n --spectrum-gray-900: rgb(0, 0, 0);\n --spectrum-red-100: rgb(255, 235, 231);\n --spectrum-red-200: rgb(255, 221, 214);\n --spectrum-red-300: rgb(255, 205, 195);\n --spectrum-red-400: rgb(255, 183, 169);\n --spectrum-red-500: rgb(255, 155, 136);\n --spectrum-red-600: rgb(255, 124, 101);\n --spectrum-red-700: rgb(247, 92, 70);\n --spectrum-red-800: rgb(234, 56, 41);\n --spectrum-red-900: rgb(211, 21, 16);\n --spectrum-red-1000: rgb(180, 0, 0);\n --spectrum-red-1100: rgb(147, 0, 0);\n --spectrum-red-1200: rgb(116, 0, 0);\n --spectrum-red-1300: rgb(89, 0, 0);\n --spectrum-red-1400: rgb(67, 0, 0);\n --spectrum-orange-100: rgb(255, 236, 204);\n --spectrum-orange-200: rgb(255, 223, 173);\n --spectrum-orange-300: rgb(253, 210, 145);\n --spectrum-orange-400: rgb(255, 187, 99);\n --spectrum-orange-500: rgb(255, 160, 55);\n --spectrum-orange-600: rgb(246, 133, 17);\n --spectrum-orange-700: rgb(228, 111, 0);\n --spectrum-orange-800: rgb(203, 93, 0);\n --spectrum-orange-900: rgb(177, 76, 0);\n --spectrum-orange-1000: rgb(149, 61, 0);\n --spectrum-orange-1100: rgb(122, 47, 0);\n --spectrum-orange-1200: rgb(97, 35, 0);\n --spectrum-orange-1300: rgb(73, 25, 1);\n --spectrum-orange-1400: rgb(53, 18, 1);\n --spectrum-yellow-100: rgb(251, 241, 152);\n --spectrum-yellow-200: rgb(248, 231, 80);\n --spectrum-yellow-300: rgb(248, 217, 4);\n --spectrum-yellow-400: rgb(232, 198, 0);\n --spectrum-yellow-500: rgb(215, 179, 0);\n --spectrum-yellow-600: rgb(196, 159, 0);\n --spectrum-yellow-700: rgb(176, 140, 0);\n --spectrum-yellow-800: rgb(155, 120, 0);\n --spectrum-yellow-900: rgb(133, 102, 0);\n --spectrum-yellow-1000: rgb(112, 83, 0);\n --spectrum-yellow-1100: rgb(91, 67, 0);\n --spectrum-yellow-1200: rgb(72, 51, 0);\n --spectrum-yellow-1300: rgb(54, 37, 0);\n --spectrum-yellow-1400: rgb(40, 26, 0);\n --spectrum-chartreuse-100: rgb(219, 252, 110);\n --spectrum-chartreuse-200: rgb(203, 244, 67);\n --spectrum-chartreuse-300: rgb(188, 233, 42);\n --spectrum-chartreuse-400: rgb(170, 216, 22);\n --spectrum-chartreuse-500: rgb(152, 197, 10);\n --spectrum-chartreuse-600: rgb(135, 177, 3);\n --spectrum-chartreuse-700: rgb(118, 156, 0);\n --spectrum-chartreuse-800: rgb(103, 136, 0);\n --spectrum-chartreuse-900: rgb(87, 116, 0);\n --spectrum-chartreuse-1000: rgb(72, 96, 0);\n --spectrum-chartreuse-1100: rgb(58, 77, 0);\n --spectrum-chartreuse-1200: rgb(44, 59, 0);\n --spectrum-chartreuse-1300: rgb(33, 44, 0);\n --spectrum-chartreuse-1400: rgb(24, 31, 0);\n --spectrum-celery-100: rgb(205, 252, 191);\n --spectrum-celery-200: rgb(174, 246, 157);\n --spectrum-celery-300: rgb(150, 238, 133);\n --spectrum-celery-400: rgb(114, 224, 106);\n --spectrum-celery-500: rgb(78, 207, 80);\n --spectrum-celery-600: rgb(39, 187, 54);\n --spectrum-celery-700: rgb(7, 167, 33);\n --spectrum-celery-800: rgb(0, 145, 18);\n --spectrum-celery-900: rgb(0, 124, 15);\n --spectrum-celery-1000: rgb(0, 103, 15);\n --spectrum-celery-1100: rgb(0, 83, 13);\n --spectrum-celery-1200: rgb(0, 64, 10);\n --spectrum-celery-1300: rgb(0, 48, 7);\n --spectrum-celery-1400: rgb(0, 34, 5);\n --spectrum-green-100: rgb(206, 248, 224);\n --spectrum-green-200: rgb(173, 244, 206);\n --spectrum-green-300: rgb(137, 236, 188);\n --spectrum-green-400: rgb(103, 222, 168);\n --spectrum-green-500: rgb(73, 204, 147);\n --spectrum-green-600: rgb(47, 184, 128);\n --spectrum-green-700: rgb(21, 164, 110);\n --spectrum-green-800: rgb(0, 143, 93);\n --spectrum-green-900: rgb(0, 122, 77);\n --spectrum-green-1000: rgb(0, 101, 62);\n --spectrum-green-1100: rgb(0, 81, 50);\n --spectrum-green-1200: rgb(5, 63, 39);\n --spectrum-green-1300: rgb(10, 46, 29);\n --spectrum-green-1400: rgb(10, 32, 21);\n --spectrum-seafoam-100: rgb(206, 247, 243);\n --spectrum-seafoam-200: rgb(170, 241, 234);\n --spectrum-seafoam-300: rgb(140, 233, 226);\n --spectrum-seafoam-400: rgb(101, 218, 210);\n --spectrum-seafoam-500: rgb(63, 201, 193);\n --spectrum-seafoam-600: rgb(15, 181, 174);\n --spectrum-seafoam-700: rgb(0, 161, 154);\n --spectrum-seafoam-800: rgb(0, 140, 135);\n --spectrum-seafoam-900: rgb(0, 119, 114);\n --spectrum-seafoam-1000: rgb(0, 99, 95);\n --spectrum-seafoam-1100: rgb(12, 79, 76);\n --spectrum-seafoam-1200: rgb(18, 60, 58);\n --spectrum-seafoam-1300: rgb(18, 44, 43);\n --spectrum-seafoam-1400: rgb(15, 31, 30);\n --spectrum-cyan-100: rgb(197, 248, 255);\n --spectrum-cyan-200: rgb(164, 240, 255);\n --spectrum-cyan-300: rgb(136, 231, 250);\n --spectrum-cyan-400: rgb(96, 216, 243);\n --spectrum-cyan-500: rgb(51, 197, 232);\n --spectrum-cyan-600: rgb(18, 176, 218);\n --spectrum-cyan-700: rgb(1, 156, 200);\n --spectrum-cyan-800: rgb(0, 134, 180);\n --spectrum-cyan-900: rgb(0, 113, 159);\n --spectrum-cyan-1000: rgb(0, 93, 137);\n --spectrum-cyan-1100: rgb(0, 74, 115);\n --spectrum-cyan-1200: rgb(0, 57, 93);\n --spectrum-cyan-1300: rgb(0, 42, 70);\n --spectrum-cyan-1400: rgb(0, 30, 51);\n --spectrum-blue-100: rgb(224, 242, 255);\n --spectrum-blue-200: rgb(202, 232, 255);\n --spectrum-blue-300: rgb(181, 222, 255);\n --spectrum-blue-400: rgb(150, 206, 253);\n --spectrum-blue-500: rgb(120, 187, 250);\n --spectrum-blue-600: rgb(89, 167, 246);\n --spectrum-blue-700: rgb(56, 146, 243);\n --spectrum-blue-800: rgb(20, 122, 243);\n --spectrum-blue-900: rgb(2, 101, 220);\n --spectrum-blue-1000: rgb(0, 84, 182);\n --spectrum-blue-1100: rgb(0, 68, 145);\n --spectrum-blue-1200: rgb(0, 53, 113);\n --spectrum-blue-1300: rgb(0, 39, 84);\n --spectrum-blue-1400: rgb(0, 28, 60);\n --spectrum-indigo-100: rgb(237, 238, 255);\n --spectrum-indigo-200: rgb(224, 226, 255);\n --spectrum-indigo-300: rgb(211, 213, 255);\n --spectrum-indigo-400: rgb(193, 196, 255);\n --spectrum-indigo-500: rgb(172, 175, 255);\n --spectrum-indigo-600: rgb(149, 153, 255);\n --spectrum-indigo-700: rgb(126, 132, 252);\n --spectrum-indigo-800: rgb(104, 109, 244);\n --spectrum-indigo-900: rgb(82, 88, 228);\n --spectrum-indigo-1000: rgb(64, 70, 202);\n --spectrum-indigo-1100: rgb(50, 54, 168);\n --spectrum-indigo-1200: rgb(38, 41, 134);\n --spectrum-indigo-1300: rgb(27, 30, 100);\n --spectrum-indigo-1400: rgb(20, 22, 72);\n --spectrum-purple-100: rgb(246, 235, 255);\n --spectrum-purple-200: rgb(238, 221, 255);\n --spectrum-purple-300: rgb(230, 208, 255);\n --spectrum-purple-400: rgb(219, 187, 254);\n --spectrum-purple-500: rgb(204, 164, 253);\n --spectrum-purple-600: rgb(189, 139, 252);\n --spectrum-purple-700: rgb(174, 114, 249);\n --spectrum-purple-800: rgb(157, 87, 244);\n --spectrum-purple-900: rgb(137, 61, 231);\n --spectrum-purple-1000: rgb(115, 38, 211);\n --spectrum-purple-1100: rgb(93, 19, 183);\n --spectrum-purple-1200: rgb(71, 12, 148);\n --spectrum-purple-1300: rgb(51, 16, 106);\n --spectrum-purple-1400: rgb(35, 15, 73);\n --spectrum-fuchsia-100: rgb(255, 233, 252);\n --spectrum-fuchsia-200: rgb(255, 218, 250);\n --spectrum-fuchsia-300: rgb(254, 199, 248);\n --spectrum-fuchsia-400: rgb(251, 174, 246);\n --spectrum-fuchsia-500: rgb(245, 146, 243);\n --spectrum-fuchsia-600: rgb(237, 116, 237);\n --spectrum-fuchsia-700: rgb(224, 85, 226);\n --spectrum-fuchsia-800: rgb(205, 58, 206);\n --spectrum-fuchsia-900: rgb(182, 34, 183);\n --spectrum-fuchsia-1000: rgb(157, 3, 158);\n --spectrum-fuchsia-1100: rgb(128, 0, 129);\n --spectrum-fuchsia-1200: rgb(100, 6, 100);\n --spectrum-fuchsia-1300: rgb(71, 14, 70);\n --spectrum-fuchsia-1400: rgb(50, 13, 49);\n --spectrum-magenta-100: rgb(255, 234, 241);\n --spectrum-magenta-200: rgb(255, 220, 232);\n --spectrum-magenta-300: rgb(255, 202, 221);\n --spectrum-magenta-400: rgb(255, 178, 206);\n --spectrum-magenta-500: rgb(255, 149, 189);\n --spectrum-magenta-600: rgb(250, 119, 170);\n --spectrum-magenta-700: rgb(239, 90, 152);\n --spectrum-magenta-800: rgb(222, 61, 130);\n --spectrum-magenta-900: rgb(200, 34, 105);\n --spectrum-magenta-1000: rgb(173, 9, 85);\n --spectrum-magenta-1100: rgb(142, 0, 69);\n --spectrum-magenta-1200: rgb(112, 0, 55);\n --spectrum-magenta-1300: rgb(84, 3, 42);\n --spectrum-magenta-1400: rgb(60, 6, 29);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.4);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.15);\n --spectrum-alias-background-color-hover-overlay: rgba(0,0,0,0.04);\n --spectrum-alias-highlight-hover: rgba(0,0,0,0.06);\n --spectrum-alias-highlight-active: rgba(44,44,44,0.1);\n --spectrum-alias-highlight-selected: rgba(2,101,220,0.1);\n --spectrum-alias-highlight-selected-hover: rgba(2,101,220,0.2);\n --spectrum-alias-highlight-invalid: rgba(211, 21, 16, 0.15); /* matches red-900 */\n --spectrum-alias-text-highlight-color: rgba(2,101,220,0.2);\n --spectrum-alias-background-color-quickactions: rgba(248,248,248,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(34,34,34,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-300);\n --spectrum-colorarea-border-color: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(20,115,230,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(20,115,230,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(34,34,34,0.02);\n --spectrum-well-border-color: rgba(0,0,0,0.05);\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-50);\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: rgb(118, 118, 118); /* 4.54:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-900);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-1100);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-1000);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-800);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-900);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-600);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-700);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-800);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-700);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-900);\n --spectrum-negative-background-color-hover: var(--spectrum-red-1000);\n --spectrum-negative-background-color-down: var(--spectrum-red-1100);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-1000);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-900);\n --spectrum-positive-background-color-hover: var(--spectrum-green-1000);\n --spectrum-positive-background-color-down: var(--spectrum-green-1100);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-1000);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-900);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-1000);\n --spectrum-informative-background-color-down: var(--spectrum-blue-1100);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-1000);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-600);\n --spectrum-orange-background-color-default: var(--spectrum-orange-600);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-400);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-500);\n --spectrum-celery-background-color-default: var(--spectrum-celery-600);\n --spectrum-green-background-color-default: var(--spectrum-green-900);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-900);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-900);\n --spectrum-blue-background-color-default: var(--spectrum-blue-900);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-900);\n --spectrum-purple-background-color-default: var(--spectrum-purple-900);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-900);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-900);\n\n --spectrum-negative-visual-color: var(--spectrum-red-800);\n --spectrum-positive-visual-color: var(--spectrum-green-700);\n --spectrum-notice-visual-color: var(--spectrum-orange-700);\n --spectrum-informative-visual-color: var(--spectrum-blue-800);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-500);\n --spectrum-red-visual-color: var(--spectrum-red-800);\n --spectrum-orange-visual-color: var(--spectrum-orange-700);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-600);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-600);\n --spectrum-celery-visual-color: var(--spectrum-celery-700);\n --spectrum-green-visual-color: var(--spectrum-green-700);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-700);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-600);\n --spectrum-blue-visual-color: var(--spectrum-blue-800);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-800);\n --spectrum-purple-visual-color: var(--spectrum-purple-800);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-800);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-800);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--medium {\n --spectrum-global-dimension-scale-factor: 1;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 3px;\n --spectrum-global-dimension-size-50: 4px;\n --spectrum-global-dimension-size-65: 5px;\n --spectrum-global-dimension-size-75: 6px;\n --spectrum-global-dimension-size-85: 7px;\n --spectrum-global-dimension-size-100: 8px;\n --spectrum-global-dimension-size-115: 9px;\n --spectrum-global-dimension-size-125: 10px;\n --spectrum-global-dimension-size-130: 11px;\n --spectrum-global-dimension-size-150: 12px;\n --spectrum-global-dimension-size-160: 13px;\n --spectrum-global-dimension-size-175: 14px;\n --spectrum-global-dimension-size-200: 16px;\n --spectrum-global-dimension-size-225: 18px;\n --spectrum-global-dimension-size-250: 20px;\n --spectrum-global-dimension-size-275: 22px;\n --spectrum-global-dimension-size-300: 24px;\n --spectrum-global-dimension-size-325: 26px;\n --spectrum-global-dimension-size-350: 28px;\n --spectrum-global-dimension-size-400: 32px;\n --spectrum-global-dimension-size-450: 36px;\n --spectrum-global-dimension-size-500: 40px;\n --spectrum-global-dimension-size-550: 44px;\n --spectrum-global-dimension-size-600: 48px;\n --spectrum-global-dimension-size-675: 54px;\n --spectrum-global-dimension-size-700: 56px;\n --spectrum-global-dimension-size-800: 64px;\n --spectrum-global-dimension-size-900: 72px;\n --spectrum-global-dimension-size-1000: 80px;\n --spectrum-global-dimension-size-1200: 96px;\n --spectrum-global-dimension-size-1250: 100px;\n --spectrum-global-dimension-size-1600: 128px;\n --spectrum-global-dimension-size-1700: 136px;\n --spectrum-global-dimension-size-2000: 160px;\n --spectrum-global-dimension-size-2400: 192px;\n --spectrum-global-dimension-size-3000: 240px;\n --spectrum-global-dimension-size-3400: 272px;\n --spectrum-global-dimension-size-3600: 288px;\n --spectrum-global-dimension-size-4600: 368px;\n --spectrum-global-dimension-size-5000: 400px;\n --spectrum-global-dimension-size-6000: 480px;\n --spectrum-global-dimension-font-size-25: 10px;\n --spectrum-global-dimension-font-size-50: 11px;\n --spectrum-global-dimension-font-size-75: 12px;\n --spectrum-global-dimension-font-size-100: 14px;\n --spectrum-global-dimension-font-size-150: 15px;\n --spectrum-global-dimension-font-size-200: 16px;\n --spectrum-global-dimension-font-size-300: 18px;\n --spectrum-global-dimension-font-size-400: 20px;\n --spectrum-global-dimension-font-size-500: 22px;\n --spectrum-global-dimension-font-size-600: 25px;\n --spectrum-global-dimension-font-size-700: 28px;\n --spectrum-global-dimension-font-size-800: 32px;\n --spectrum-global-dimension-font-size-900: 36px;\n --spectrum-global-dimension-font-size-1000: 40px;\n --spectrum-global-dimension-font-size-1100: 45px;\n --spectrum-global-dimension-font-size-1200: 50px;\n --spectrum-global-dimension-font-size-1300: 60px;\n --spectrum-alias-avatar-size-100: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-avatar-size-400: var(--spectrum-global-dimension-size-350);\n --spectrum-alias-avatar-size-600: var(--spectrum-global-dimension-size-450);\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-barloader-large-border-radius: 3px;\n --spectrum-barloader-large-indeterminate-border-radius: 3px;\n --spectrum-barloader-large-over-background-border-radius: 3px;\n --spectrum-barloader-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-cta-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-circleloader-medium-border-size: 3px;\n --spectrum-circleloader-medium-over-background-border-size: 3px;\n --spectrum-circleloader-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-circleloader-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-150);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-size-2400);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-150);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-icon-arrow-down-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-arrow-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-medium-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-medium-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-down-medium-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-left-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-right-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-right-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-cross-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-cross-large-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-dash-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-dash-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-left-width: 9px;\n --spectrum-icon-skip-left-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-right-width: 9px;\n --spectrum-icon-skip-right-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-triplegripper-width: var(--spectrum-global-dimension-size-125);\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-400);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-400);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin). Replaced var(--spectrum-global-dimension-static-size-85) with\n static 7px value since a fallback isn't generated anymore due to the rename.\n */\n --spectrum-selectlist-option-padding-height: 7px;\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-loader-bar-large-border-radius: 3px;\n --spectrum-loader-bar-large-over-background-border-radius: 3px;\n --spectrum-loader-bar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-bar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-medium-border-size: 3px;\n --spectrum-loader-circle-medium-over-background-border-size: 3px;\n --spectrum-loader-circle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-meter-large-border-radius: 3px;\n --spectrum-meter-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-pagination-page-button-line-height: 26px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 6px;\n --spectrum-overlay-negative-transform-distance: -6px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-progressbar-large-border-radius: 3px;\n --spectrum-progressbar-large-indeterminate-border-radius: 3px;\n --spectrum-progressbar-large-over-background-border-radius: 3px;\n --spectrum-progressbar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-border-size: 3px;\n --spectrum-progresscircle-medium-over-background-border-size: 3px;\n --spectrum-progresscircle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-indeterminate-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-indeterminate-border-size: 3px;\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-margin-bottom: 0px;\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-margin-bottom: 0px;\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-margin-bottom: 0px;\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-icon-width: 24px;\n --spectrum-rating-indicator-width: 16px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-emphasized-icon-width: 24px;\n --spectrum-rating-emphasized-indicator-width: 16px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-quiet-icon-width: 24px;\n --spectrum-rating-quiet-indicator-width: 16px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-sidenav-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-track-width: 26px;\n --spectrum-switch-handle-border-radius: 7px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 12px;\n --spectrum-switch-handle-transform-x-rtl: -12px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-track-width: 26px;\n --spectrum-switch-emphasized-handle-border-radius: 7px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-track-width: 26px;\n --spectrum-switch-quiet-handle-border-radius: 7px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tabs-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-margin-left: -8px;\n --spectrum-tabs-compact-margin-right: -8px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-focus-ring-border-radius: 5px;\n --spectrum-tabs-margin-left: -8px;\n --spectrum-tabs-margin-right: -8px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-emphasized-margin-left: -8px;\n --spectrum-tabs-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-margin-left: -8px;\n --spectrum-tabs-quiet-margin-right: -8px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-margin-left: -8px;\n --spectrum-tabs-quiet-compact-margin-right: -8px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-vertical-focus-ring-border-radius: 5px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tooltip-padding-bottom: 5px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 5px;\n --spectrum-tooltip-info-content-max-width: 101px;\n --spectrum-tooltip-negative-padding-bottom: 5px;\n --spectrum-tooltip-negative-content-max-width: 101px;\n --spectrum-tooltip-positive-padding-bottom: 5px;\n --spectrum-tooltip-positive-content-max-width: 101px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/// \n\nimport darkest from '@adobe/spectrum-css-temp/vars/spectrum-darkest.css';\nimport global from '@adobe/spectrum-css-temp/vars/spectrum-global.css';\nimport large from '@adobe/spectrum-css-temp/vars/spectrum-large.css';\nimport light from '@adobe/spectrum-css-temp/vars/spectrum-light.css';\nimport medium from '@adobe/spectrum-css-temp/vars/spectrum-medium.css';\nimport {Theme} from '@react-types/provider';\n\nexport let theme: Theme = {\n global,\n light,\n dark: darkest,\n medium,\n large\n};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumImageProps} from '@react-types/image';\nimport styles from '@adobe/spectrum-css-temp/components/image/vars.css';\nimport {useProviderProps} from '@react-spectrum/provider';\n\n// incomplete component for show right now\n\nfunction Image(props: SpectrumImageProps, ref: DOMRef) {\n /* Slots should be able to pass an alt for default behavior, but in Images, the child may know better. */\n let userProvidedAlt = props.alt;\n props = useSlotProps(props, 'image');\n props = useProviderProps(props);\n let {\n objectFit,\n src,\n alt,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n if (alt == null) {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n return (\n \n \n
    \n );\n}\n\n/**\n * Image is used to insert and display an image within a component.\n */\nconst _Image = React.forwardRef(Image);\nexport {_Image as Image};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {InvalidationContext} from './types';\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\n// import {Point} from './Point';\nimport {Rect} from './Rect';\nimport {Size} from './Size';\nimport {Virtualizer} from './Virtualizer';\n// import { DragTarget, DropTarget } from '@react-types/shared';\n\n/**\n * [CollectionView]{@link CollectionView} supports arbitrary layout objects, which compute what views are visible, and how\n * to position and style them. However, layouts do not create the views themselves directly. Instead,\n * layouts produce lightweight {@link LayoutInfo} objects which describe various properties of a view,\n * such as its position and size. The {@link CollectionView} is then responsible for creating the actual\n * views as needed, based on this layout information.\n *\n * Every layout extends from the {@link Layout} abstract base class. Layouts must implement a minimum of the\n * two methods listed below. All other methods can be optionally overridden to implement custom behavior.\n *\n * @see {@link getVisibleLayoutInfos}\n * @see {@link getLayoutInfo}\n */\nexport abstract class Layout {\n /** The CollectionView the layout is currently attached to. */\n virtualizer: Virtualizer;\n\n /**\n * Returns whether the layout should invalidate in response to\n * visible rectangle changes. By default, it only invalidates\n * when the collection view's size changes. Return true always\n * to make the layout invalidate while scrolling (e.g. sticky headers).\n */\n shouldInvalidate(newRect: Rect, oldRect: Rect): boolean {\n // By default, invalidate when the size changes\n return newRect.width !== oldRect.width\n || newRect.height !== oldRect.height;\n }\n\n /**\n * This method allows the layout to perform any pre-computation\n * it needs to in order to prepare {@link LayoutInfo}s for retrieval.\n * Called by the collection view before {@link getVisibleLayoutInfos}\n * or {@link getLayoutInfo} are called.\n */\n validate(invalidationContext: InvalidationContext) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * Returns an array of {@link LayoutInfo} objects which are inside the given rectangle.\n * Should be implemented by subclasses.\n * @param rect The rectangle that should contain the returned LayoutInfo objects.\n */\n abstract getVisibleLayoutInfos(rect: Rect): LayoutInfo[];\n\n /**\n * Returns a {@link LayoutInfo} for the given key.\n * Should be implemented by subclasses.\n * @param key The key of the LayoutInfo to retrieve.\n */\n abstract getLayoutInfo(key: Key): LayoutInfo;\n\n /**\n * Returns size of the content. By default, it returns collectionView's size.\n */\n abstract getContentSize(): Size;\n\n /**\n * Returns a {@link DragTarget} describing a view at the given point to be dragged.\n * Return `null` to cancel the drag. The default implementation returns the view at the given point.\n * @param point The point at which the drag occurred.\n */\n // getDragTarget(point: Point): DragTarget | null {\n // let target = this.virtualizer.keyAtPoint(point);\n // if (!target) {\n // return null;\n // }\n\n // return {\n // type: 'item',\n // key: target\n // };\n // }\n\n /**\n * Returns a {@link DragTarget} object describing where a drop should occur. Return `null`\n * to reject the drop. The dropped items will be inserted before the resulting target.\n * @param point The point at which the drop occurred.\n */\n // getDropTarget(point: Point): DropTarget | null {\n // return null;\n // }\n\n /**\n * Returns the starting attributes for an animated insertion.\n * The view is animated from this {@link LayoutInfo} to the one returned by {@link getLayoutInfo}.\n * The default implementation just returns its input.\n *\n * @param layoutInfo The proposed LayoutInfo for this view.\n */\n getInitialLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n\n /**\n * Returns the ending attributes for an animated removal.\n * The view is animated from the {@link LayoutInfo} returned by {@link getLayoutInfo}\n * to the one returned by this method. The default implementation returns its input.\n *\n * @param layoutInfo The original LayoutInfo for this view.\n */\n getFinalLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {Rect} from './Rect';\n\n/**\n * Instances of this lightweight class are created by {@link Layout} subclasses\n * to represent each view in the {@link CollectionView}. LayoutInfo objects describe\n * various properties of a view, such as its position and size, and style information.\n * The collection view uses this information when creating actual views to display.\n */\nexport class LayoutInfo {\n /**\n * A string representing the view type. Should be `'item'` for item views.\n * Other types are used by supplementary views.\n */\n type: string;\n\n /**\n * A unique key for this view. For item views, it should match the content key.\n */\n key: Key;\n\n /**\n * The key for a parent layout info, if any.\n */\n parentKey: Key | null;\n\n /**\n * The rectangle describing the size and position of this view.\n */\n rect: Rect;\n\n /**\n * Whether the size is estimated. `false` by default.\n */\n estimatedSize: boolean;\n\n /**\n * Whether the layout info sticks to the viewport when scrolling.\n */\n isSticky: boolean;\n\n /**\n * The view's opacity. 1 by default.\n */\n opacity: number;\n\n /**\n * A CSS transform string to apply to the view. `null` by default.\n */\n transform: string | null;\n\n /**\n * The z-index of the view. 0 by default.\n */\n zIndex: number;\n\n /**\n * Whether the layout info allows its contents to overflow its container.\n * @default false\n */\n allowOverflow: boolean;\n\n /**\n * @param type A string representing the view type. Should be `'item'` for item views.\n Other types are used by supplementary views.\n * @param key The unique key for this view.\n * @param rect The rectangle describing the size and position of this view.\n */\n constructor(type: string, key: Key, rect: Rect) {\n this.type = type;\n this.key = key;\n this.parentKey = null;\n this.rect = rect;\n this.estimatedSize = false;\n this.isSticky = false;\n this.opacity = 1;\n this.transform = null;\n this.zIndex = 0;\n this.allowOverflow = false;\n }\n\n /**\n * Returns a copy of the LayoutInfo.\n */\n copy(): LayoutInfo {\n let res = new LayoutInfo(this.type, this.key, this.rect.copy());\n res.estimatedSize = this.estimatedSize;\n res.opacity = this.opacity;\n res.transform = this.transform;\n res.parentKey = this.parentKey;\n res.isSticky = this.isSticky;\n res.zIndex = this.zIndex;\n res.allowOverflow = this.allowOverflow;\n return res;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Point {\n /** The x-coordinate of the point. */\n x: number;\n\n /** The y-coordinate of the point. */\n y: number;\n\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n\n /**\n * Returns a copy of this point.\n */\n copy(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * Checks if two points are equal.\n */\n equals(point: Point): boolean {\n return this.x === point.x && this.y === point.y;\n }\n\n /**\n * Returns true if this point is the origin.\n */\n isOrigin(): boolean {\n return this.x === 0 && this.y === 0;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Size} from './Size';\n\nexport type RectCorner = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\n\n/**\n * Represents a rectangle.\n */\nexport class Rect {\n /** The x-coordinate of the rectangle. */\n x: number;\n\n /** The y-coordinate of the rectangle. */\n y: number;\n\n /** The width of the rectangle. */\n width: number;\n\n /** The height of the rectangle. */\n height: number;\n\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n /**\n * The maximum x-coordinate in the rectangle.\n */\n get maxX(): number {\n return this.x + this.width;\n }\n\n /**\n * The maximum y-coordinate in the rectangle.\n */\n get maxY(): number {\n return this.y + this.height;\n }\n\n /**\n * The area of the rectangle.\n */\n get area(): number {\n return this.width * this.height;\n }\n\n /**\n * The top left corner of the rectangle.\n */\n get topLeft(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * The top right corner of the rectangle.\n */\n get topRight(): Point {\n return new Point(this.maxX, this.y);\n }\n\n /**\n * The bottom left corner of the rectangle.\n */\n get bottomLeft(): Point {\n return new Point(this.x, this.maxY);\n }\n\n /**\n * The bottom right corner of the rectangle.\n */\n get bottomRight(): Point {\n return new Point(this.maxX, this.maxY);\n }\n\n /**\n * Returns whether this rectangle intersects another rectangle.\n * @param rect - The rectangle to check.\n */\n intersects(rect: Rect): boolean {\n return this.x <= rect.x + rect.width\n && rect.x <= this.x + this.width\n && this.y <= rect.y + rect.height\n && rect.y <= this.y + this.height;\n }\n\n /**\n * Returns whether this rectangle fully contains another rectangle.\n * @param rect - The rectangle to check.\n */\n containsRect(rect: Rect): boolean {\n return this.x <= rect.x\n && this.y <= rect.y\n && this.maxX >= rect.maxX\n && this.maxY >= rect.maxY;\n }\n\n /**\n * Returns whether the rectangle contains the given point.\n * @param point - The point to check.\n */\n containsPoint(point: Point): boolean {\n return this.x <= point.x\n && this.y <= point.y\n && this.maxX >= point.x\n && this.maxY >= point.y;\n }\n\n /**\n * Returns the first corner of this rectangle (from top to bottom, left to right)\n * that is contained in the given rectangle, or null of the rectangles do not intersect.\n * @param rect - The rectangle to check.\n */\n getCornerInRect(rect: Rect): RectCorner | null {\n for (let key of ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']) {\n if (rect.containsPoint(this[key])) {\n return key as RectCorner;\n }\n }\n\n return null;\n }\n\n equals(rect: Rect) {\n return rect.x === this.x\n && rect.y === this.y\n && rect.width === this.width\n && rect.height === this.height;\n }\n\n pointEquals(point: Point | Rect) {\n return this.x === point.x\n && this.y === point.y;\n }\n\n sizeEquals(size: Size | Rect) {\n return this.width === size.width\n && this.height === size.height;\n }\n\n /**\n * Returns the union of this Rect and another.\n */\n union(other: Rect) {\n let x = Math.min(this.x, other.x);\n let y = Math.min(this.y, other.y);\n let width = Math.max(this.maxX, other.maxX) - x;\n let height = Math.max(this.maxY, other.maxY) - y;\n return new Rect(x, y, width, height);\n }\n\n /**\n * Returns the intersection of this Rect with another.\n * If the rectangles do not intersect, an all zero Rect is returned.\n */\n intersection(other: Rect): Rect {\n if (!this.intersects(other)) {\n return new Rect(0, 0, 0, 0);\n }\n\n let x = Math.max(this.x, other.x);\n let y = Math.max(this.y, other.y);\n return new Rect(\n x,\n y,\n Math.min(this.maxX, other.maxX) - x,\n Math.min(this.maxY, other.maxY) - y\n );\n }\n\n /**\n * Returns a copy of this rectangle.\n */\n copy(): Rect {\n return new Rect(this.x, this.y, this.width, this.height);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Size {\n width: number;\n height: number;\n\n constructor(width = 0, height = 0) {\n this.width = width;\n this.height = height;\n }\n\n /**\n * Returns a copy of this size.\n */\n copy(): Size {\n return new Size(this.width, this.height);\n }\n\n /**\n * Returns whether this size is equal to another one.\n */\n equals(other: Size): boolean {\n return this.width === other.width\n && this.height === other.height;\n }\n\n /**\n * The total area of the Size.\n */\n get area() {\n return this.width * this.height;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {Virtualizer} from './Virtualizer';\n\nlet KEY = 0;\n\n/**\n * [CollectionView]{@link CollectionView} creates instances of the [ReusableView]{@link ReusableView} class to\n * represent views currently being displayed. ReusableViews manage a DOM node, handle\n * applying {@link LayoutInfo} objects to the view, and render content\n * as needed. Subclasses must implement the {@link render} method at a\n * minimum. Other methods can be overridden to customize behavior.\n */\nexport class ReusableView {\n /** The CollectionVirtualizer this view is a part of. */\n virtualizer: Virtualizer;\n\n /** The LayoutInfo this view is currently representing. */\n layoutInfo: LayoutInfo | null;\n\n /** The content currently being displayed by this view, set by the collection view. */\n content: T;\n\n rendered: V;\n\n viewType: string;\n key: Key;\n\n constructor(virtualizer: Virtualizer) {\n this.virtualizer = virtualizer;\n this.key = ++KEY;\n }\n\n /**\n * Prepares the view for reuse. Called just before the view is removed from the DOM.\n */\n prepareForReuse() {\n this.content = null;\n this.rendered = null;\n this.layoutInfo = null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\n\n// use high res timer if available\nlet perf = typeof window !== 'undefined' ? window.performance : null;\n// @ts-ignore\nlet perfNow = perf && (perf.now || perf.webkitNow || perf.msNow || perf.mozNow);\nlet getTime = perfNow ? perfNow.bind(perf) : function () {\n return Date.now ? Date.now() : new Date().getTime();\n};\n\nlet fixTs: boolean;\n\nexport interface CancelablePromise extends Promise {\n cancel(): void\n}\n\nexport function tween(begin, end, duration, ease, fn): CancelablePromise {\n let canceled = false;\n let raf_id: number;\n\n let promise = new Promise(resolve => {\n let start = getTime();\n let diffX = end.x - begin.x;\n let diffY = end.y - begin.y;\n\n raf_id = requestAnimationFrame(function run(t) {\n // if we're using a high res timer, make sure timestamp is not the old epoch-based value.\n // http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision\n if (fixTs == null) {\n fixTs = t > 1e12 !== getTime() > 1e12;\n }\n\n if (fixTs) {\n t = getTime();\n }\n\n // check if we're done\n let delta = t - start;\n if (delta > duration) {\n fn(end);\n resolve();\n } else {\n // call frame callback after computing eased time and get the next frame\n let proceed = fn(new Point(\n begin.x + diffX * ease(delta / duration),\n begin.y + diffY * ease(delta / duration)\n ));\n\n if (proceed !== false && !canceled) {\n raf_id = requestAnimationFrame(run);\n }\n }\n });\n }) as CancelablePromise;\n\n promise.cancel = function () {\n canceled = true;\n cancelAnimationFrame(raf_id);\n };\n\n return promise;\n}\n\n// easing functions\nexport function linearEasing(t) {\n return t;\n}\n\nexport function easeOut(t) {\n return Math.sin(t * Math.PI / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function keyDiff(a: Map, b: Map): Set {\n let res = new Set();\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n\n/**\n * Returns the key difference between two maps. Returns a set of\n * keys to add to and remove from a to make it equal to b.\n * @private\n */\nexport function difference(a: Map, b: Map) {\n let toRemove = keyDiff(a, b);\n let toAdd = keyDiff(b, a);\n let toUpdate = new Set;\n for (let key of a.keys()) {\n if (b.has(key)) {\n toUpdate.add(key);\n }\n }\n return {toRemove, toAdd, toUpdate};\n}\n\n/**\n * Returns an iterator that yields the items in all of the given iterators.\n * @private\n */\nexport function* concatIterators(...iterators: Iterable[]) {\n for (let iterator of iterators) {\n yield* iterator;\n }\n}\n\n/**\n * Inverts the keys and values of an object.\n * @private\n */\nexport function invert(object) {\n let res = {};\n for (let key in object) {\n res[object[key]] = key;\n }\n\n return res;\n}\n\n/** Returns whether two sets are equal. */\nexport function isSetEqual(a: Set, b: Set): boolean {\n if (a === b) {\n return true;\n }\n\n if (a.size !== b.size) {\n return false;\n }\n\n for (let key of a) {\n if (!b.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Rect} from './Rect';\n\nclass RollingAverage {\n private count: number = 0;\n value: number = 0;\n \n addSample(sample: number) {\n this.count++;\n this.value += (sample - this.value) / this.count;\n }\n}\n\nexport class OverscanManager {\n private startTime = 0;\n private averagePerf = new RollingAverage();\n private averageTime = new RollingAverage();\n private velocity = new Point(5, 5);\n private overscanX = new RollingAverage();\n private overscanY = new RollingAverage();\n private visibleRect = new Rect();\n \n setVisibleRect(rect: Rect) {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averageTime.addSample(time);\n\n if (rect.x !== this.visibleRect.x && time > 0) {\n this.velocity.x = (rect.x - this.visibleRect.x) / time;\n }\n\n if (rect.y !== this.visibleRect.y && time > 0) {\n this.velocity.y = (rect.y - this.visibleRect.y) / time;\n }\n }\n\n this.startTime = performance.now();\n this.visibleRect = rect;\n }\n\n collectMetrics() {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averagePerf.addSample(time);\n }\n\n if (this.visibleRect.height > 0) {\n let o = Math.abs(this.velocity.y * (this.averageTime.value + this.averagePerf.value)); \n this.overscanY.addSample(o);\n }\n\n if (this.visibleRect.width > 0) {\n let o = Math.abs(this.velocity.x * (this.averageTime.value + this.averagePerf.value)); \n this.overscanX.addSample(o);\n }\n }\n\n getOverscannedRect() {\n let overscanned = this.visibleRect.copy();\n\n let overscanY = Math.round(Math.min(this.visibleRect.height * 2, this.overscanY.value) / 100) * 100;\n if (this.velocity.y > 0) {\n overscanned.y -= overscanY * 0.2;\n overscanned.height += overscanY + overscanY * 0.2;\n } else {\n overscanned.y -= overscanY;\n overscanned.height += overscanY + overscanY * 0.2;\n }\n\n let overscanX = Math.round(Math.min(this.visibleRect.width * 2, this.overscanX.value) / 100) * 100;\n if (this.velocity.x > 0) {\n overscanned.x -= overscanX * 0.2;\n overscanned.width += overscanX + overscanX * 0.2;\n } else {\n overscanned.x -= overscanX;\n overscanned.width += overscanX + overscanX * 0.2;\n }\n\n return overscanned;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {ReusableView} from './ReusableView';\n\ntype LayoutInfoMap = Map;\nexport class Transaction {\n level = 0;\n actions: (() => void)[] = [];\n animated = true;\n initialMap: LayoutInfoMap = new Map();\n finalMap: LayoutInfoMap = new Map();\n initialLayoutInfo: LayoutInfoMap = new Map();\n finalLayoutInfo: LayoutInfoMap = new Map();\n removed: Map> = new Map();\n toRemove: Map> = new Map();\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CancelablePromise, easeOut, tween} from './tween';\nimport {Collection} from '@react-types/shared';\nimport {concatIterators, difference, isSetEqual} from './utils';\nimport {\n InvalidationContext,\n ScrollAnchor,\n ScrollToItemOptions,\n VirtualizerDelegate,\n VirtualizerOptions\n} from './types';\nimport {Key} from 'react';\nimport {Layout} from './Layout';\nimport {LayoutInfo} from './LayoutInfo';\nimport {OverscanManager} from './OverscanManager';\nimport {Point} from './Point';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {Transaction} from './Transaction';\n\n/**\n * The CollectionView class renders a scrollable collection of data using customizable layouts,\n * and manages animated updates to the data over time. It supports very large collections by\n * only rendering visible views to the DOM, reusing them as you scroll. Collection views can\n * present any type of view, including non-item views such as section headers and footers.\n * Optionally, the {@link EditableCollectionView} subclass can be used to enable user interaction\n * with the collection, including drag and drop, multiple selection, and keyboard interacton.\n *\n * Collection views get their data from a {@link DataSource} object that you provide. Items are\n * grouped into sections by the data source, and the collection view calls its methods to retrieve\n * the data. When data changes, the data source emits change events, and the collection view\n * updates as appropriate, optionally with an animated transition. There is one built-in data source\n * implementation, {@link ArrayDataSource}, which renders content from a 2d array.\n *\n * Collection views use {@link Layout} objects to compute what views should be visible, and how\n * to position and style them. This means that collection views can have their items arranged in\n * a stack, a grid, a circle, or any other layout you can think of. The layout can be changed\n * dynamically at runtime as well, optionally with an animated transition between the layouts.\n *\n * Layouts produce information on what views should appear in the collection view, but do not create\n * the views themselves directly. It is the responsibility of the {@link CollectionViewDelegate} object\n * to create instances of {@link ReusableView} subclasses which render the items into DOM nodes.\n * The delegate determines what type of view to display for each item, and creates instances of\n * views as needed by the collection view. Those views are then reused by the collection view as\n * the user scrolls through the content.\n */\nexport class Virtualizer {\n /**\n * The collection view delegate. The delegate is used by the collection view\n * to create and configure views.\n */\n delegate: VirtualizerDelegate;\n\n /** The duration of animated layout changes, in milliseconds. Default is 500ms. */\n transitionDuration: number;\n\n /**\n * Whether to enable scroll anchoring. This will attempt to restore the scroll position\n * after layout changes outside the viewport. Default is off.\n */\n anchorScrollPosition: boolean;\n\n /** Whether to anchor the scroll position when at the top of the content. Default is off. */\n anchorScrollPositionAtTop: boolean;\n\n /**\n * Whether to overscan the visible area to pre-render items slightly outside and\n * improve performance. Default is on.\n */\n shouldOverscan: boolean;\n\n private _collection: Collection;\n private _layout: Layout;\n private _contentSize: Size;\n private _visibleRect: Rect;\n private _visibleLayoutInfos: Map;\n private _reusableViews: {[type: string]: ReusableView[]};\n private _visibleViews: Map>;\n private _renderedContent: WeakMap;\n private _children: Set>;\n private _invalidationContext: InvalidationContext | null;\n private _overscanManager: OverscanManager;\n private _persistedKeys: Set;\n private _relayoutRaf: number | null;\n private _scrollAnimation: CancelablePromise | null;\n private _isScrolling: boolean;\n private _sizeUpdateQueue: Map;\n private _animatedContentOffset: Point;\n private _transaction: Transaction | null;\n private _nextTransaction: Transaction | null;\n private _transactionQueue: Transaction[];\n\n constructor(options: VirtualizerOptions = {}) {\n this._contentSize = new Size;\n this._visibleRect = new Rect;\n\n this._reusableViews = {};\n this._visibleLayoutInfos = new Map();\n this._visibleViews = new Map();\n this._renderedContent = new WeakMap();\n this._children = new Set();\n this._invalidationContext = null;\n this._overscanManager = new OverscanManager();\n this._persistedKeys = new Set();\n\n this._scrollAnimation = null;\n this._isScrolling = false;\n this._sizeUpdateQueue = new Map();\n this._animatedContentOffset = new Point(0, 0);\n\n this._transaction = null;\n this._nextTransaction = null;\n this._transactionQueue = [];\n\n // Set options from passed object if given\n this.transitionDuration = options.transitionDuration ?? 500;\n this.anchorScrollPosition = options.anchorScrollPosition || false;\n this.anchorScrollPositionAtTop = options.anchorScrollPositionAtTop || false;\n this.shouldOverscan = options.shouldOverscan !== false;\n for (let key of ['delegate', 'size', 'layout', 'collection']) {\n if (options[key]) {\n this[key] = options[key];\n }\n }\n }\n\n _setContentSize(size: Size) {\n this._contentSize = size;\n this.delegate.setContentSize(size);\n }\n\n _setContentOffset(offset: Point) {\n let rect = new Rect(offset.x, offset.y, this._visibleRect.width, this._visibleRect.height);\n this.delegate.setVisibleRect(rect);\n }\n\n /**\n * Get the size of the scrollable content.\n */\n get contentSize(): Size {\n return this._contentSize;\n }\n\n /**\n * Get the collection view's currently visible rectangle.\n */\n get visibleRect(): Rect {\n return this._visibleRect;\n }\n\n /**\n * Set the collection view's currently visible rectangle.\n */\n set visibleRect(rect: Rect) {\n this._setVisibleRect(rect);\n }\n\n _setVisibleRect(rect: Rect, forceUpdate = false) {\n let current = this._visibleRect;\n\n // Ignore if the rects are equal\n if (rect.equals(current)) {\n return;\n }\n\n if (this.shouldOverscan) {\n this._overscanManager.setVisibleRect(rect);\n }\n\n let shouldInvalidate = this.layout && this.layout.shouldInvalidate(rect, this._visibleRect);\n\n this._resetAnimatedContentOffset();\n this._visibleRect = rect;\n\n if (shouldInvalidate) {\n this.relayout({\n offsetChanged: !rect.pointEquals(current),\n sizeChanged: !rect.sizeEquals(current)\n });\n } else {\n this.updateSubviews(forceUpdate);\n }\n }\n\n get collection(): Collection {\n return this._collection;\n }\n\n set collection(data: Collection) {\n this._setData(data);\n }\n\n private _setData(data: Collection) {\n if (data === this._collection) {\n return;\n }\n\n if (this._collection) {\n this._runTransaction(() => {\n this._collection = data;\n }, this.transitionDuration > 0);\n } else {\n this._collection = data;\n this.reloadData();\n }\n }\n\n /**\n * Reloads the data from the data source and relayouts the collection view.\n * Does not animate any changes. Equivalent to re-assigning the same data source\n * to the collection view.\n */\n reloadData() {\n this.relayout({\n contentChanged: true\n });\n }\n\n /**\n * Returns the item with the given key.\n */\n getItem(key: Key) {\n return this._collection ? this._collection.getItem(key) : null;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n get persistedKeys(): Set {\n return this._persistedKeys;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n set persistedKeys(persistedKeys: Set) {\n if (!isSetEqual(persistedKeys, this._persistedKeys)) {\n this._persistedKeys = persistedKeys;\n this.updateSubviews();\n }\n }\n\n /** Returns whether the given key, or an ancestor, is persisted. */\n isPersistedKey(key: Key) {\n // Quick check if the key is directly in the set of persisted keys.\n if (this._persistedKeys.has(key)) {\n return true;\n }\n\n // If not, check if the key is an ancestor of any of the persisted keys.\n for (let k of this._persistedKeys) {\n while (k != null) {\n let layoutInfo = this.layout.getLayoutInfo(k);\n if (!layoutInfo) {\n break;\n }\n\n k = layoutInfo.parentKey;\n\n if (k === key) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Get the collection view's layout.\n */\n get layout(): Layout {\n return this._layout;\n }\n\n /**\n * Set the collection view's layout.\n */\n set layout(layout: Layout) {\n this.setLayout(layout);\n }\n\n /**\n * Sets the collection view's layout, optionally with an animated transition\n * from the current layout to the new layout.\n * @param layout The layout to switch to.\n * @param animated Whether to animate the layout change.\n */\n setLayout(layout: Layout, animated = false) {\n if (layout === this._layout) {\n return;\n }\n\n let applyLayout = () => {\n if (this._layout) {\n // @ts-ignore\n this._layout.virtualizer = null;\n }\n\n layout.virtualizer = this;\n this._layout = layout;\n };\n\n if (animated) {\n // Animated layout transitions are really simple, thanks to our transaction support.\n // We just set the layout inside a transaction action, which runs after the initial\n // layout infos for the animation are retrieved from the previous layout. Then, the\n // final layout infos are retrieved from the new layout, and animations occur.\n this._runTransaction(applyLayout);\n } else {\n applyLayout();\n this.relayout();\n }\n }\n\n private _getReuseType(layoutInfo: LayoutInfo, content: T | null) {\n if (layoutInfo.type === 'item' && content) {\n let type = this.delegate.getType ? this.delegate.getType(content) : 'item';\n let reuseType = type === 'item' ? 'item' : layoutInfo.type + '_' + type;\n return {type, reuseType};\n }\n\n return {\n type: layoutInfo.type,\n reuseType: layoutInfo.type\n };\n }\n\n getReusableView(layoutInfo: LayoutInfo): ReusableView {\n let content = this.getItem(layoutInfo.key);\n let {reuseType} = this._getReuseType(layoutInfo, content);\n\n if (!this._reusableViews[reuseType]) {\n this._reusableViews[reuseType] = [];\n }\n\n let reusable = this._reusableViews[reuseType];\n let view = reusable.length > 0\n ? reusable.pop()\n : new ReusableView(this);\n\n view.viewType = reuseType;\n\n if (!this._animatedContentOffset.isOrigin()) {\n layoutInfo = layoutInfo.copy();\n layoutInfo.rect.x += this._animatedContentOffset.x;\n layoutInfo.rect.y += this._animatedContentOffset.y;\n }\n\n view.layoutInfo = layoutInfo;\n\n this._renderView(view);\n return view;\n }\n\n private _renderView(reusableView: ReusableView) {\n let {type, key} = reusableView.layoutInfo;\n reusableView.content = this.getItem(key);\n reusableView.rendered = this._renderContent(type, reusableView.content);\n }\n\n private _renderContent(type: string, content: T) {\n let cached = this._renderedContent.get(content);\n if (cached != null) {\n return cached;\n }\n\n let rendered = this.delegate.renderView(type, content);\n if (content) {\n this._renderedContent.set(content, rendered);\n }\n return rendered;\n }\n\n /**\n * Returns an array of all currently visible views, including both\n * item views and supplementary views.\n */\n get visibleViews(): ReusableView[] {\n return Array.from(this._visibleViews.values());\n }\n\n /**\n * Gets the visible view for the given type and key. Returns null if\n * the view is not currently visible.\n *\n * @param key The key of the view to retrieve.\n */\n getView(key: Key): ReusableView | null {\n return this._visibleViews.get(key) || null;\n }\n\n /**\n * Returns an array of visible views matching the given type.\n * @param type The view type to find.\n */\n getViewsOfType(type: string): ReusableView[] {\n return this.visibleViews.filter(v => v.layoutInfo && v.layoutInfo.type === type);\n }\n\n /**\n * Returns the key for the given view. Returns null\n * if the view is not currently visible.\n */\n keyForView(view: ReusableView): Key | null {\n if (view && view.layoutInfo) {\n return view.layoutInfo.key;\n }\n\n return null;\n }\n\n /**\n * Returns the key for the item view currently at the given point.\n */\n keyAtPoint(point: Point): Key | null {\n let rect = new Rect(point.x, point.y, 1, 1);\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n\n // Layout may return multiple layout infos in the case of\n // persisted keys, so find the first one that actually intersects.\n for (let layoutInfo of layoutInfos) {\n if (layoutInfo.rect.intersects(rect)) {\n return layoutInfo.key;\n }\n }\n\n return null;\n }\n\n /**\n * Cleanup for when the Virtualizer will be unmounted.\n */\n willUnmount() {\n cancelAnimationFrame(this._relayoutRaf);\n }\n\n /**\n * Triggers a layout invalidation, and updates the visible subviews.\n */\n relayout(context: InvalidationContext = {}) {\n // Ignore relayouts while animating the scroll position\n if (this._scrollAnimation || typeof requestAnimationFrame === 'undefined') {\n return;\n }\n\n // If we already scheduled a relayout, extend the invalidation\n // context so we coalesce multiple relayouts in the same frame.\n if (this._invalidationContext) {\n Object.assign(this._invalidationContext, context);\n return;\n }\n\n this._invalidationContext = context;\n this._relayoutRaf = requestAnimationFrame(() => {\n this._relayoutRaf = null;\n this.relayoutNow();\n });\n }\n\n /**\n * Performs a relayout immediately. Prefer {@link relayout} over this method\n * where possible, since it coalesces multiple layout passes in the same tick.\n */\n relayoutNow(context: InvalidationContext = this._invalidationContext || {}) {\n // Cancel the scheduled relayout, since we're doing it now.\n if (this._relayoutRaf) {\n cancelAnimationFrame(this._relayoutRaf);\n this._relayoutRaf = null;\n // Update the provided context with the current invalidationContext since we are cancelling\n // a scheduled relayoutNow call that has this._invalidationContext set as its default context arg (relayoutNow() in relayout)\n context = {...this._invalidationContext, ...context};\n }\n\n // Reset the invalidation context\n this._invalidationContext = null;\n\n // Do nothing if we don't have a layout or content, or we are\n // in the middle of an animated scroll transition.\n if (!this.layout || !this._collection || this._scrollAnimation) {\n return;\n }\n\n let scrollAnchor = this._getScrollAnchor();\n\n // Trigger the beforeLayout hook, if provided\n if (typeof context.beforeLayout === 'function') {\n context.beforeLayout();\n }\n\n // Validate the layout\n this.layout.validate(context);\n this._setContentSize(this.layout.getContentSize());\n\n // Trigger the afterLayout hook, if provided\n if (typeof context.afterLayout === 'function') {\n context.afterLayout();\n }\n\n // Adjust scroll position based on scroll anchor, and constrain.\n // If the content changed, scroll to the top.\n let visibleRect = this.getVisibleRect();\n let restoredScrollAnchor = this._restoreScrollAnchor(scrollAnchor, context);\n let contentOffsetX = context.contentChanged ? 0 : restoredScrollAnchor.x;\n let contentOffsetY = context.contentChanged ? 0 : restoredScrollAnchor.y;\n contentOffsetX = Math.max(0, Math.min(this.contentSize.width - visibleRect.width, contentOffsetX));\n contentOffsetY = Math.max(0, Math.min(this.contentSize.height - visibleRect.height, contentOffsetY));\n\n let hasLayoutUpdates = false;\n if (contentOffsetX !== visibleRect.x || contentOffsetY !== visibleRect.y) {\n // If this is an animated relayout, we do not immediately scroll because it would be jittery.\n // Save the difference between the current and new content offsets, and apply it to the\n // individual content items instead. At the end of the animation, we'll reset and set the\n // scroll offset for real. This ensures jitter-free animation since we don't need to sync\n // the scroll animation and the content animation.\n if (context.animated || !this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset.x += visibleRect.x - contentOffsetX;\n this._animatedContentOffset.y += visibleRect.y - contentOffsetY;\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n } else {\n this._setContentOffset(new Point(contentOffsetX, contentOffsetY));\n }\n } else {\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n }\n\n // Apply layout infos, unless this is coming from an animated transaction\n if (!(context.transaction && context.animated)) {\n this._applyLayoutInfos();\n }\n\n // Wait for animations, and apply the afterAnimation hook, if provided\n if (context.animated && hasLayoutUpdates) {\n this._enableTransitions();\n\n let done = () => {\n this._disableTransitions();\n\n // Reset scroll position after animations (see above comment).\n if (!this._animatedContentOffset.isOrigin()) {\n // Get the content offset to scroll to, taking _animatedContentOffset into account.\n let {x, y} = this.getVisibleRect();\n this._resetAnimatedContentOffset();\n this._setContentOffset(new Point(x, y));\n }\n\n if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n };\n\n // Sometimes the animation takes slightly longer than expected.\n setTimeout(done, this.transitionDuration + 100);\n return;\n } else if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n }\n\n /**\n * Corrects DOM order of visible views to match item order of collection.\n */\n private _correctItemOrder() {\n // Defer until after scrolling and animated transactions are complete\n if (this._isScrolling || this._transaction) {\n return;\n }\n\n for (let key of this._visibleLayoutInfos.keys()) {\n let view = this._visibleViews.get(key);\n this._children.delete(view);\n this._children.add(view);\n }\n }\n\n private _enableTransitions() {\n this.delegate.beginAnimations();\n }\n\n private _disableTransitions() {\n this.delegate.endAnimations();\n }\n\n private _getScrollAnchor(): ScrollAnchor | null {\n if (!this.anchorScrollPosition) {\n return null;\n }\n\n let visibleRect = this.getVisibleRect();\n\n // Ask the delegate to provide a scroll anchor, if possible\n if (this.delegate.getScrollAnchor) {\n let key = this.delegate.getScrollAnchor(visibleRect);\n if (key != null) {\n let layoutInfo = this.layout.getLayoutInfo(key);\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n if (corner) {\n let key = layoutInfo.key;\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n return {key, layoutInfo, corner, offset};\n }\n }\n }\n\n // No need to anchor the scroll position if it is at the top\n if (visibleRect.y === 0 && !this.anchorScrollPositionAtTop) {\n return null;\n }\n\n // Find a view with a visible corner that has the smallest distance to the top of the collection view\n let cornerAnchor: ScrollAnchor | null = null;\n\n for (let [key, view] of this._visibleViews) {\n let layoutInfo = view.layoutInfo;\n if (layoutInfo && layoutInfo.rect.area > 0) {\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n\n if (corner) {\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n if (!cornerAnchor || (offset < cornerAnchor.offset)) {\n cornerAnchor = {key, layoutInfo, corner, offset};\n }\n }\n }\n }\n\n return cornerAnchor;\n }\n\n private _restoreScrollAnchor(scrollAnchor: ScrollAnchor | null, context: InvalidationContext) {\n let contentOffset = this.getVisibleRect();\n\n if (scrollAnchor) {\n let finalAnchor = context.transaction?.animated\n ? context.transaction.finalMap.get(scrollAnchor.key)\n : this.layout.getLayoutInfo(scrollAnchor.layoutInfo.key);\n\n if (finalAnchor) {\n let adjustment = (finalAnchor.rect[scrollAnchor.corner].y - contentOffset.y) - scrollAnchor.offset;\n contentOffset.y += adjustment;\n }\n }\n\n return contentOffset;\n }\n\n getVisibleRect(): Rect {\n let v = this.visibleRect;\n let x = v.x - this._animatedContentOffset.x;\n let y = v.y - this._animatedContentOffset.y;\n return new Rect(x, y, v.width, v.height);\n }\n\n getVisibleLayoutInfos() {\n let rect = this.shouldOverscan ? this._overscanManager.getOverscannedRect() : this.getVisibleRect();\n this._visibleLayoutInfos = this._getLayoutInfoMap(rect);\n return this._visibleLayoutInfos;\n }\n\n private _getLayoutInfoMap(rect: Rect, copy = false) {\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n let map = new Map;\n\n for (let layoutInfo of layoutInfos) {\n if (copy) {\n layoutInfo = layoutInfo.copy();\n }\n\n map.set(layoutInfo.key, layoutInfo);\n }\n\n return map;\n }\n\n updateSubviews(forceUpdate = false) {\n if (!this._collection) {\n return;\n }\n\n let visibleLayoutInfos = this.getVisibleLayoutInfos();\n let currentlyVisible = this._visibleViews;\n let toAdd, toRemove, toUpdate;\n\n // If this is a force update, remove and re-add all views.\n // Otherwise, find and update the diff.\n if (forceUpdate) {\n toAdd = visibleLayoutInfos;\n toRemove = currentlyVisible;\n toUpdate = new Set();\n } else {\n ({toAdd, toRemove, toUpdate} = difference(currentlyVisible, visibleLayoutInfos));\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key);\n if (!view || !view.layoutInfo) {\n continue;\n }\n\n let item = this.getItem(visibleLayoutInfos.get(key).key);\n if (view.content === item) {\n toUpdate.delete(key);\n } else {\n // If the view type changes, delete and recreate the view instead of updating\n let {reuseType} = this._getReuseType(view.layoutInfo, item);\n if (view.viewType !== reuseType) {\n toUpdate.delete(key);\n toAdd.add(key);\n toRemove.add(key);\n }\n }\n }\n\n // We are done if the sets are equal\n if (toAdd.size === 0 && toRemove.size === 0 && toUpdate.size === 0) {\n if (this._transaction) {\n this._applyLayoutInfos();\n }\n\n return;\n }\n }\n\n // Track views that should be removed. They are not removed from\n // the DOM immediately, since we may reuse and need to re-insert\n // them back into the DOM anyway.\n let removed = new Set>();\n\n for (let key of toRemove.keys()) {\n let view = this._visibleViews.get(key);\n if (view) {\n removed.add(view);\n this._visibleViews.delete(key);\n\n // If we are in the middle of a transaction, wait until the end\n // of the animations to remove the views from the DOM. Also means\n // we can't reuse those views immediately.\n if (this._transaction) {\n this._transaction.toRemove.set(key, view);\n } else {\n this.reuseView(view);\n }\n }\n }\n\n for (let key of toAdd.keys()) {\n let layoutInfo = visibleLayoutInfos.get(key);\n let view: ReusableView | void;\n\n // If we're in a transaction, and a layout change happens\n // during the animations such that a view that was going\n // to be removed is now not, we don't create a new view\n // since the old one is still in the DOM, marked as toRemove.\n if (this._transaction) {\n // if transaction, get initial layout attributes for the animation\n if (this._transaction.initialLayoutInfo.has(key)) {\n layoutInfo = this._transaction.initialLayoutInfo.get(key);\n }\n\n view = this._transaction.toRemove.get(key);\n if (view) {\n this._transaction.toRemove.delete(key);\n this._applyLayoutInfo(view, layoutInfo);\n }\n }\n\n if (!view) {\n // Create or reuse a view for this row\n view = this.getReusableView(layoutInfo);\n\n // Add the view to the DOM if needed\n if (!removed.has(view)) {\n this._children.add(view);\n }\n }\n\n this._visibleViews.set(key, view);\n removed.delete(view);\n }\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key) as ReusableView;\n this._renderedContent.delete(key);\n this._renderView(view);\n }\n\n // Remove the remaining rows to delete from the DOM\n if (!this._transaction) {\n this.removeViews(removed);\n }\n\n this._correctItemOrder();\n this._flushVisibleViews();\n\n let hasLayoutUpdates = this._transaction && (toAdd.size > 0 || toRemove.size > 0 || this._hasLayoutUpdates());\n if (hasLayoutUpdates) {\n requestAnimationFrame(() => {\n // If we're in a transaction, apply animations to visible views\n // and \"to be removed\" views, which animate off screen.\n if (this._transaction) {\n requestAnimationFrame(() => this._applyLayoutInfos());\n }\n });\n }\n\n return hasLayoutUpdates;\n }\n\n afterRender() {\n if (this.shouldOverscan) {\n this._overscanManager.collectMetrics();\n }\n }\n\n private _flushVisibleViews() {\n // CollectionVirtualizer deals with a flattened set of LayoutInfos, but they can represent heirarchy\n // by referencing a parentKey. Just before rendering the visible views, we rebuild this heirarchy\n // by creating a mapping of views by parent key and recursively calling the delegate's renderWrapper\n // method to build the final tree.\n let viewsByParentKey = new Map([[null, []]]);\n for (let view of this._children) {\n if (view.layoutInfo?.parentKey != null && !viewsByParentKey.has(view.layoutInfo.parentKey)) {\n viewsByParentKey.set(view.layoutInfo.parentKey, []);\n }\n\n viewsByParentKey.get(view.layoutInfo?.parentKey)?.push(view);\n if (!viewsByParentKey.has(view.layoutInfo?.key)) {\n viewsByParentKey.set(view.layoutInfo?.key, []);\n }\n }\n\n let buildTree = (parent: ReusableView, views: ReusableView[]): W[] => views.map(view => {\n let children = viewsByParentKey.get(view.layoutInfo.key);\n return this.delegate.renderWrapper(\n parent,\n view,\n children,\n (childViews) => buildTree(view, childViews)\n );\n });\n\n let children = buildTree(null, viewsByParentKey.get(null));\n this.delegate.setVisibleViews(children);\n }\n\n private _applyLayoutInfo(view: ReusableView, layoutInfo: LayoutInfo) {\n if (view.layoutInfo === layoutInfo) {\n return false;\n }\n\n view.layoutInfo = layoutInfo;\n return true;\n }\n\n private _applyLayoutInfos() {\n let updated = false;\n\n // Apply layout infos to visible views\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n // Apply final layout infos for views that will be removed\n if (this._transaction) {\n for (let view of this._transaction.toRemove.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n for (let view of this._transaction.removed.values()) {\n let cur = view.layoutInfo;\n let layoutInfo = this._transaction.finalLayoutInfo.get(cur.key) || cur;\n layoutInfo = this.layout.getFinalLayoutInfo(layoutInfo.copy());\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n if (updated) {\n this._flushVisibleViews();\n }\n }\n\n private _hasLayoutUpdates() {\n if (!this._transaction) {\n return false;\n }\n\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (!cur) {\n return true;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (\n // Uses equals rather than pointEquals so that width/height changes are taken into account\n !cur.rect.equals(layoutInfo.rect) ||\n cur.opacity !== layoutInfo.opacity ||\n cur.transform !== layoutInfo.transform\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n reuseView(view: ReusableView) {\n view.prepareForReuse();\n this._reusableViews[view.viewType].push(view);\n }\n\n removeViews(toRemove: Set>) {\n for (let view of toRemove) {\n this._children.delete(view);\n }\n }\n\n updateItemSize(key: Key, size: Size) {\n // TODO: we should be able to invalidate a single index path\n // @ts-ignore\n if (!this.layout.updateItemSize) {\n return;\n }\n\n // If the scroll position is currently animating, add the update\n // to a queue to be processed after the animation is complete.\n if (this._scrollAnimation) {\n this._sizeUpdateQueue.set(key, size);\n return;\n }\n\n // @ts-ignore\n let changed = this.layout.updateItemSize(key, size);\n if (changed) {\n this.relayout();\n }\n }\n\n startScrolling() {\n this._isScrolling = true;\n }\n\n endScrolling() {\n this._isScrolling = false;\n this._correctItemOrder();\n this._flushVisibleViews();\n }\n\n private _resetAnimatedContentOffset() {\n // Reset the animated content offset of subviews. See comment in relayoutNow for details.\n if (!this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset = new Point(0, 0);\n this._applyLayoutInfos();\n }\n }\n\n /**\n * Scrolls the item with the given key into view, optionally with an animation.\n * @param key The key of the item to scroll into view.\n * @param duration The duration of the scroll animation.\n */\n scrollToItem(key: Key, options?: ScrollToItemOptions) {\n // key can be 0, so check if null or undefined\n if (key == null) {\n return;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(key);\n if (!layoutInfo) {\n return;\n }\n\n let {\n duration = 300,\n shouldScrollX = true,\n shouldScrollY = true,\n offsetX = 0,\n offsetY = 0\n } = options;\n\n let x = this.visibleRect.x;\n let y = this.visibleRect.y;\n let minX = layoutInfo.rect.x - offsetX;\n let minY = layoutInfo.rect.y - offsetY;\n let maxX = x + this.visibleRect.width;\n let maxY = y + this.visibleRect.height;\n\n if (shouldScrollX) {\n if (minX <= x || maxX === 0) {\n x = minX;\n } else if (layoutInfo.rect.maxX > maxX) {\n x += layoutInfo.rect.maxX - maxX;\n }\n }\n\n if (shouldScrollY) {\n if (minY <= y || maxY === 0) {\n y = minY;\n } else if (layoutInfo.rect.maxY > maxY) {\n y += layoutInfo.rect.maxY - maxY;\n }\n }\n\n return this.scrollTo(new Point(x, y), duration);\n }\n\n /**\n * Performs an animated scroll to the given offset.\n * @param offset - The offset to scroll to.\n * @param duration The duration of the animation.\n * @returns A promise that resolves when the animation is complete.\n */\n scrollTo(offset: Point, duration: number = 300): Promise {\n // Cancel the current scroll animation\n if (this._scrollAnimation) {\n this._scrollAnimation.cancel();\n this._scrollAnimation = null;\n }\n\n // Set the content offset synchronously if the duration is zero\n if (duration <= 0 || this.visibleRect.pointEquals(offset)) {\n this._setContentOffset(offset);\n return Promise.resolve();\n }\n\n this.startScrolling();\n\n this._scrollAnimation = tween(this.visibleRect, offset, duration, easeOut, offset => {this._setContentOffset(offset);});\n this._scrollAnimation.then(() => {\n this._scrollAnimation = null;\n\n // Process view size updates that occurred during the animation.\n // Only views that are still visible will be actually updated.\n for (let [key, size] of this._sizeUpdateQueue) {\n this.updateItemSize(key, size);\n }\n\n this._sizeUpdateQueue.clear();\n this.relayout();\n this._processTransactionQueue();\n this.endScrolling();\n });\n\n return this._scrollAnimation;\n }\n\n private _runTransaction(action: () => void, animated?: boolean) {\n this._startTransaction();\n if (this._nextTransaction) {\n this._nextTransaction.actions.push(action);\n }\n this._endTransaction(animated);\n }\n\n private _startTransaction() {\n if (!this._nextTransaction) {\n this._nextTransaction = new Transaction;\n }\n\n this._nextTransaction.level++;\n }\n\n private _endTransaction(animated?: boolean) {\n if (!this._nextTransaction) {\n return false;\n }\n\n // Save whether the transaction should be animated.\n if (animated != null) {\n this._nextTransaction.animated = animated;\n }\n\n // If we haven't reached level 0, we are still in a\n // nested transaction. Wait for the parent to end.\n if (--this._nextTransaction.level > 0) {\n return false;\n }\n\n // Do nothing for empty transactions\n if (this._nextTransaction.actions.length === 0) {\n this._nextTransaction = null;\n return false;\n }\n\n // Default animations to true\n if (this._nextTransaction.animated == null) {\n this._nextTransaction.animated = true;\n }\n\n // Enqueue the transaction\n this._transactionQueue.push(this._nextTransaction);\n this._nextTransaction = null;\n\n this._processTransactionQueue();\n return true;\n }\n\n private _processTransactionQueue() {\n // If the current transaction is animating, wait until the end\n // to process the next transaction.\n if (this._transaction || this._scrollAnimation) {\n return;\n }\n\n let next = this._transactionQueue.shift();\n if (next) {\n this._performTransaction(next);\n }\n }\n\n private _getContentRect(): Rect {\n return new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n }\n\n private _performTransaction(transaction: Transaction) {\n this._transaction = transaction;\n\n this.relayoutNow({\n transaction: transaction,\n animated: transaction.animated,\n\n beforeLayout: () => {\n // Get the initial layout infos for all views before the updates\n // so we can figure out which views to add and remove.\n if (transaction.animated) {\n transaction.initialMap = this._getLayoutInfoMap(this._getContentRect(), true);\n }\n\n // Apply the actions that occurred during this transaction\n for (let action of transaction.actions) {\n action();\n }\n },\n\n afterLayout: () => {\n // Get the final layout infos after the updates\n if (transaction.animated) {\n transaction.finalMap = this._getLayoutInfoMap(this._getContentRect());\n this._setupTransactionAnimations(transaction);\n } else {\n this._transaction = null;\n }\n },\n\n afterAnimation: () => {\n // Remove and reuse views when animations are done\n if (transaction.toRemove.size > 0 || transaction.removed.size > 0) {\n for (let view of concatIterators(transaction.toRemove.values(), transaction.removed.values())) {\n this._children.delete(view);\n this.reuseView(view);\n }\n }\n\n this._transaction = null;\n\n // Ensure DOM order is correct for accessibility after animations are complete\n this._correctItemOrder();\n this._flushVisibleViews();\n\n this._processTransactionQueue();\n }\n });\n }\n\n private _setupTransactionAnimations(transaction: Transaction) {\n let {initialMap, finalMap} = transaction;\n\n // Store initial and final layout infos for animations\n for (let [key, layoutInfo] of initialMap) {\n if (finalMap.has(key)) {\n // Store the initial layout info for use during animations.\n transaction.initialLayoutInfo.set(key, layoutInfo);\n } else {\n // This view was removed. Store the layout info for use\n // in Layout#getFinalLayoutInfo during animations.\n transaction.finalLayoutInfo.set(layoutInfo.key, layoutInfo);\n }\n }\n\n // Get initial layout infos for views that were added\n for (let [key, layoutInfo] of finalMap) {\n if (!initialMap.has(key)) {\n let initialLayoutInfo = this.layout.getInitialLayoutInfo(layoutInfo.copy());\n transaction.initialLayoutInfo.set(key, initialLayoutInfo);\n }\n }\n\n // Figure out which views were removed.\n for (let [key, view] of this._visibleViews) {\n // If an item has a width of 0, there is no need to remove it from the _visibleViews.\n // Removing an item with width of 0 can cause a loop where the item gets added, removed,\n // added, removed... etc in a loop.\n if (!finalMap.has(key) && view.layoutInfo.rect.width > 0) {\n transaction.removed.set(key, view);\n this._visibleViews.delete(key);\n\n // In case something weird happened, where we have a view but no\n // initial layout info, use the one attached to the view.\n if (view.layoutInfo) {\n if (!transaction.finalLayoutInfo.has(view.layoutInfo.key)) {\n transaction.finalLayoutInfo.set(view.layoutInfo.key, view.layoutInfo);\n }\n }\n }\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {Key, useCallback, useEffect, useMemo, useState} from 'react';\nimport {Layout} from './Layout';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {Virtualizer} from './Virtualizer';\n\ninterface VirtualizerProps {\n renderView(type: string, content: T): V,\n renderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => W[]\n ): W,\n layout: Layout,\n collection: Collection,\n onVisibleRectChange(rect: Rect): void,\n getScrollAnchor?(rect: Rect): Key,\n transitionDuration?: number\n}\n\nexport interface VirtualizerState {\n visibleViews: W[],\n setVisibleRect: (rect: Rect) => void,\n contentSize: Size,\n isAnimating: boolean,\n virtualizer: Virtualizer,\n isScrolling: boolean,\n startScrolling: () => void,\n endScrolling: () => void\n}\n\nexport function useVirtualizerState(opts: VirtualizerProps): VirtualizerState {\n let [visibleViews, setVisibleViews] = useState([]);\n let [contentSize, setContentSize] = useState(new Size());\n let [isAnimating, setAnimating] = useState(false);\n let [isScrolling, setScrolling] = useState(false);\n let virtualizer = useMemo(() => new Virtualizer(), []);\n\n virtualizer.delegate = {\n setVisibleViews,\n setVisibleRect(rect) {\n virtualizer.visibleRect = rect;\n opts.onVisibleRectChange(rect);\n },\n setContentSize,\n renderView: opts.renderView,\n renderWrapper: opts.renderWrapper,\n beginAnimations: () => setAnimating(true),\n endAnimations: () => setAnimating(false),\n getScrollAnchor: opts.getScrollAnchor\n };\n\n virtualizer.layout = opts.layout;\n virtualizer.collection = opts.collection;\n virtualizer.transitionDuration = opts.transitionDuration;\n\n useLayoutEffect(() => {\n virtualizer.afterRender();\n });\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => virtualizer.willUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let setVisibleRect = useCallback((rect) => {\n virtualizer.visibleRect = rect;\n }, [virtualizer]);\n let startScrolling = useCallback(() => {\n virtualizer.startScrolling();\n setScrolling(true);\n }, [virtualizer]);\n let endScrolling = useCallback(() => {\n virtualizer.endScrolling();\n setScrolling(false);\n }, [virtualizer]);\n\n let state = useMemo(() => ({\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n }), [\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n ]);\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ntype Assertiveness = 'assertive' | 'polite';\n\n/* Inspired by https://github.com/AlmeroSteyn/react-aria-live */\nconst LIVEREGION_TIMEOUT_DELAY = 7000;\n\nlet liveAnnouncer: LiveAnnouncer = null;\n\n/**\n * Announces the message using screen reader technology.\n */\nexport function announce(\n message: string,\n assertiveness: Assertiveness = 'assertive',\n timeout = LIVEREGION_TIMEOUT_DELAY\n) {\n if (!liveAnnouncer) {\n liveAnnouncer = new LiveAnnouncer();\n }\n\n liveAnnouncer.announce(message, assertiveness, timeout);\n}\n\n/**\n * Stops all queued announcements.\n */\nexport function clearAnnouncer(assertiveness: Assertiveness) {\n if (liveAnnouncer) {\n liveAnnouncer.clear(assertiveness);\n }\n}\n\n/**\n * Removes the announcer from the DOM.\n */\nexport function destroyAnnouncer() {\n if (liveAnnouncer) {\n liveAnnouncer.destroy();\n liveAnnouncer = null;\n }\n}\n\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass LiveAnnouncer {\n node: HTMLElement;\n assertiveLog: HTMLElement;\n politeLog: HTMLElement;\n\n constructor() {\n this.node = document.createElement('div');\n this.node.dataset.liveAnnouncer = 'true';\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n });\n\n this.assertiveLog = this.createLog('assertive');\n this.node.appendChild(this.assertiveLog);\n\n this.politeLog = this.createLog('polite');\n this.node.appendChild(this.politeLog);\n\n document.body.prepend(this.node);\n }\n\n createLog(ariaLive: string) {\n let node = document.createElement('div');\n node.setAttribute('role', 'log');\n node.setAttribute('aria-live', ariaLive);\n node.setAttribute('aria-relevant', 'additions');\n return node;\n }\n\n destroy() {\n if (!this.node) {\n return;\n }\n\n document.body.removeChild(this.node);\n this.node = null;\n }\n\n announce(message: string, assertiveness = 'assertive', timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) {\n return;\n }\n\n let node = document.createElement('div');\n node.textContent = message;\n\n if (assertiveness === 'assertive') {\n this.assertiveLog.appendChild(node);\n } else {\n this.politeLog.appendChild(node);\n }\n\n if (message !== '') {\n setTimeout(() => {\n node.remove();\n }, timeout);\n }\n }\n\n clear(assertiveness: Assertiveness) {\n if (!this.node) {\n return;\n }\n\n if (!assertiveness || assertiveness === 'assertive') {\n this.assertiveLog.innerHTML = '';\n }\n\n if (!assertiveness || assertiveness === 'polite') {\n this.politeLog.innerHTML = '';\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {GridCollection} from '@react-types/grid';\nimport type {GridState} from '@react-stately/grid';\nimport {Key} from 'react';\nimport type {KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate,\n actions: {\n onRowAction: (key: Key) => void,\n onCellAction: (key: Key) => void\n }\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap = new WeakMap>, GridMapShared>();\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '@react-aria/live-announcer';\nimport {Collection, Node, Selection} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key, useRef} from 'react';\nimport {SelectionManager} from '@react-stately/selection';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useUpdateEffect} from '@react-aria/utils';\n\nexport interface GridSelectionAnnouncementProps {\n /**\n * A function that returns the text that should be announced by assistive technology when a row is added or removed from selection.\n * @default (key) => state.collection.getItem(key)?.textValue\n */\n getRowText?: (key: Key) => string\n}\n\ninterface GridSelectionState {\n /** A collection of items in the grid. */\n collection: Collection>,\n /** A set of items that are disabled. */\n disabledKeys: Set,\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\nexport function useGridSelectionAnnouncement(props: GridSelectionAnnouncementProps, state: GridSelectionState) {\n let {\n getRowText = (key) => state.collection.getItem(key)?.textValue\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n // Many screen readers do not announce when items in a grid are selected/deselected.\n // We do this using an ARIA live region.\n let selection = state.selectionManager.rawSelection;\n let lastSelection = useRef(selection);\n useUpdateEffect(() => {\n if (!state.selectionManager.isFocused) {\n lastSelection.current = selection;\n\n return;\n }\n\n let addedKeys = diffSelection(selection, lastSelection.current);\n let removedKeys = diffSelection(lastSelection.current, selection);\n\n // If adding or removing a single row from the selection, announce the name of that item.\n let isReplace = state.selectionManager.selectionBehavior === 'replace';\n let messages = [];\n\n if ((state.selectionManager.selectedKeys.size === 1 && isReplace)) {\n if (state.collection.getItem(state.selectionManager.selectedKeys.keys().next().value)) {\n let currentSelectionText = getRowText(state.selectionManager.selectedKeys.keys().next().value);\n if (currentSelectionText) {\n messages.push(stringFormatter.format('selectedItem', {item: currentSelectionText}));\n }\n }\n } else if (addedKeys.size === 1 && removedKeys.size === 0) {\n let addedText = getRowText(addedKeys.keys().next().value);\n if (addedText) {\n messages.push(stringFormatter.format('selectedItem', {item: addedText}));\n }\n } else if (removedKeys.size === 1 && addedKeys.size === 0) {\n if (state.collection.getItem(removedKeys.keys().next().value)) {\n let removedText = getRowText(removedKeys.keys().next().value);\n if (removedText) {\n messages.push(stringFormatter.format('deselectedItem', {item: removedText}));\n }\n }\n }\n\n // Announce how many items are selected, except when selecting the first item.\n if (state.selectionManager.selectionMode === 'multiple') {\n if (messages.length === 0 || selection === 'all' || selection.size > 1 || lastSelection.current === 'all' || lastSelection.current?.size > 1) {\n messages.push(selection === 'all'\n ? stringFormatter.format('selectedAll')\n : stringFormatter.format('selectedCount', {count: selection.size})\n );\n }\n }\n\n if (messages.length > 0) {\n announce(messages.join(' '));\n }\n\n lastSelection.current = selection;\n }, [selection]);\n}\n\nfunction diffSelection(a: Selection, b: Selection): Set {\n let res = new Set();\n if (a === 'all' || b === 'all') {\n return res;\n }\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useDescription} from '@react-aria/utils';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\nexport interface HighlightSelectionDescriptionProps {\n selectionManager: MultipleSelectionManager,\n hasItemActions?: boolean\n}\n\n/**\n * Computes the description for a grid selectable collection.\n * @param props\n */\nexport function useHighlightSelectionDescription(props: HighlightSelectionDescriptionProps): AriaLabelingProps {\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let modality = useInteractionModality();\n // null is the default if the user hasn't interacted with the table at all yet or the rest of the page\n let shouldLongPress = (modality === 'pointer' || modality === 'virtual' || modality == null)\n && typeof window !== 'undefined' && 'ontouchstart' in window;\n\n let interactionDescription = useMemo(() => {\n let selectionMode = props.selectionManager.selectionMode;\n let selectionBehavior = props.selectionManager.selectionBehavior;\n\n let message = undefined;\n if (shouldLongPress) {\n message = stringFormatter.format('longPressToSelect');\n }\n\n return selectionBehavior === 'replace' && selectionMode !== 'none' && props.hasItemActions ? message : undefined;\n }, [props.selectionManager.selectionMode, props.selectionManager.selectionBehavior, props.hasItemActions, stringFormatter, shouldLongPress]);\n\n let descriptionProps = useDescription(interactionDescription);\n return descriptionProps;\n}\n","import {AriaCheckboxProps} from '@react-types/checkbox';\nimport {GridCollection} from '@react-types/grid';\nimport {GridState} from '@react-stately/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface AriaGridSelectionCheckboxProps {\n /** A unique key for the checkbox. */\n key: Key\n}\n\nexport interface GridSelectionCheckboxAria {\n /** Props for the row selection checkbox element. */\n checkboxProps: AriaCheckboxProps\n}\n\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid.\n * @param props - Props for the selection checkbox.\n * @param state - State of the grid, as returned by `useGridState`.\n */\nexport function useGridSelectionCheckbox>(props: AriaGridSelectionCheckboxProps, state: GridState): GridSelectionCheckboxAria {\n let {key} = props;\n\n let manager = state.selectionManager;\n let checkboxId = useId();\n let isDisabled = !state.selectionManager.canSelectItem(key);\n let isSelected = state.selectionManager.isSelected(key);\n\n let onChange = () => manager.select(key);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return {\n checkboxProps: {\n id: checkboxId,\n 'aria-label': stringFormatter.format('select'),\n isSelected,\n isDisabled,\n onChange\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"deselectedItem\": \"{item} غير المحدد\",\n \"longPressToSelect\": \"اضغط مطولًا للدخول إلى وضع التحديد.\",\n \"select\": \"تحديد\",\n \"selectedAll\": \"جميع العناصر المحددة.\",\n \"selectedCount\": \"{count, plural, =0 {لم يتم تحديد عناصر} one {# عنصر محدد} other {# عنصر محدد}}.\",\n \"selectedItem\": \"{item} المحدد\"\n}\n","{\n \"deselectedItem\": \"{item} не е избран.\",\n \"longPressToSelect\": \"Натиснете и задръжте за да влезете в избирателен режим.\",\n \"select\": \"Изберете\",\n \"selectedAll\": \"Всички елементи са избрани.\",\n \"selectedCount\": \"{count, plural, =0 {Няма избрани елементи} one {# избран елемент} other {# избрани елементи}}.\",\n \"selectedItem\": \"{item} избран.\"\n}\n","{\n \"deselectedItem\": \"Položka {item} není vybrána.\",\n \"longPressToSelect\": \"Dlouhým stisknutím přejdete do režimu výběru.\",\n \"select\": \"Vybrat\",\n \"selectedAll\": \"Vybrány všechny položky.\",\n \"selectedCount\": \"{count, plural, =0 {Nevybrány žádné položky} one {Vybrána # položka} other {Vybráno # položek}}.\",\n \"selectedItem\": \"Vybrána položka {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} ikke valgt.\",\n \"longPressToSelect\": \"Lav et langt tryk for at aktivere valgtilstand.\",\n \"select\": \"Vælg\",\n \"selectedAll\": \"Alle elementer valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer valgt} one {# element valgt} other {# elementer valgt}}.\",\n \"selectedItem\": \"{item} valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} nicht ausgewählt.\",\n \"longPressToSelect\": \"Gedrückt halten, um Auswahlmodus zu öffnen.\",\n \"select\": \"Auswählen\",\n \"selectedAll\": \"Alle Elemente ausgewählt.\",\n \"selectedCount\": \"{count, plural, =0 {Keine Elemente ausgewählt} one {# Element ausgewählt} other {# Elemente ausgewählt}}.\",\n \"selectedItem\": \"{item} ausgewählt.\"\n}\n","{\n \"deselectedItem\": \"Δεν επιλέχθηκε το στοιχείο {item}.\",\n \"longPressToSelect\": \"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.\",\n \"select\": \"Επιλογή\",\n \"selectedAll\": \"Επιλέχθηκαν όλα τα στοιχεία.\",\n \"selectedCount\": \"{count, plural, =0 {Δεν επιλέχθηκαν στοιχεία} one {Επιλέχθηκε # στοιχείο} other {Επιλέχθηκαν # στοιχεία}}.\",\n \"selectedItem\": \"Επιλέχθηκε το στοιχείο {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} not selected.\",\n \"select\": \"Select\",\n \"selectedCount\": \"{count, plural, =0 {No items selected} one {# item selected} other {# items selected}}.\",\n \"selectedAll\": \"All items selected.\",\n \"selectedItem\": \"{item} selected.\",\n \"longPressToSelect\": \"Long press to enter selection mode.\"\n}\n","{\n \"deselectedItem\": \"{item} no seleccionado.\",\n \"longPressToSelect\": \"Mantenga pulsado para abrir el modo de selección.\",\n \"select\": \"Seleccionar\",\n \"selectedAll\": \"Todos los elementos seleccionados.\",\n \"selectedCount\": \"{count, plural, =0 {Ningún elemento seleccionado} one {# elemento seleccionado} other {# elementos seleccionados}}.\",\n \"selectedItem\": \"{item} seleccionado.\"\n}\n","{\n \"deselectedItem\": \"{item} pole valitud.\",\n \"longPressToSelect\": \"Valikurežiimi sisenemiseks vajutage pikalt.\",\n \"select\": \"Vali\",\n \"selectedAll\": \"Kõik üksused valitud.\",\n \"selectedCount\": \"{count, plural, =0 {Üksusi pole valitud} one {# üksus valitud} other {# üksust valitud}}.\",\n \"selectedItem\": \"{item} valitud.\"\n}\n","{\n \"deselectedItem\": \"Kohdetta {item} ei valittu.\",\n \"longPressToSelect\": \"Siirry valintatilaan painamalla pitkään.\",\n \"select\": \"Valitse\",\n \"selectedAll\": \"Kaikki kohteet valittu.\",\n \"selectedCount\": \"{count, plural, =0 {Ei yhtään kohdetta valittu} one {# kohde valittu} other {# kohdetta valittu}}.\",\n \"selectedItem\": \"{item} valittu.\"\n}\n","{\n \"deselectedItem\": \"{item} non sélectionné.\",\n \"longPressToSelect\": \"Appuyez de manière prolongée pour passer en mode de sélection.\",\n \"select\": \"Sélectionner\",\n \"selectedAll\": \"Tous les éléments sélectionnés.\",\n \"selectedCount\": \"{count, plural, =0 {Aucun élément sélectionné} one {# élément sélectionné} other {# éléments sélectionnés}}.\",\n \"selectedItem\": \"{item} sélectionné.\"\n}\n","{\n \"deselectedItem\": \"{item} לא נבחר.\",\n \"longPressToSelect\": \"הקשה ארוכה לכניסה למצב בחירה.\",\n \"select\": \"בחר\",\n \"selectedAll\": \"כל הפריטים נבחרו.\",\n \"selectedCount\": \"{count, plural, =0 {לא נבחרו פריטים} one {פריט # נבחר} other {# פריטים נבחרו}}.\",\n \"selectedItem\": \"{item} נבחר.\"\n}\n","{\n \"deselectedItem\": \"Stavka {item} nije odabrana.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u način odabira.\",\n \"select\": \"Odaberite\",\n \"selectedAll\": \"Odabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije odabrana nijedna stavka} one {Odabrana je # stavka} other {Odabrano je # stavki}}.\",\n \"selectedItem\": \"Stavka {item} je odabrana.\"\n}\n","{\n \"deselectedItem\": \"{item} nincs kijelölve.\",\n \"longPressToSelect\": \"Nyomja hosszan a kijelöléshez.\",\n \"select\": \"Kijelölés\",\n \"selectedAll\": \"Az összes elem kijelölve.\",\n \"selectedCount\": \"{count, plural, =0 {Egy elem sincs kijelölve} one {# elem kijelölve} other {# elem kijelölve}}.\",\n \"selectedItem\": \"{item} kijelölve.\"\n}\n","{\n \"deselectedItem\": \"{item} non selezionato.\",\n \"longPressToSelect\": \"Premi a lungo per passare alla modalità di selezione.\",\n \"select\": \"Seleziona\",\n \"selectedAll\": \"Tutti gli elementi selezionati.\",\n \"selectedCount\": \"{count, plural, =0 {Nessun elemento selezionato} one {# elemento selezionato} other {# elementi selezionati}}.\",\n \"selectedItem\": \"{item} selezionato.\"\n}\n","{\n \"deselectedItem\": \"{item} が選択されていません。\",\n \"longPressToSelect\": \"長押しして選択モードを開きます。\",\n \"select\": \"選択\",\n \"selectedAll\": \"すべての項目を選択しました。\",\n \"selectedCount\": \"{count, plural, =0 {項目が選択されていません} one {# 項目を選択しました} other {# 項目を選択しました}}。\",\n \"selectedItem\": \"{item} を選択しました。\"\n}\n","{\n \"deselectedItem\": \"{item}이(가) 선택되지 않았습니다.\",\n \"longPressToSelect\": \"선택 모드로 들어가려면 길게 누르십시오.\",\n \"select\": \"선택\",\n \"selectedAll\": \"모든 항목이 선택되었습니다.\",\n \"selectedCount\": \"{count, plural, =0 {선택된 항목이 없습니다} one {#개 항목이 선택되었습니다} other {#개 항목이 선택되었습니다}}.\",\n \"selectedItem\": \"{item}이(가) 선택되었습니다.\"\n}\n","{\n \"deselectedItem\": \"{item} nepasirinkta.\",\n \"longPressToSelect\": \"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.\",\n \"select\": \"Pasirinkti\",\n \"selectedAll\": \"Pasirinkti visi elementai.\",\n \"selectedCount\": \"{count, plural, =0 {Nepasirinktas nė vienas elementas} one {Pasirinktas # elementas} other {Pasirinkta elementų: #}}.\",\n \"selectedItem\": \"Pasirinkta: {item}.\"\n}\n","{\n \"deselectedItem\": \"Vienums {item} nav atlasīts.\",\n \"longPressToSelect\": \"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.\",\n \"select\": \"Atlasīt\",\n \"selectedAll\": \"Atlasīti visi vienumi.\",\n \"selectedCount\": \"{count, plural, =0 {Nav atlasīts neviens vienums} one {Atlasīto vienumu skaits: #} other {Atlasīto vienumu skaits: #}}.\",\n \"selectedItem\": \"Atlasīts vienums {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} er ikke valgt.\",\n \"longPressToSelect\": \"Bruk et langt trykk for å gå inn i valgmodus.\",\n \"select\": \"Velg\",\n \"selectedAll\": \"Alle elementer er valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer er valgt} one {# element er valgt} other {# elementer er valgt}}.\",\n \"selectedItem\": \"{item} er valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} niet geselecteerd.\",\n \"longPressToSelect\": \"Druk lang om de selectiemodus te openen.\",\n \"select\": \"Selecteren\",\n \"selectedAll\": \"Alle items geselecteerd.\",\n \"selectedCount\": \"{count, plural, =0 {Geen items geselecteerd} one {# item geselecteerd} other {# items geselecteerd}}.\",\n \"selectedItem\": \"{item} geselecteerd.\"\n}\n","{\n \"deselectedItem\": \"Nie zaznaczono {item}.\",\n \"longPressToSelect\": \"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.\",\n \"select\": \"Zaznacz\",\n \"selectedAll\": \"Wszystkie zaznaczone elementy.\",\n \"selectedCount\": \"{count, plural, =0 {Nie zaznaczono żadnych elementów} one {# zaznaczony element} other {# zaznaczonych elementów}}.\",\n \"selectedItem\": \"Zaznaczono {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Mantenha pressionado para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Prima continuamente para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} neselectat.\",\n \"longPressToSelect\": \"Apăsați lung pentru a intra în modul de selectare.\",\n \"select\": \"Selectare\",\n \"selectedAll\": \"Toate elementele selectate.\",\n \"selectedCount\": \"{count, plural, =0 {Niciun element selectat} one {# element selectat} other {# elemente selectate}}.\",\n \"selectedItem\": \"{item} selectat.\"\n}\n","{\n \"deselectedItem\": \"{item} не выбрано.\",\n \"longPressToSelect\": \"Нажмите и удерживайте для входа в режим выбора.\",\n \"select\": \"Выбрать\",\n \"selectedAll\": \"Выбраны все элементы.\",\n \"selectedCount\": \"{count, plural, =0 {Нет выбранных элементов} one {# элемент выбран} other {# элементов выбрано}}.\",\n \"selectedItem\": \"{item} выбрано.\"\n}\n","{\n \"deselectedItem\": \"Nevybraté položky: {item}.\",\n \"longPressToSelect\": \"Dlhším stlačením prejdite do režimu výberu.\",\n \"select\": \"Vybrať\",\n \"selectedAll\": \"Všetky vybraté položky.\",\n \"selectedCount\": \"{count, plural, =0 {Žiadne vybraté položky} one {# vybratá položka} other {Počet vybratých položiek:#}}.\",\n \"selectedItem\": \"Vybraté položky: {item}.\"\n}\n","{\n \"deselectedItem\": \"Element {item} ni izbran.\",\n \"longPressToSelect\": \"Za izbirni način pritisnite in dlje časa držite.\",\n \"select\": \"Izberite\",\n \"selectedAll\": \"Vsi elementi so izbrani.\",\n \"selectedCount\": \"{count, plural, =0 {Noben element ni izbran} one {# element je izbran} other {# elementov je izbranih}}.\",\n \"selectedItem\": \"Element {item} je izbran.\"\n}\n","{\n \"deselectedItem\": \"{item} nije izabrano.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u režim biranja.\",\n \"select\": \"Izaberite\",\n \"selectedAll\": \"Izabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije izabrana nijedna stavka} one {Izabrana je # stavka} other {Izabrano je # stavki}}.\",\n \"selectedItem\": \"{item} je izabrano.\"\n}\n","{\n \"deselectedItem\": \"{item} ej markerat.\",\n \"longPressToSelect\": \"Tryck länge när du vill öppna väljarläge.\",\n \"select\": \"Markera\",\n \"selectedAll\": \"Alla markerade objekt.\",\n \"selectedCount\": \"{count, plural, =0 {Inga markerade objekt} one {# markerat objekt} other {# markerade objekt}}.\",\n \"selectedItem\": \"{item} markerat.\"\n}\n","{\n \"deselectedItem\": \"{item} seçilmedi.\",\n \"longPressToSelect\": \"Seçim moduna girmek için uzun basın.\",\n \"select\": \"Seç\",\n \"selectedAll\": \"Tüm ögeler seçildi.\",\n \"selectedCount\": \"{count, plural, =0 {Hiçbir öge seçilmedi} one {# öge seçildi} other {# öge seçildi}}.\",\n \"selectedItem\": \"{item} seçildi.\"\n}\n","{\n \"deselectedItem\": \"{item} не вибрано.\",\n \"longPressToSelect\": \"Виконайте довге натиснення, щоб перейти в режим вибору.\",\n \"select\": \"Вибрати\",\n \"selectedAll\": \"Усі елементи вибрано.\",\n \"selectedCount\": \"{count, plural, =0 {Жодних елементів не вибрано} one {# елемент вибрано} other {Вибрано елементів: #}}.\",\n \"selectedItem\": \"{item} вибрано.\"\n}\n","{\n \"deselectedItem\": \"未选择 {item}。\",\n \"longPressToSelect\": \"长按以进入选择模式。\",\n \"select\": \"选择\",\n \"selectedAll\": \"已选择所有项目。\",\n \"selectedCount\": \"{count, plural, =0 {未选择项目} one {已选择 # 个项目} other {已选择 # 个项目}}。\",\n \"selectedItem\": \"已选择 {item}。\"\n}\n","{\n \"deselectedItem\": \"未選取「{item}」。\",\n \"longPressToSelect\": \"長按以進入選擇模式。\",\n \"select\": \"選取\",\n \"selectedAll\": \"已選取所有項目。\",\n \"selectedCount\": \"{count, plural, =0 {未選取任何項目} one {已選取 # 個項目} other {已選取 # 個項目}}。\",\n \"selectedItem\": \"已選取「{item}」。\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport type {ListState} from '@react-stately/list';\n\ninterface ListMapShared {\n id: string,\n onAction: (key: Key) => void\n}\n\n// Used to share:\n// id of the list and onAction between useList, useListItem, and useListSelectionCheckbox\nexport const listMap = new WeakMap, ListMapShared>();\n\nexport function getRowId(state: ListState, key: Key) {\n let {id} = listMap.get(state);\n if (!id) {\n throw new Error('Unknown list');\n }\n\n return `${id}-${normalizeKey(key)}`;\n}\n\nexport function normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n KeyboardDelegate,\n MultipleSelection\n} from '@react-types/shared';\nimport {filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {listMap} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useGridSelectionAnnouncement, useHighlightSelectionDescription} from '@react-aria/grid';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface GridListProps extends CollectionBase, MultipleSelection {\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\nexport interface AriaGridListProps extends GridListProps, DOMProps, AriaLabelingProps {}\n\nexport interface AriaGridListOptions extends Omit, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList(props: AriaGridListOptions, state: ListState, ref: RefObject): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n onAction\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate: keyboardDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace'\n });\n\n let id = useId();\n listMap.set(state, {id, onAction});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n state.collection.size === 0 ? {} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, Node as RSNode} from '@react-types/shared';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {getRowId, listMap} from './utils';\nimport {isFocusVisible} from '@react-aria/interactions';\nimport type {ListState} from '@react-stately/list';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {KeyboardEvent as ReactKeyboardEvent, RefObject} from 'react';\nimport {SelectableItemStates, useSelectableItem} from '@react-aria/selection';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaGridListItemOptions {\n /** An object representing the list item. Contains all the relevant information that makes up the list row. */\n node: RSNode,\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes,\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes,\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem(props: AriaGridListItemOptions, state: ListState, ref: RefObject): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {\n node,\n isVirtualized,\n shouldSelectOnPressUp\n } = props;\n\n let {direction} = useLocale();\n let {onAction} = listMap.get(state);\n let descriptionId = useSlotId();\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (!ref.current.contains(document.activeElement)) {\n focusSafely(ref.current);\n }\n };\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp,\n onAction: onAction ? () => onAction(node.key) : undefined,\n focus\n });\n\n let onKeyDown = (e: ReactKeyboardEvent) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n switch (e.key) {\n case 'ArrowLeft': {\n // Find the next focusable element within the row.\n let focusable = direction === 'rtl'\n ? walker.nextNode() as FocusableElement\n : walker.previousNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n let focusable = direction === 'rtl'\n ? walker.previousNode() as FocusableElement\n : walker.nextNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && ref.current.contains(e.target as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = (e) => {\n if (e.target !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let rowProps: DOMAttributes = mergeProps(itemProps, {\n role: 'row',\n onKeyDownCapture: onKeyDown,\n onFocus,\n 'aria-label': node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key) ? state.selectionManager.isSelected(node.key) : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby': descriptionId && node.textValue ? `${getRowId(state, node.key)} ${descriptionId}` : undefined,\n id: getRowId(state, node.key)\n });\n\n if (isVirtualized) {\n rowProps['aria-rowindex'] = node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n return {\n rowProps,\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridSelectionCheckboxProps, GridSelectionCheckboxAria, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {getRowId} from './utils';\nimport type {ListState} from '@react-stately/list';\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid list.\n * @param props - Props for the selection checkbox.\n * @param state - State of the list, as returned by `useListState`.\n */\nexport function useGridListSelectionCheckbox(props: AriaGridSelectionCheckboxProps, state: ListState): GridSelectionCheckboxAria {\n let {key} = props;\n const {checkboxProps} = useGridSelectionCheckbox(props, state as any);\n\n return {\n checkboxProps: {\n ...checkboxProps,\n 'aria-labelledby': `${checkboxProps.id} ${getRowId(state, key)}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DropTarget, DropTargetDelegate, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[],\n validRect: Rect\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout extends Layout> implements KeyboardDelegate, DropTargetDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection>, key: Key) => number;\n protected layoutInfos: Map;\n protected layoutNodes: Map;\n protected contentSize: Size;\n collection: Collection>;\n disabledKeys: Set = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n protected lastValidRect: Rect;\n protected validRect: Rect;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n this.lastValidRect = new Rect();\n this.validRect = new Rect();\n this.contentSize = new Size();\n }\n\n getLayoutInfo(key: Key) {\n let res = this.layoutInfos.get(key);\n\n // If the layout info wasn't found, it might be outside the bounds of the area that we've\n // computed layout for so far. This can happen when accessing a random key, e.g pressing Home/End.\n // Compute the full layout and try again.\n if (!res && this.validRect.area < this.contentSize.area && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = new Rect(0, 0, Infinity, Infinity);\n this.rootNodes = this.buildCollection();\n this.validRect = new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n res = this.layoutInfos.get(key);\n }\n\n return res;\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n // If layout hasn't yet been done for the requested rect, union the\n // new rect with the existing valid rect, and recompute.\n if (!this.validRect.containsRect(rect) && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = this.validRect.union(rect);\n this.rootNodes = this.buildCollection();\n }\n\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky || this.virtualizer.isPersistedKey(node.layoutInfo.key);\n }\n\n protected shouldInvalidateEverything(invalidationContext: InvalidationContext, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n return invalidationContext.sizeChanged;\n }\n\n validate(invalidationContext: InvalidationContext, unknown>) {\n this.collection = this.virtualizer.collection;\n\n // Reset valid rect if we will have to invalidate everything.\n // Otherwise we can reuse cached layout infos outside the current visible rect.\n this.invalidateEverything = this.shouldInvalidateEverything(invalidationContext);\n if (this.invalidateEverything) {\n this.lastValidRect = this.validRect;\n this.validRect = this.virtualizer.getVisibleRect();\n }\n\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection && this.collection !== this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n this.invalidateEverything = false;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let skipped = 0;\n let nodes = [];\n for (let node of this.collection) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (node.type === 'item' && y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n\n if (node.type === 'item' && y > this.validRect.maxY) {\n y += (this.collection.size - (nodes.length + skipped)) * rowHeight;\n break;\n }\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n isValid(node: Node, y: number) {\n let cached = this.layoutNodes.get(node.key);\n return (\n !this.invalidateEverything &&\n cached &&\n cached.node === node &&\n y === (cached.header || cached.layoutInfo).rect.y &&\n cached.layoutInfo.rect.intersects(this.lastValidRect) &&\n cached.validRect.containsRect(cached.layoutInfo.rect.intersection(this.validRect))\n );\n }\n\n buildChild(node: Node, x: number, y: number): LayoutNode {\n if (this.isValid(node, y)) {\n return this.layoutNodes.get(node.key);\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let skipped = 0;\n let children = [];\n for (let child of node.childNodes) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n\n if (y > this.validRect.maxY) {\n // Estimate the remaining height for rows that we don't need to layout right now.\n y += ([...node.childNodes].length - (children.length + skipped)) * rowHeight;\n break;\n }\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children,\n validRect: layoutInfo.rect.intersection(this.validRect)\n };\n }\n\n buildItem(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || node !== previousLayoutNode.node || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n // allow overflow so the focus ring/selection ring can extend outside to overlap with the adjacent items borders\n layoutInfo.allowOverflow = true;\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo,\n validRect: layoutInfo.rect\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by reseting validRect.\n n.validRect = new Rect();\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey(): Key | null {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey(): Key | null {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget {\n x += this.virtualizer.visibleRect.x;\n y += this.virtualizer.visibleRect.y;\n\n let key = this.virtualizer.keyAtPoint(new Point(x, y));\n if (key == null || this.collection.size === 0) {\n return {type: 'root'};\n }\n\n let layoutInfo = this.getLayoutInfo(key);\n let rect = layoutInfo.rect;\n let target: DropTarget = {\n type: 'item',\n key: layoutInfo.key,\n dropPosition: 'on'\n };\n\n // If dropping on the item isn't accepted, try the target before or after depending on the y position.\n // Otherwise, if dropping on the item is accepted, still try the before/after positions if within 10px\n // of the top or bottom of the item.\n if (!isValidDropTarget(target)) {\n if (y <= rect.y + rect.height / 2 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n } else if (y <= rect.y + 10 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (y >= rect.maxY - 10 && isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n\n return target;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class ListCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>) {\n this.iterable = nodes;\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && node.type === 'section') {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {ListCollection} from './ListCollection';\nimport {MultipleSelectionStateProps, SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface ListProps extends CollectionBase, MultipleSelectionStateProps {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface ListState {\n /** A collection of items in the list. */\n collection: Collection>,\n\n /** A set of items that are disabled. */\n disabledKeys: Set,\n\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for list-like components. Handles building a collection\n * of items from props, and manages multiple selection state.\n */\nexport function useListState(props: ListProps): ListState {\n let {filter} = props;\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let factory = nodes => filter ? new ListCollection(filter(nodes)) : new ListCollection(nodes as Iterable>);\n let context = useMemo(() => ({suppressTextValueWarning: props.suppressTextValueWarning}), [props.suppressTextValueWarning]);\n\n let collection = useCollection(props, factory, context, [filter]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collection, selectionState.focusedKey]);\n\n return {\n collection,\n disabledKeys,\n selectionManager: new SelectionManager(collection, selectionState)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, SingleSelection} from '@react-types/shared';\nimport {Key, useMemo} from 'react';\nimport {ListState, useListState} from './useListState';\nimport {Node} from '@react-types/shared';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface SingleSelectListProps extends CollectionBase, Omit {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface SingleSelectListState extends ListState {\n /** The key for the currently selected item. */\n readonly selectedKey: Key,\n\n /** Sets the selected key. */\n setSelectedKey(key: Key): void,\n\n /** The value of the currently selected item. */\n readonly selectedItem: Node\n}\n\n/**\n * Provides state management for list-like components with single selection.\n * Handles building a collection of items from props, and manages selection state.\n */\nexport function useSingleSelectListState(props: SingleSelectListProps): SingleSelectListState {\n let [selectedKey, setSelectedKey] = useControlledState(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange);\n let selectedKeys = useMemo(() => selectedKey != null ? [selectedKey] : [], [selectedKey]);\n let {collection, disabledKeys, selectionManager} = useListState({\n ...props,\n selectionMode: 'single',\n disallowEmptySelection: true,\n allowDuplicateSelectionEvents: true,\n selectedKeys,\n onSelectionChange: (keys: Set) => {\n let key = keys.values().next().value;\n\n // Always fire onSelectionChange, even if the key is the same\n // as the current key (useControlledState does not).\n if (key === selectedKey && props.onSelectionChange) {\n props.onSelectionChange(key);\n }\n\n setSelectedKey(key);\n }\n });\n\n let selectedItem = selectedKey != null\n ? collection.getItem(selectedKey)\n : null;\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n selectedKey,\n setSelectedKey,\n selectedItem\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: DOMAttributes | LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, HelpTextProps, Validation} from '@react-types/shared';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\nexport interface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaProgressBarProps} from '@react-types/progress';\nimport {clamp, filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {useLabel} from '@react-aria/label';\nimport {useNumberFormatter} from '@react-aria/i18n';\n\nexport interface ProgressBarAria {\n /** Props for the progress bar container element. */\n progressBarProps: DOMAttributes,\n /** Props for the progress bar's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a progress bar component.\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n */\nexport function useProgressBar(props: AriaProgressBarProps): ProgressBarAria {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n valueLabel,\n isIndeterminate,\n formatOptions = {\n style: 'percent'\n }\n } = props;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Progress bar is not an HTML input element so it\n // shouldn't be labeled by a
    \n );\n}\n\nlet _Label = React.forwardRef(Label);\nexport {_Label as Label};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useStyleProps} from '@react-spectrum/utils';\nimport {Flex} from '@react-spectrum/layout';\nimport {HelpText} from './HelpText';\nimport {Label} from './Label';\nimport {LabelPosition} from '@react-types/shared';\nimport labelStyles from '@adobe/spectrum-css-temp/components/fieldlabel/vars.css';\nimport {mergeProps, useId} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport {SpectrumFieldProps} from '@react-types/label';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction Field(props: SpectrumFieldProps, ref: RefObject) {\n let formProps = useFormProps(props);\n let isInForm = formProps !== props;\n props = formProps;\n let {\n label,\n labelPosition = 'top' as LabelPosition,\n labelAlign,\n isRequired,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName,\n validationState,\n description,\n errorMessage,\n isDisabled,\n showErrorIcon,\n contextualHelp,\n children,\n labelProps,\n // Not every component that uses supports help text.\n descriptionProps = {},\n errorMessageProps = {},\n elementType,\n wrapperClassName,\n wrapperProps = {},\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let hasHelpText = !!description || errorMessage && validationState === 'invalid';\n let contextualHelpId = useId();\n\n let labelWrapperClass = classNames(\n labelStyles,\n 'spectrum-Field',\n {\n 'spectrum-Field--positionTop': labelPosition === 'top',\n 'spectrum-Field--positionSide': labelPosition === 'side',\n 'spectrum-Field--alignEnd': labelAlign === 'end',\n 'spectrum-Field--hasContextualHelp': !!props.contextualHelp\n },\n styleProps.className,\n wrapperClassName\n );\n\n children = React.cloneElement(children, mergeProps(children.props, {\n className: classNames(\n labelStyles,\n 'spectrum-Field-field'\n )\n }));\n\n let renderHelpText = () => (\n \n );\n\n let renderChildren = () => {\n if (labelPosition === 'side') {\n return (\n \n {children}\n {hasHelpText && renderHelpText()}\n \n );\n }\n\n return (\n <>\n {children}\n {hasHelpText && renderHelpText()}\n \n );\n };\n\n let labelAndContextualHelp = (\n <>\n {label && (\n \n {label}\n \n )}\n {label && contextualHelp &&\n \n {contextualHelp}\n \n }\n \n );\n\n // Need to add an extra wrapper for the label and contextual help if labelPosition is side,\n // so that the table layout works inside forms.\n if (isInForm && labelPosition === 'side' && label && contextualHelp) {\n labelAndContextualHelp = (\n
    \n
    \n {labelAndContextualHelp}\n
    \n
    \n );\n }\n\n return (\n }\n className={labelWrapperClass}>\n {labelAndContextualHelp}\n {renderChildren()}\n \n );\n}\n\nlet _Field = React.forwardRef(Field);\nexport {_Field as Field};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\nimport {ValidationState} from '@react-types/shared';\n\nexport interface CheckboxGroupState {\n /** Current selected values. */\n readonly value: readonly string[],\n\n /** Whether the checkbox group is disabled. */\n readonly isDisabled: boolean,\n\n /** Whether the checkbox group is read only. */\n readonly isReadOnly: boolean,\n\n /** Returns whether the given value is selected. */\n isSelected(value: string): boolean,\n\n /** Sets the selected values. */\n setValue(value: string[]): void,\n\n /** Adds a value to the set of selected values. */\n addValue(value: string): void,\n\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void,\n\n /** Toggles a value in the set of selected values. */\n toggleValue(value: string): void,\n\n /** The current validation state of the checkbox group. */\n validationState: ValidationState\n}\n\n/**\n * Provides state management for a checkbox group component. Provides a name for the group,\n * and manages selection and focus state.\n */\nexport function useCheckboxGroupState(props: CheckboxGroupProps = {}): CheckboxGroupState {\n let [selectedValues, setValue] = useControlledState(props.value, props.defaultValue || [], props.onChange);\n\n const state: CheckboxGroupState = {\n value: selectedValues,\n setValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n\n setValue(value);\n },\n isDisabled: props.isDisabled || false,\n isReadOnly: props.isReadOnly || false,\n isSelected(value) {\n return selectedValues.includes(value);\n },\n addValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n }\n },\n removeValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n }\n },\n toggleValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n } else {\n setValue(selectedValues.concat(value));\n }\n },\n validationState: props.validationState\n };\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport React from 'react';\n\nexport const CheckboxGroupContext = React.createContext(null);\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport CheckmarkSmall from '@spectrum-icons/ui/CheckmarkSmall';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport DashSmall from '@spectrum-icons/ui/DashSmall';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport React, {forwardRef, useContext, useRef} from 'react';\nimport {SpectrumCheckboxProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/checkbox/vars.css';\nimport {useCheckbox, useCheckboxGroupItem} from '@react-aria/checkbox';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction Checkbox(props: SpectrumCheckboxProps, ref: FocusableRef) {\n let originalProps = props;\n props = useProviderProps(props);\n let {\n isIndeterminate = false,\n isEmphasized = false,\n isDisabled = false,\n autoFocus,\n children,\n validationState,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n let {inputProps} = groupState\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ? useCheckboxGroupItem({\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires ignore).\n // @ts-ignore\n value: props.value,\n // Only pass isRequired and validationState to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n validationState: originalProps.validationState\n }, groupState, inputRef)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n : useCheckbox(props, useToggleState(props), inputRef);\n\n let markIcon = isIndeterminate\n ? \n : ;\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(`${key} is unsupported on individual elements within a . Please apply these props to the group instead.`);\n }\n }\n if (props.value == null) {\n console.warn('A element within a requires a `value` property.');\n }\n }\n\n return (\n \n \n \n \n {markIcon}\n {children && (\n \n {children}\n \n )}\n \n );\n}\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\nexport {_Checkbox as Checkbox};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport {classNames, useDOMRef} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {Provider, useProviderProps} from '@react-spectrum/provider';\nimport React from 'react';\nimport {SpectrumCheckboxGroupProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/fieldgroup/vars.css';\nimport {useCheckboxGroup} from '@react-aria/checkbox';\nimport {useCheckboxGroupState} from '@react-stately/checkbox';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction CheckboxGroup(props: SpectrumCheckboxGroupProps, ref: DOMRef) {\n props = useProviderProps(props);\n props = useFormProps(props);\n let {\n isEmphasized,\n children,\n orientation = 'vertical',\n validationState\n } = props;\n let domRef = useDOMRef(ref);\n let state = useCheckboxGroupState(props);\n let {labelProps, groupProps, descriptionProps, errorMessageProps} = useCheckboxGroup(props, state);\n\n return (\n \n \n \n \n {children}\n \n \n \n
    \n );\n}\n\n/**\n * A CheckboxGroup allows users to select one or more items from a list of choices.\n */\nconst _CheckboxGroup = React.forwardRef(CheckboxGroup);\nexport {_CheckboxGroup as CheckboxGroup};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronLeftMedium;\n\nvar _ChevronLeftMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronLeftMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronLeftMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronLeftMedium.ChevronLeftMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronLeftMedium = ChevronLeftMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronLeftMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z\"\n }));\n}\n\nChevronLeftMedium.displayName = 'ChevronLeftMedium';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightMedium;\n\nvar _ChevronRightMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronRightMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.ChevronRightMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightMedium = ChevronRightMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z\"\n }));\n}\n\nChevronRightMedium.displayName = 'ChevronRightMedium';","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ListGripper;\n\nvar _ListGripper = require(\"@adobe/react-spectrum-ui/dist/ListGripper\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ListGripper(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ListGripper.ListGripper, null));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListGripper = ListGripper;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n@adobe/react-spectrum-ui (c) by Adobe\n\n@adobe/react-spectrum-ui is licensed under a\nCreative Commons Attribution-NoDerivatives 4.0 International License.\n\nYou should have received a copy of the license along with this\nwork. If not, see .\n*/\nfunction ListGripper({\n scale = 'M',\n ...props\n}) {\n return /*#__PURE__*/_react.default.createElement(\"svg\", props, scale === 'L' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"1.375\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"1.375\",\n r: \"1.25\"\n })), scale === 'M' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"1.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"1.5\",\n r: \"1\"\n })));\n}\n\nListGripper.displayName = 'ListGripper';","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n*/\n\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-85);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-listview-item-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width));\n --spectrum-listview-row-sticky-focus-indicator-width: 3px;\n --spectrum-listview-item-line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n --spectrum-listview-item-title-text-color: var(--spectrum-global-color-gray-800);\n --spectrum-listview-item-title-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-listview-item-description-text-color: var(--spectrum-global-color-gray-700);\n --spectrum-listview-item-description-text-size: var(--spectrum-global-dimension-font-size-75);\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-listview-border-width);\n border-radius: var(--spectrum-listview-border-radius);\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n user-select: none;\n\n .react-spectrum-ListView-row {\n outline: none;\n }\n\n &.react-spectrum-ListView--emphasized {\n &.react-spectrum-ListView--dropTarget {\n .react-spectrum-ListViewItem:not(.is-selected) {\n /* shift bottom border inwards so it doesn't overlap the root drop target */\n &:after {\n inset-inline-start: 1px;\n inset-inline-end: 1px;\n }\n }\n }\n .react-spectrum-ListViewItem {\n /* common pseudoelement for box shadows */\n &:after {\n content: '';\n display: block;\n position: absolute;\n inset-inline-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inset-block-start: 0;\n z-index: 3;\n pointer-events: none;\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-selected);\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-selected-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n\n /* Negative block start causes borders to actually be shared between items. Only works if we allow item overflow to be visible, like card focus rings. */\n &:after {\n inset-block-start: -1px;\n box-shadow: inset 1px 0 0 0 var(--spectrum-global-color-blue-500), inset -1px 0 0 0 var(--spectrum-global-color-blue-500), inset 0 -1px 0 0 var(--spectrum-global-color-blue-500), inset 0 1px 0 0 var(--spectrum-global-color-blue-500);\n }\n }\n\n /* First item in the ListView should not have a border that extends outside of itself to the top, it doesn't need to share a border space. */\n &.react-spectrum-ListViewItem--firstRow {\n &.is-selected {\n &:after {\n inset-block-start: 0px;\n }\n }\n }\n }\n\n &:not(.react-spectrum-ListView--quiet) {\n .react-spectrum-ListViewItem {\n /* Box shadow for bottom border for non-selected rows that aren't immediately above a selected row (grey border bottom). */\n /* Also omit bottom border for last row if the total content height of the ListView is equal or greater than the height of the container. This avoids overlapping bottom borders. */\n &:not(.is-selected):not(.is-next-selected):not(.react-spectrum-ListViewItem--isFlushBottom) {\n &:after {\n box-shadow: inset 0 -1px 0 0 var(--spectrum-table-cell-border-color);\n }\n }\n\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem {\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-end-radius: 0;\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-end-radius: 0;\n }\n }\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n }\n }\n }\n }\n &.react-spectrum-ListView--wrap .react-spectrum-ListViewItem {\n & .react-spectrum-ListViewItem-content,\n & .react-spectrum-ListViewItem-description {\n white-space: normal;\n height: auto;\n }\n }\n}\n\n.react-spectrum-ListView-row {\n cursor: default;\n /* Not sticky because listview is a single column. If we want to make sticky, will need a cell wrapper like TableView for display: inline-block */\n &:focus-ring {\n &:before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: var(--spectrum-listview-row-sticky-focus-indicator-width);\n z-index: 4;\n background: var(--spectrum-selectlist-option-focus-indicator-color);\n }\n }\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n border-radius: 0;\n\n .react-spectrum-ListView-row {\n &.round-tops {\n &:focus-ring {\n &:before {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.round-bottoms {\n &:focus-ring {\n &:before {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n }\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-listview-item-line-height);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-160);\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n min-height: var(--spectrum-global-dimension-size-500);\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-down);\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n }\n\n &.is-disabled {\n &, .react-spectrum-ListViewItem-content, .react-spectrum-ListViewItem-description {\n color: var(--spectrum-alias-text-color-disabled);\n }\n }\n\n &.has-checkbox {\n /* have to eliminate vertical padding to allow proper vertical alignment */\n padding-top: 0px;\n padding-bottom: 0px;\n }\n\n .react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"draghandle checkbox thumbnail content actions actionmenu chevron\"\n \"draghandle checkbox thumbnail description actions actionmenu chevron\";\n align-items: center;\n }\n\n .react-spectrum-ListViewItem-draghandle-container {\n grid-area: draghandle;\n width: var(--spectrum-global-dimension-size-250);\n display: flex;\n align-self: stretch;\n justify-self: stretch;\n justify-content: center;\n padding: var(--spectrum-global-dimension-size-25);\n padding-inline-start: var(--spectrum-global-dimension-size-40);\n\n\n .react-spectrum-ListViewItem-draghandle-button {\n width: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--spectrum-alias-border-radius-regular);\n\n &:focus-ring {\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus);\n outline: none;\n }\n }\n }\n\n .react-spectrum-ListViewItem-checkboxWrapper {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n transition-duration: 160ms;\n display: flex;\n }\n\n .react-spectrum-ListViewItem-checkbox {\n min-height: 0;\n height: 100%;\n\n > span {\n margin: 0;\n }\n }\n\n .react-spectrum-ListViewItem-thumbnail {\n grid-area: thumbnail;\n justify-items: center;\n padding-inline-end: var(--spectrum-global-dimension-size-100);\n display: flex;\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n align-items: center;\n justify-content: center;\n\n > img {\n width: unset;\n height: 100%;\n }\n }\n\n .react-spectrum-ListViewItem-content,\n .react-spectrum-ListViewItem-description {\n flex-grow: 1;\n\n /* truncate text with ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: var(--spectrum-listview-item-line-height);\n }\n\n .react-spectrum-ListViewItem-content {\n grid-area: content;\n color: var(--spectrum-listview-item-title-text-color);\n font-size: var(--spectrum-listview-item-title-text-size);\n }\n\n &:not(.react-spectrum-ListView--hasDescription) {\n .react-spectrum-ListViewItem-content {\n grid-area: content / description;\n }\n }\n\n .react-spectrum-ListViewItem-description {\n grid-area: description;\n color: var(--spectrum-listview-item-description-text-color);\n font-size: var(--spectrum-listview-item-description-text-size);\n }\n\n .react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n .react-spectrum-ListViewItem-actionmenu {\n grid-area: actionmenu;\n }\n\n .react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n padding-inline-start: var(--spectrum-global-dimension-size-75);\n display: none;\n transition: color var(--spectrum-global-animation-duration-100);\n\n &.is-disabled {\n color: var(--spectrum-alias-icon-color-disabled);\n }\n }\n\n &.react-spectrum-ListViewItem-dragPreview {\n width: var(--spectrum-global-dimension-size-2400);\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n\n &.react-spectrum-ListViewItem-dragPreview--compact {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--spacious {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n }\n\n .react-spectrum-ListViewItem-grid {\n grid-template-areas:\n \"thumbnail content . badge\"\n \"thumbnail description . badge\";\n grid-template-columns: auto auto 1fr auto;\n }\n\n .react-spectrum-ListViewItem-badge {\n grid-area: badge;\n color: white;\n background: var(--spectrum-global-color-blue-400);\n padding: 0 8px;\n border-radius: var(--spectrum-alias-border-radius-regular);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--multiple {\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n z-index: -1;\n top: 4px;\n inset-inline-start: 4px;\n width: 100%;\n height: 100%;\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n }\n }\n\n .react-spectrum-ListViewItem-actions,\n .react-spectrum-ListViewItem-actionmenu {\n display: none;\n }\n }\n}\n.react-spectrum-ListView:not(.react-spectrum-ListView--quiet) {\n /* give first and last items border-radius to match listview container */\n\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-end-radius: 0;\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-end-radius: 0;\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n}\n\n.react-spectrum-ListView {\n /* When we can use subgrid, get rid of this. */\n &.react-spectrum-ListView--hasAnyChildren {\n .react-spectrum-ListViewItem-parentIndicator {\n display: inline-block;\n visibility: hidden;\n }\n .react-spectrum-ListViewItem-parentIndicator--hasChildItems {\n visibility: visible;\n }\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n.react-spectrum-ListView--draggable .react-spectrum-ListViewItem {\n padding-inline-start: 0;\n\n .react-spectrum-ListViewItem-checkbox {\n input {\n inset-inline-start: 0;\n }\n }\n}\n\n.react-spectrum-ListViewItem--dropTarget {\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow:\n inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus);\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--dropTarget {\n border-color: var(--spectrum-global-color-blue-500);\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n\n /* Add border to quiet ListView only when it is a drop target */\n &.react-spectrum-ListView--quiet {\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus), 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &.react-spectrum-ListView-centeredWrapper--loadingMore {\n padding-top: var(--spectrum-global-dimension-size-50);\n }\n}\n\n.react-spectrum-ListViewInsertionIndicator {\n width: calc(100% - (2 * var(--spectrum-dropindicator-circle-size)));\n inset-inline-start: var(--spectrum-dropindicator-circle-size);\n position: absolute;\n outline: none;\n\n &.react-spectrum-ListViewInsertionIndicator--dropTarget {\n background: var(--spectrum-dropindicator-border-color);\n border-bottom: 2px solid var(--spectrum-dropindicator-border-color);\n\n &:before {\n left: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:after {\n right: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: calc(var(--spectrum-dropindicator-circle-size) * -1 / 2 + var(--spectrum-dropindicator-border-size) / 2);\n width: var(--spectrum-dropindicator-circle-size);\n height: var(--spectrum-dropindicator-circle-size);\n border-radius: 50%;\n border: var(--spectrum-dropindicator-border-size) solid;\n box-sizing: border-box;\n border-color: var(--spectrum-dropindicator-circle-border-color);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n z-index: 5;\n }\n }\n}\n\n.react-spectrum-ListViewItem-checkbox--enter {\n opacity: 0.01;\n max-width: 0px;\n}\n.react-spectrum-ListViewItem-checkbox--enterActive {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exit {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exitActive {\n opacity: 0.01;\n max-width: 0px;\n}\n\n.react-spectrum-ListView {\n &:focus-ring {\n border-color: var(--spectrum-global-color-blue-500);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n","import {classNames} from '@react-spectrum/utils';\nimport {ItemDropTarget} from '@react-types/shared';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface InsertionIndicatorProps {\n target: ItemDropTarget,\n isPresentationOnly?: boolean\n}\n\nexport default function InsertionIndicator(props: InsertionIndicatorProps) {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n const {target, isPresentationOnly} = props;\n\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator(props, dropState, ref);\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let isDropTarget = dropState.isDropTarget(target);\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n {!isPresentationOnly &&\n
    \n }\n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider, useHasChild} from '@react-spectrum/utils';\nimport {CSSTransition} from 'react-transition-group';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableItemResult} from '@react-aria/dnd';\nimport {DropTarget, Node} from '@react-types/shared';\nimport {FocusRing, useFocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {isFocusVisible as isGlobalFocusVisible, useHover} from '@react-aria/interactions';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useContext, useRef} from 'react';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useGridListItem, useGridListSelectionCheckbox} from '@react-aria/gridlist';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface ListViewItemProps {\n item: Node,\n isEmphasized: boolean,\n hasActions: boolean\n}\n\nexport function ListViewItem(props: ListViewItemProps) {\n let {\n item,\n isEmphasized\n } = props;\n let {\n state,\n dragState,\n dropState,\n isListDraggable,\n isListDroppable,\n layout,\n dragAndDropHooks,\n loadingState\n } = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {\n rowProps,\n gridCellProps,\n isPressed,\n descriptionProps,\n isSelected,\n isDisabled,\n allowsSelection,\n hasAction\n } = useGridListItem({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isListDraggable\n }, state, rowRef);\n let isDroppable = isListDroppable && !isDisabled;\n let {hoverProps, isHovered} = useHover({isDisabled: !allowsSelection && !hasAction});\n\n let {checkboxProps} = useGridListSelectionCheckbox({key: item.key}, state);\n let hasDescription = useHasChild(`.${listStyles['react-spectrum-ListViewItem-description']}`, rowRef);\n\n let draggableItem: DraggableItemResult;\n if (isListDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef();\n if (isListDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef();\n let {buttonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let chevron = direction === 'ltr'\n ? (\n \n )\n : (\n \n );\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n const mergedProps = mergeProps(\n rowProps,\n draggableItem?.dragProps,\n dropProps,\n hoverProps,\n focusWithinProps,\n focusProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n let isFirstRow = item.prevKey == null;\n let isLastRow = item.nextKey == null;\n // Figure out if the ListView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected and we can get rid of the bottom border if it isn't selected to avoid border overlap\n // with bottom border\n let isFlushWithContainerBottom = false;\n if (isLastRow && loadingState !== 'loadingMore') {\n if (layout.getContentSize()?.height >= layout.virtualizer?.getVisibleRect().height) {\n isFlushWithContainerBottom = true;\n }\n }\n // previous item isn't selected\n // and the previous item isn't focused or, if it is focused, then if focus globally isn't visible or just focus isn't in the listview\n let roundTops = (!state.selectionManager.isSelected(item.prevKey)\n && (state.selectionManager.focusedKey !== item.prevKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n let roundBottoms = (!state.selectionManager.isSelected(item.nextKey)\n && (state.selectionManager.focusedKey !== item.nextKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n\n let content = typeof item.rendered === 'string' ? {item.rendered} : item.rendered;\n if (isDisabled) {\n content = {content};\n }\n\n return (\n \n \n \n {isListDraggable &&\n
    \n {!isDisabled &&\n \n }\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem-draghandle-button'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n \n
    \n \n }\n \n }\n {isListDroppable && !dropIndicator?.isHidden &&\n
    \n }\n \n
    \n \n
    \n \n \n {content}\n \n {chevron}\n \n \n \n
    \n \n );\n}\n","import {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport default function RootDropIndicator() {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator({\n target: {type: 'root'}\n }, dropState, ref);\n let isDropTarget = dropState.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n
    \n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {classNames, SlotProvider} from '@react-spectrum/utils';\nimport {Grid} from '@react-spectrum/layout';\nimport {GridNode} from '@react-types/grid';\nimport listStyles from './styles.css';\nimport React from 'react';\nimport type {SpectrumListViewProps} from './ListView';\nimport {Text} from '@react-spectrum/text';\n\ninterface DragPreviewProps {\n item: GridNode,\n itemCount: number,\n itemHeight: number,\n density: SpectrumListViewProps['density']\n}\n\nexport function DragPreview(props: DragPreviewProps) {\n let {\n item,\n itemCount,\n itemHeight,\n density\n } = props;\n\n let isDraggingMultiple = itemCount > 1;\n\n return (\n \n \n \n {typeof item.rendered === 'string' ? {item.rendered} : item.rendered}\n {isDraggingMultiple &&\n
    {itemCount}
    \n }\n \n
    \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridListProps, useGridList} from '@react-aria/gridlist';\nimport {AsyncLoadable, DOMRef, LoadingState, SpectrumSelectionProps, StyleProps} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DroppableCollectionResult} from '@react-aria/dnd';\nimport {filterDOMProps, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing, FocusScope} from '@react-aria/focus';\nimport InsertionIndicator from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './styles.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {Key, ReactElement, useContext, useMemo, useRef, useState} from 'react';\nimport RootDropIndicator from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {useCollator, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\nexport interface SpectrumListViewProps extends AriaGridListProps, StyleProps, SpectrumSelectionProps, Omit {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n /** Whether the ListView should be displayed with a quiet style. */\n isQuiet?: boolean,\n /** The current loading state of the ListView. Determines whether or not the progress circle should be shown. */\n loadingState?: LoadingState,\n /**\n * Sets the text behavior for the row contents.\n * @default 'truncate'\n */\n overflowMode?: 'truncate' | 'wrap',\n /** Sets what the ListView should render when there is no content to display. */\n renderEmptyState?: () => JSX.Element,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionStyle` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the ListView.\n */\n dragAndDropHooks?: DragAndDropHooks['dragAndDropHooks']\n}\n\ninterface ListViewContextValue {\n state: ListState,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n onAction:(key: Key) => void,\n isListDraggable: boolean,\n isListDroppable: boolean,\n layout: ListLayout,\n loadingState: LoadingState\n}\n\nexport const ListViewContext = React.createContext>(null);\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nfunction useListLayout(state: ListState, density: SpectrumListViewProps['density'], overflowMode: SpectrumListViewProps['overflowMode']) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let isEmpty = state.collection.size === 0;\n let layout = useMemo(() =>\n new ListLayout({\n estimatedRowHeight: ROW_HEIGHTS[density][scale],\n padding: 0,\n collator,\n loaderHeight: isEmpty ? null : ROW_HEIGHTS[density][scale]\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n , [collator, scale, density, isEmpty, overflowMode]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\nfunction ListView(props: SpectrumListViewProps, ref: DOMRef) {\n let {\n density = 'regular',\n loadingState,\n onLoadMore,\n isQuiet,\n overflowMode = 'truncate',\n onAction,\n dragAndDropHooks,\n ...otherProps\n } = props;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n let domRef = useDOMRef(ref);\n let state = useListState({\n ...props,\n selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'\n });\n let {collection, selectionManager} = state;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let {styleProps} = useStyleProps(props);\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isListDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection,\n selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n let layout = useListLayout(\n state,\n props.density || 'regular',\n overflowMode\n );\n // !!0 is false, so we can cast size or undefined and they'll be falsy\n layout.allowDisabledKeyFocus = state.selectionManager.disabledBehavior === 'selection' || !!dragState?.draggingKeys.size;\n\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isListDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection,\n selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: layout,\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useGridList({\n ...props,\n isVirtualized: true,\n keyboardDelegate: layout,\n onAction\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = isLoading;\n\n let focusedKey = selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n // wait for layout to get accurate measurements\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(() => {\n if (domRef.current) {\n // 2 is the width of the border which is not part of the box size\n setVerticalScollbarVisible(domRef.current.clientWidth + 2 < domRef.current.offsetWidth);\n setHorizontalScollbarVisible(domRef.current.clientHeight + 2 < domRef.current.offsetHeight);\n }\n });\n\n let hasAnyChildren = useMemo(() => [...collection].some(item => item.hasChildNodes), [collection]);\n\n return (\n \n \n \n \n {(type, item) => {\n if (type === 'item') {\n return (\n <>\n {isListDroppable && collection.getKeyBefore(item.key) == null &&\n \n }\n {isListDroppable &&\n \n }\n \n {isListDroppable &&\n \n }\n \n );\n } else if (type === 'loader') {\n return (\n \n 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n \n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n \n {emptyState}\n \n );\n }\n\n }}\n \n \n \n {DragPreview && isListDraggable &&\n \n {() => {\n let item = state.collection.getItem(dragState.draggedKey);\n let itemCount = dragState.draggingKeys.size;\n let itemHeight = layout.getLayoutInfo(dragState.draggedKey).rect.height;\n return ;\n }}\n \n }\n \n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n 0\n }\n )}>\n
    \n {children}\n
    \n \n );\n}\n\n/**\n * A ListView displays a list of interactive items, and allows a user to navigate, select, or perform an action.\n */\nconst _ListView = React.forwardRef(ListView) as (props: SpectrumListViewProps & {ref?: DOMRef}) => ReactElement;\nexport {_ListView as ListView};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronDownMedium;\n\nvar _ChevronDownMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronDownMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronDownMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.ChevronDownMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronDownMedium = ChevronDownMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronDownMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M11.99 1.51a1 1 0 0 0-1.707-.707L6 5.086 1.717.803A1 1 0 1 0 .303 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a.997.997 0 0 0 .293-.707z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.99 1.01A1 1 0 0 0 8.283.303L5 3.586 1.717.303A1 1 0 1 0 .303 1.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z\"\n }));\n}\n\nChevronDownMedium.displayName = 'ChevronDownMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaListBoxOptions} from '@react-aria/listbox';\nimport {AriaSelectProps} from '@react-types/select';\nimport {chain, filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {DOMAttributes, FocusableElement, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate, useTypeSelect} from '@react-aria/selection';\nimport {SelectState} from '@react-stately/select';\nimport {setInteractionModality} from '@react-aria/interactions';\nimport {useCollator} from '@react-aria/i18n';\nimport {useField} from '@react-aria/label';\nimport {useMenuTrigger} from '@react-aria/menu';\n\nexport interface AriaSelectOptions extends AriaSelectProps {\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface SelectAria {\n /** Props for the label element. */\n labelProps: DOMAttributes,\n\n /** Props for the popup trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the element representing the selected value. */\n valueProps: DOMAttributes,\n\n /** Props for the popup. */\n menuProps: AriaListBoxOptions,\n\n /** Props for the select's description element, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the select's error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a select component.\n * A select displays a collapsible list of options and allows a user to select one of them.\n * @param props - Props for the select.\n * @param state - State for the select, as returned by `useListState`.\n */\nexport function useSelect(props: AriaSelectOptions, state: SelectState, ref: RefObject): SelectAria {\n let {\n keyboardDelegate,\n isDisabled\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let delegate = useMemo(() => keyboardDelegate || new ListKeyboardDelegate(state.collection, state.disabledKeys, null, collator), [keyboardDelegate, state.collection, state.disabledKeys, collator]);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger(\n {\n isDisabled,\n type: 'listbox'\n },\n state,\n ref\n );\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowLeft': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyAbove(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n case 'ArrowRight': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyBelow(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: state.selectionManager,\n onTypeSelect(key) {\n state.setSelectedKey(key);\n }\n });\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n typeSelectProps.onKeyDown = typeSelectProps.onKeyDownCapture;\n delete typeSelectProps.onKeyDownCapture;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let triggerProps = mergeProps(typeSelectProps, menuTriggerProps, fieldProps);\n\n let valueId = useId();\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n if (!props.isDisabled) {\n ref.current.focus();\n\n // Show the focus ring so the user knows where focus went\n setInteractionModality('keyboard');\n }\n }\n },\n triggerProps: mergeProps(domProps, {\n ...triggerProps,\n isDisabled,\n onKeyDown: chain(triggerProps.onKeyDown, onKeyDown, props.onKeyDown),\n onKeyUp: props.onKeyUp,\n 'aria-labelledby': [\n triggerProps['aria-labelledby'],\n triggerProps['aria-label'] && !triggerProps['aria-labelledby'] ? triggerProps.id : null,\n valueId\n ].filter(Boolean).join(' '),\n onFocus(e: FocusEvent) {\n if (state.isFocused) {\n return;\n }\n\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n\n state.setFocused(true);\n },\n onBlur(e: FocusEvent) {\n if (state.isOpen) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n }\n }),\n valueProps: {\n id: valueId\n },\n menuProps: {\n ...menuProps,\n autoFocus: state.focusStrategy || true,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n disallowEmptySelection: true,\n onBlur: (e) => {\n if (e.currentTarget.contains(e.relatedTarget as Node)) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n },\n 'aria-labelledby': [\n fieldProps['aria-labelledby'],\n triggerProps['aria-label'] && !fieldProps['aria-labelledby'] ? triggerProps.id : null\n ].filter(Boolean).join(' ')\n },\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport React, {ReactNode, RefObject} from 'react';\nimport {SelectState} from '@react-stately/select';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface AriaHiddenSelectProps {\n /**\n * Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete).\n */\n autoComplete?: string,\n\n /** The text label for the select. */\n label?: ReactNode,\n\n /** HTML form input name. */\n name?: string,\n\n /** Sets the disabled state of the select and input. */\n isDisabled?: boolean\n}\n\nexport interface HiddenSelectProps extends AriaHiddenSelectProps {\n /** State for the select. */\n state: SelectState,\n\n /** A ref to the trigger element. */\n triggerRef: RefObject\n}\n\n/**\n * Provides the behavior and accessibility implementation for a hidden ` cannot have `display: none` or `hidden` for autofill to work.\n // In Firefox, there must be a
    , use a hidden input so the value can be submitted to a server.\n // If the collection isn't too big, use a hidden .\n if (state.collection.size <= 300) {\n return (\n
    \n \n \n
    \n );\n } else if (name) {\n return (\n \n );\n }\n\n return null;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {ListState} from '@react-stately/list';\n\ninterface ListData {\n id: string,\n shouldSelectOnPressUp?: boolean,\n shouldFocusOnHover?: boolean,\n shouldUseVirtualFocus?: boolean,\n isVirtualized?: boolean,\n onAction?: (key: Key) => void\n}\n\nexport const listData = new WeakMap, ListData>();\n\nfunction normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n\nexport function getItemId(state: ListState, itemKey: Key): string {\n let data = listData.get(state);\n\n if (!data) {\n throw new Error('Unknown list');\n }\n\n return `${data.id}-option-${normalizeKey(itemKey)}`;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaListBoxProps} from '@react-types/listbox';\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {Key, ReactNode, RefObject} from 'react';\nimport {listData} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useId} from '@react-aria/utils';\nimport {useLabel} from '@react-aria/label';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface ListBoxAria {\n /** Props for the listbox element. */\n listBoxProps: DOMAttributes,\n /** Props for the listbox's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\nexport interface AriaListBoxOptions extends Omit, 'children'> {\n /** Whether the listbox uses virtual scrolling. */\n isVirtualized?: boolean,\n\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate,\n\n /**\n * Whether the listbox items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean,\n\n /** Whether options should be focused when the user hovers over them. */\n shouldFocusOnHover?: boolean,\n\n /**\n * An optional visual label for the listbox.\n */\n label?: ReactNode,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void\n}\n\n/**\n * Provides the behavior and accessibility implementation for a listbox component.\n * A listbox displays a list of options and allows a user to select one or more of them.\n * @param props - Props for the listbox.\n * @param state - State for the listbox, as returned by `useListState`.\n */\nexport function useListBox(props: AriaListBoxOptions, state: ListState, ref: RefObject): ListBoxAria {\n let domProps = filterDOMProps(props, {labelable: true});\n let {listProps} = useSelectableList({\n ...props,\n ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys\n });\n\n let {focusWithinProps} = useFocusWithin({\n onFocusWithin: props.onFocus,\n onBlurWithin: props.onBlur,\n onFocusWithinChange: props.onFocusChange\n });\n\n // Share list id and some props with child options.\n let id = useId(props.id);\n listData.set(state, {\n id,\n shouldUseVirtualFocus: props.shouldUseVirtualFocus,\n shouldSelectOnPressUp: props.shouldSelectOnPressUp,\n shouldFocusOnHover: props.shouldFocusOnHover,\n isVirtualized: props.isVirtualized,\n onAction: props.onAction\n });\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n id,\n // listbox is not an HTML input element so it\n // shouldn't be labeled by a
    (a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {constrain} from './manipulation';\nimport {getExtendedYear, GregorianCalendar} from './calendars/GregorianCalendar';\nimport {getLocalTimeZone} from './queries';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n let year = getExtendedYear(date.era, date.year);\n return epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path for UTC.\n if (timeZone === 'UTC') {\n return 0;\n }\n\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') {\n return epochFromDate(dateTime);\n }\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = getExtendedYear(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n constrain(copy);\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\ninterface ResolvedDateTimeFormatOptions extends Intl.ResolvedDateTimeFormatOptions {\n hourCycle?: Intl.DateTimeFormatOptions['hourCycle']\n}\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions() as ResolvedDateTimeFormatOptions;\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === 'ethiopic-amete-alem') {\n resolvedOptions.calendar = 'ethioaa';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = (new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions() as ResolvedDateTimeFormatOptions).hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour').value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour').value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\nlet supportsSignDisplay = false;\ntry {\n // @ts-ignore\n supportsSignDisplay = (new Intl.NumberFormat('de-DE', {signDisplay: 'exceptZero'})).resolvedOptions().signDisplay === 'exceptZero';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nlet supportsUnit = false;\ntry {\n // @ts-ignore\n supportsUnit = (new Intl.NumberFormat('de-DE', {style: 'unit', unit: 'degree'})).resolvedOptions().style === 'unit';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst UNITS = {\n degree: {\n narrow: {\n default: '°',\n 'ja-JP': ' 度',\n 'zh-TW': '度',\n 'sl-SI': ' °'\n // Arabic?? But Safari already doesn't use Arabic digits so might be ok...\n // https://bugs.webkit.org/show_bug.cgi?id=218139\n }\n }\n};\n\nexport interface NumberFormatOptions extends Intl.NumberFormatOptions {\n /** Overrides default numbering system for the current locale. */\n numberingSystem?: string\n}\n\ninterface NumberRangeFormatPart extends Intl.NumberFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/**\n * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.\n */\nexport class NumberFormatter implements Intl.NumberFormat {\n private numberFormatter: Intl.NumberFormat;\n private options: NumberFormatOptions;\n\n constructor(locale: string, options: NumberFormatOptions = {}) {\n this.numberFormatter = getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */\n format(value: number): string {\n let res = '';\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);\n } else {\n res = this.numberFormatter.format(value);\n }\n\n if (this.options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short', locale} = this.resolvedOptions();\n let values = UNITS[unit]?.[unitDisplay];\n res += values[locale] || values.default;\n }\n\n return res;\n }\n\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */\n formatToParts(value: number): Intl.NumberFormatPart[] {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n\n /** Formats a number range as a string. */\n formatRange(start: number, end: number): string {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n\n /** Formats a number range as an array of parts. */\n formatRangeToParts(start: number, end: number): NumberRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as NumberRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as NumberRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedNumberFormatOptions {\n let options = this.numberFormatter.resolvedOptions();\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n options = {...options, signDisplay: this.options.signDisplay};\n }\n\n if (!supportsUnit && this.options.style === 'unit') {\n options = {...options, style: 'unit', unit: this.options.unit, unitDisplay: this.options.unitDisplay};\n }\n\n return options;\n }\n}\n\nfunction getCachedNumberFormatter(locale: string, options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {numberingSystem} = options;\n if (numberingSystem && locale.indexOf('-u-nu-') === -1) {\n locale = `${locale}-u-nu-${numberingSystem}`;\n }\n\n if (options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short'} = options;\n if (!unit) {\n throw new Error('unit option must be provided with style: \"unit\"');\n }\n if (!UNITS[unit]?.[unitDisplay]) {\n throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n }\n options = {...options, style: 'decimal'};\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.NumberFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\n/** @private - exported for tests */\nexport function numberFormatSignDisplayPolyfill(numberFormat: Intl.NumberFormat, signDisplay: string, num: number) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([...minus].length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ninterface Symbols {\n minusSign: string,\n plusSign: string,\n decimal: string,\n group: string,\n literals: RegExp,\n numeral: RegExp,\n index: (v: string) => string\n}\n\nconst CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec'];\n\n/**\n * A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,\n * as well as validation of partial user input. It automatically detects the numbering system\n * used in the input, and supports parsing decimals, percentages, currency values, and units\n * according to the locale.\n */\nexport class NumberParser {\n private locale: string;\n private options: Intl.NumberFormatOptions;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.locale = locale;\n this.options = options;\n }\n\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */\n parse(value: string): number {\n return getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */\n isValidPartialNumber(value: string, minValue?: number, maxValue?: number): boolean {\n return getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */\n getNumberingSystem(value: string): string {\n return getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n}\n\nconst numberParserCache = new Map();\nfunction getNumberParserImpl(locale: string, options: Intl.NumberFormatOptions, value: string) {\n // First try the default numbering system for the provided locale\n let defaultParser = getCachedNumberParser(locale, options);\n\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of NUMBERING_SYSTEMS) {\n if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) {\n return parser;\n }\n }\n }\n }\n\n return defaultParser;\n}\n\nfunction getCachedNumberParser(locale: string, options: Intl.NumberFormatOptions) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n let parser = numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new NumberParserImpl(locale, options);\n numberParserCache.set(cacheKey, parser);\n }\n\n return parser;\n}\n\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass NumberParserImpl {\n formatter: Intl.NumberFormat;\n options: Intl.ResolvedNumberFormatOptions;\n symbols: Symbols;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = getSymbols(this.formatter, this.options, options);\n }\n\n parse(value: string) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = replaceAll(fullySanitizedValue, this.symbols.group, '')\n .replace(this.symbols.decimal, '.')\n .replace(this.symbols.minusSign, '-')\n .replace(this.symbols.numeral, this.symbols.index);\n\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) {\n return NaN;\n }\n\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && CURRENCY_SIGN_REGEX.test(value)) {\n newValue = -1 * newValue;\n }\n\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === 'percent') {\n newValue /= 100;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed((this.options.maximumFractionDigits ?? 0) + 2);\n }\n\n return newValue;\n }\n\n sanitize(value: string) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace('-', this.symbols.minusSign);\n\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = replaceAll(value, '.', this.symbols.group);\n }\n\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === 'fr-FR') {\n value = replaceAll(value, '.', String.fromCharCode(8239));\n }\n\n return value;\n }\n\n isValidPartialNumber(value: string, minValue: number = -Infinity, maxValue: number = Infinity): boolean {\n value = this.sanitize(value);\n\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) {\n value = value.slice(this.symbols.minusSign.length);\n } else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) {\n value = value.slice(this.symbols.plusSign.length);\n }\n\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) {\n return false;\n }\n\n // Remove numerals, groups, and decimals\n value = replaceAll(value, this.symbols.group, '')\n .replace(this.symbols.numeral, '')\n .replace(this.symbols.decimal, '');\n\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n}\n\nconst nonLiteralParts = new Set(['decimal', 'fraction', 'integer', 'minusSign', 'plusSign', 'group']);\n\nfunction getSymbols(formatter: Intl.NumberFormat, intlOptions: Intl.ResolvedNumberFormatOptions, originalOptions: Intl.NumberFormatOptions): Symbols {\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n\n let minusSign = allParts.find(p => p.type === 'minusSign')?.value ?? '-';\n let plusSign = posAllParts.find(p => p.type === 'plusSign')?.value;\n\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && (originalOptions?.signDisplay === 'exceptZero' || originalOptions?.signDisplay === 'always')) {\n plusSign = '+';\n }\n\n let decimal = allParts.find(p => p.type === 'decimal')?.value;\n let group = allParts.find(p => p.type === 'group')?.value;\n\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let singularLiterals = singularParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let sortedLiterals = [...new Set([...singularLiterals, ...pluralLiterals])].sort((a, b) => b.length - a.length);\n let literals = sortedLiterals.length === 0 ? \n new RegExp('[\\\\p{White_Space}]', 'gu') :\n new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [...new Intl.NumberFormat(intlOptions.locale, {useGrouping: false}).format(9876543210)].reverse();\n let indexes = new Map(numerals.map((d, i) => [d, i]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = d => String(indexes.get(d));\n\n return {minusSign, plusSign, decimal, group, literals, numeral, index};\n}\n\nfunction replaceAll(str: string, find: string, replace: string) {\n // @ts-ignore\n if (str.replaceAll) {\n // @ts-ignore\n return str.replaceAll(find, replace);\n }\n\n return str.split(find).join(replace);\n}\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// https://en.wikipedia.org/wiki/Right-to-left\nconst RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nconst RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/**\n * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.\n */\nexport function isRTL(locale: string) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return RTL_SCRIPTS.has(script);\n }\n\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split('-')[0];\n return RTL_LANGS.has(lang);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {isRTL} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface Locale {\n /** The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale. */\n locale: string,\n /** The writing direction for the locale. */\n direction: Direction\n}\n\n/**\n * Gets the locale setting of the browser.\n */\nexport function getDefaultLocale(): Locale {\n // @ts-ignore\n let locale = (typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage)) || 'en-US';\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([locale]);\n } catch (_err) {\n locale = 'en-US';\n }\n return {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nlet currentLocale = getDefaultLocale();\nlet listeners = new Set<(locale: Locale) => void>();\n\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (let listener of listeners) {\n listener(currentLocale);\n }\n}\n\n/**\n * Returns the current browser/system language, and updates when it changes.\n */\nexport function useDefaultLocale(): Locale {\n let isSSR = useIsSSR();\n let [defaultLocale, setDefaultLocale] = useState(currentLocale);\n\n useEffect(() => {\n if (listeners.size === 0) {\n window.addEventListener('languagechange', updateLocale);\n }\n\n listeners.add(setDefaultLocale);\n\n return () => {\n listeners.delete(setDefaultLocale);\n if (listeners.size === 0) {\n window.removeEventListener('languagechange', updateLocale);\n }\n };\n }, []);\n\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isRTL} from './utils';\nimport {Locale, useDefaultLocale} from './useDefaultLocale';\nimport React, {ReactNode, useContext} from 'react';\n\nexport interface I18nProviderProps {\n /** Contents that should have the locale applied. */\n children: ReactNode,\n /** The locale to apply to the children. */\n locale?: string\n}\n\nconst I18nContext = React.createContext(null);\n\n/**\n * Provides the locale for the application to all child components.\n */\nexport function I18nProvider(props: I18nProviderProps) {\n let {locale, children} = props;\n let defaultLocale = useDefaultLocale();\n\n let value: Locale = locale ? {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Returns the current locale and layout direction.\n */\nexport function useLocale(): Locale {\n let defaultLocale = useDefaultLocale();\n let context = useContext(I18nContext);\n return context || defaultLocale;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {LocalizedString, LocalizedStringDictionary, LocalizedStringFormatter, LocalizedStrings} from '@internationalized/string';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\nconst cache = new WeakMap();\nfunction getCachedDictionary(strings: LocalizedStrings): LocalizedStringDictionary {\n let dictionary = cache.get(strings);\n if (!dictionary) {\n dictionary = new LocalizedStringDictionary(strings);\n cache.set(strings, dictionary);\n }\n\n return dictionary;\n}\n\n/**\n * Provides localized string formatting for the current locale. Supports interpolating variables,\n * selecting the correct pluralization, and formatting numbers. Automatically updates when the locale changes.\n * @param strings - A mapping of languages to localized strings by key.\n */\nexport function useLocalizedStringFormatter(strings: LocalizedStrings): LocalizedStringFormatter {\n let {locale} = useLocale();\n let dictionary = useMemo(() => getCachedDictionary(strings), [strings]);\n return useMemo(() => new LocalizedStringFormatter(locale, dictionary), [locale, dictionary]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {NumberFormatOptions, NumberFormatter} from '@internationalized/number';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\n/**\n * Provides localized number formatting for the current locale. Automatically updates when the locale changes,\n * and handles caching of the number formatter for performance.\n * @param options - Formatting options.\n */\nexport function useNumberFormatter(options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {locale} = useLocale();\n return useMemo(() => new NumberFormatter(locale, options), [locale, options]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useLocale} from './context';\n\nlet cache = new Map();\n\n/**\n * Provides localized string collation for the current locale. Automatically updates when the locale changes,\n * and handles caching of the collator for performance.\n * @param options - Collator options.\n */\nexport function useCollator(options?: Intl.CollatorOptions): Intl.Collator {\n let {locale} = useLocale();\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n\n let formatter = new Intl.Collator(locale, options);\n cache.set(cacheKey, formatter);\n return formatter;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React, {ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement {\n let element;\n if (typeof children === 'string') {\n element = {children};\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef(ref: RefObject): DOMRefValue {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef(domRef: RefObject, focusableRef: RefObject = domRef): FocusableRefValue {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef(ref: DOMRef): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef(ref: FocusableRef, focusableRef?: RefObject): RefObject {\n let domRef = useRef(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef(ref: RefObject>): RefObject {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef(ref: RefObject>) : RefObject {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n \n {children}\n \n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps(props: ViewStyleProps, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp(prop: Responsive, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp).base;\n }\n return prop as T;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n \n {content}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PointerType, PressEvents} from '@react-types/shared';\nimport {focusWithoutScrolling, isVirtualClick, isVirtualPointerEvent, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {PressResponderContext} from './context';\nimport {RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as Element,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n } else if (e.key === 'Enter' && isHTMLAnchorLink(e.currentTarget)) {\n // If the target is a link, we won't have handled this above because we want the default\n // browser behavior to open the link when pressing Enter. But we still need to prevent\n // default so that elements above do not also handle it (e.g. table row).\n e.stopPropagation();\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target as Element)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target instanceof HTMLElement && state.target.contains(target) && (isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link')) {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof HTMLTextAreaElement ||\n element.isContentEditable) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit';\n }\n\n return true;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n stateRef.current.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n stateRef.current.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, []);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps['onBlur'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n const onFocus: FocusProps['onFocus'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : null\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac, isVirtualClick} from '@react-aria/utils';\nimport {useEffect, useState} from 'react';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n if (!state.current.isFocusWithin) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: null,\n onBlur: null\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\nexport interface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\nimport {useRef} from 'react';\n\nexport interface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\nexport interface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: DOMAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: FocusableElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean,\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): FocusableElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): FocusableElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n\n // The parent scope is based on the JSX tree, using context.\n // However, if a new scope mounts outside the active scope (e.g. DialogContainer launched from a menu),\n // we want the parent scope to be the active scope instead.\n let ctxParent = ctx?.scopeRef ?? null;\n let parentScope = useMemo(() => activeScope && focusScopeTree.getTreeNode(activeScope) && !isAncestorScope(activeScope, ctxParent) ? activeScope : ctxParent, [ctxParent]);\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n // add to the focus scope tree in render order because useEffects/useLayoutEffects run children first whereas render runs parent first\n // which matters when constructing a tree\n if (focusScopeTree.getTreeNode(parentScope) && !focusScopeTree.getTreeNode(scopeRef)) {\n focusScopeTree.addTreeNode(scopeRef, parentScope);\n }\n\n let node = focusScopeTree.getTreeNode(scopeRef);\n node.contain = contain;\n\n useActiveScopeTracker(scopeRef, restoreFocus, contain);\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible\n useLayoutEffect(() => {\n if (scopeRef) {\n return () => {\n // Scope may have been re-parented.\n let parentScope = focusScopeTree.getTreeNode(scopeRef).parent.scopeRef;\n\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeRef);\n };\n }\n }, [scopeRef, parentScope]);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as FocusableElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable, accept} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable, accept}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as FocusableElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: Element[]) {\n return scope[0].parentElement;\n}\n\nfunction shouldContainFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.contain) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return true;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = document.activeElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (shouldContainFocus(scopeRef)) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (shouldContainFocus(scopeRef) && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n if (document.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n return isElementInChildScope(element);\n}\n\nfunction isElementInScope(element: Element, scope: Element[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let {scopeRef: s} of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\n/** @private */\nexport function isElementInChildOfActiveScope(element: Element) {\n return isElementInChildScope(element, activeScope);\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\nfunction focusElement(element: FocusableElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: Element[], tabbable:boolean = true) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: false}, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n\n focusElement(nextNode as FocusableElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, [scopeRef]);\n}\n\nfunction useActiveScopeTracker(scopeRef: RefObject, restore: boolean, contain: boolean) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n useLayoutEffect(() => {\n if (restore || contain) {\n return;\n }\n\n let scope = scopeRef.current;\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as Element;\n if (isElementInScope(target, scopeRef.current)) {\n activeScope = scopeRef;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n }, [scopeRef, restore, contain]);\n}\n\nfunction shouldRestoreFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.nodeToRestore) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return scope?.scopeRef === scopeRef;\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as FocusableElement : null);\n\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!restoreFocus || contain) {\n return;\n }\n\n let onFocus = () => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n }\n };\n\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scopeRef, contain]);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n if (!restoreFocus) {\n return;\n }\n\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as FocusableElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n focusScopeTree.getTreeNode(scopeRef).nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n let nodeToRestore = focusScopeTree.getTreeNode(scopeRef).nodeToRestore;\n\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (\n restoreFocus\n && nodeToRestore\n && (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isElementInScope(document.activeElement, scopeRef.current)\n || (document.activeElement === document.body && shouldRestoreFocus(scopeRef))\n )\n ) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = focusScopeTree.clone();\n requestAnimationFrame(() => {\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (document.activeElement === document.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {\n focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.scopeRef && focusScopeTree.getTreeNode(treeNode.scopeRef)) {\n focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: Element, opts?: FocusManagerOptions, scope?: Element[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as Element).matches(selector)\n && isElementVisible(node as Element)\n && (!scope || isElementInScope(node as Element, scope))\n && (!opts?.accept || opts.accept(node as Element))\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject, defaultOptions: FocusManagerOptions = {}): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\n\nclass Tree {\n private root: TreeNode;\n private fastMap = new Map();\n\n constructor() {\n this.root = new TreeNode({scopeRef: null});\n this.fastMap.set(null, this.root);\n }\n\n get size() {\n return this.fastMap.size;\n }\n\n getTreeNode(data: ScopeRef) {\n return this.fastMap.get(data);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: FocusableElement) {\n let parentNode = this.fastMap.get(parent ?? null);\n let node = new TreeNode({scopeRef});\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n }\n\n removeTreeNode(scopeRef: ScopeRef) {\n // never remove the root\n if (scopeRef === null) {\n return;\n }\n let node = this.fastMap.get(scopeRef);\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse()) {\n if (\n current !== node &&\n node.nodeToRestore &&\n current.nodeToRestore &&\n node.scopeRef.current &&\n isElementInScope(current.nodeToRestore, node.scopeRef.current)\n ) {\n current.nodeToRestore = node.nodeToRestore;\n }\n }\n let children = node.children;\n parentNode.removeChild(node);\n if (children.length > 0) {\n children.forEach(child => parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n\n // Pre Order Depth First\n *traverse(node: TreeNode = this.root): Generator {\n if (node.scopeRef != null) {\n yield node;\n }\n if (node.children.length > 0) {\n for (let child of node.children) {\n yield* this.traverse(child);\n }\n }\n }\n\n clone(): Tree {\n let newTree = new Tree();\n for (let node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);\n }\n return newTree;\n }\n}\n\nclass TreeNode {\n public scopeRef: ScopeRef;\n public nodeToRestore: FocusableElement;\n public parent: TreeNode;\n public children: TreeNode[] = [];\n public contain = false;\n\n constructor(props: {scopeRef: ScopeRef}) {\n this.scopeRef = props.scopeRef;\n }\n addChild(node: TreeNode) {\n this.children.push(node);\n node.parent = this;\n }\n removeChild(node: TreeNode) {\n this.children.splice(this.children.indexOf(node), 1);\n node.parent = undefined;\n }\n}\n\nexport let focusScopeTree = new Tree();\n","import {DOMAttributes} from '@react-types/shared';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useCallback, useState} from 'react';\nimport {useRef} from 'react';\n\nexport interface AriaFocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: DOMAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: AriaFocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback(isFocused => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.current.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\nexport interface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableDOMProps, FocusableElement, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\nexport interface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusableProviderProps extends DOMAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\nexport interface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: DOMAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {forwardRef} from 'react';\nimport {TextProps} from '@react-types/text';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Text(props: TextProps, ref: DOMRef) {\n props = useSlotProps(props, 'text');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Text represents text with no specific semantic meaning.\n */\nconst _Text = forwardRef(Text);\nexport {_Text as Text};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeadingProps} from '@react-types/text';\nimport React, {ElementType, forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Heading(props: HeadingProps, ref: DOMRef) {\n props = useSlotProps(props, 'heading');\n\n let {\n children,\n level = 3,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n let HeadingTag = `h${level}` as ElementType;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Heading is used to create various levels of typographic hierarchies.\n */\nconst _Heading = forwardRef(Heading);\nexport {_Heading as Heading};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {KeyboardProps} from '@react-types/text';\nimport React, {forwardRef} from 'react';\nimport {useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nfunction Keyboard(props: KeyboardProps, ref: DOMRef) {\n props = useSlotProps(props, 'keyboard');\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Keyboard represents text that specifies a keyboard command.\n */\nconst _Keyboard = forwardRef(Keyboard);\nexport {_Keyboard as Keyboard};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {mergeProps} from '@react-aria/utils';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\n\nexport interface ButtonAria {\n /** Props for the button element. */\n buttonProps: T,\n /** Whether the button is currently pressed. */\n isPressed: boolean\n}\n\n// Order with overrides is important: 'button' should be default\nexport function useButton(props: AriaButtonProps<'button'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'a'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'div'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'input'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'span'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,\n * focus behavior, and ARIA props for both native button elements and custom element types.\n * @param props - Props to be applied to the button.\n * @param ref - A ref to a DOM element for the button.\n */\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria> {\n let {\n elementType = 'button',\n isDisabled,\n onPress,\n onPressStart,\n onPressEnd,\n onPressChange,\n // @ts-ignore - undocumented\n preventFocusOnPress,\n // @ts-ignore - undocumented\n allowFocusWhenDisabled,\n // @ts-ignore\n onClick: deprecatedOnClick,\n href,\n target,\n rel,\n type = 'button'\n } = props;\n let additionalProps;\n if (elementType === 'button') {\n additionalProps = {\n type,\n disabled: isDisabled\n };\n } else {\n additionalProps = {\n role: 'button',\n tabIndex: isDisabled ? undefined : 0,\n href: elementType === 'a' && isDisabled ? undefined : href,\n target: elementType === 'a' ? target : undefined,\n type: elementType === 'input' ? type : undefined,\n disabled: elementType === 'input' ? isDisabled : undefined,\n 'aria-disabled': !isDisabled || elementType === 'input' ? undefined : isDisabled,\n rel: elementType === 'a' ? rel : undefined\n };\n }\n\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n isDisabled,\n preventFocusOnPress,\n ref\n });\n\n let {focusableProps} = useFocusable(props, ref);\n if (allowFocusWhenDisabled) {\n focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;\n }\n let buttonProps = mergeProps(focusableProps, pressProps, filterDOMProps(props, {labelable: true}));\n\n return {\n isPressed, // Used to indicate press state for visual\n buttonProps: mergeProps(additionalProps, buttonProps, {\n 'aria-haspopup': props['aria-haspopup'],\n 'aria-expanded': props['aria-expanded'],\n 'aria-controls': props['aria-controls'],\n 'aria-pressed': props['aria-pressed'],\n onClick: (e) => {\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaToggleButtonProps} from '@react-types/button';\nimport {ButtonAria, useButton} from './useButton';\nimport {chain} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {ToggleState} from '@react-stately/toggle';\n\nexport function useToggleButton(props: AriaToggleButtonProps<'a'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'button'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'div'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'input'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'span'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria;\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.\n */\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria> {\n const {isSelected} = state;\n const {isPressed, buttonProps} = useButton({\n ...props,\n onPress: chain(state.toggle, props.onPress)\n }, ref);\n\n return {\n isPressed,\n buttonProps: mergeProps(buttonProps, {\n 'aria-pressed': isSelected\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {CSSProperties, JSXElementConstructor, ReactNode, useMemo, useState} from 'react';\nimport {useFocusWithin} from '@react-aria/interactions';\n\nexport interface VisuallyHiddenProps extends DOMAttributes {\n /** The content to visually hide. */\n children?: ReactNode,\n\n /**\n * The element type for the container.\n * @default 'div'\n */\n elementType?: string | JSXElementConstructor,\n\n /** Whether the element should become visible on focus, for example skip links. */\n isFocusable?: boolean\n}\n\nconst styles: CSSProperties = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n};\n\nexport interface VisuallyHiddenAria {\n visuallyHiddenProps: DOMAttributes\n}\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n */\nexport function useVisuallyHidden(props: VisuallyHiddenProps = {}): VisuallyHiddenAria {\n let {\n style,\n isFocusable\n } = props;\n\n let [isFocused, setFocused] = useState(false);\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !isFocusable,\n onFocusWithinChange: (val) => setFocused(val)\n });\n\n // If focused, don't hide the element.\n let combinedStyles = useMemo(() => {\n if (isFocused) {\n return style;\n } else if (style) {\n return {...styles, ...style};\n } else {\n return styles;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocused]);\n\n return {\n visuallyHiddenProps: {\n ...focusWithinProps,\n style: combinedStyles\n }\n };\n}\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible\n * to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children, elementType: Element = 'div', isFocusable, style, ...otherProps} = props;\n let {visuallyHiddenProps} = useVisuallyHidden(props);\n\n return (\n \n {children}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: Element,\n overlayNode: Element,\n scrollNode: Element,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: Element,\n offset: number,\n crossOffset: number,\n maxHeight?: number\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n let documentElement = document.documentElement;\n width = visualViewport?.width ?? documentElement.clientWidth;\n height = visualViewport?.height ?? documentElement.clientHeight;\n\n scroll.top = documentElement.scrollTop || containerNode.scrollTop;\n scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = containerNode.scrollTop;\n scroll.left = containerNode.scrollLeft;\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: Element): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: Element): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n userSetMaxHeight?: number\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n if (userSetMaxHeight && userSetMaxHeight < maxHeight) {\n maxHeight = userSetMaxHeight;\n }\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n } = opts;\n\n let container = ((overlayNode instanceof HTMLElement && overlayNode.offsetParent) || document.body) as Element;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n let {marginTop, marginLeft} = window.getComputedStyle(targetNode);\n childOffset.top += parseInt(marginTop, 10) || 0;\n childOffset.left += parseInt(marginLeft, 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n maxHeight\n );\n}\n\nfunction getOffset(node: Element): Offset {\n let {top, left, width, height} = node.getBoundingClientRect();\n let {scrollTop, scrollLeft, clientTop, clientLeft} = document.documentElement;\n return {\n top: top + scrollTop - clientTop,\n left: left + scrollLeft - clientLeft,\n width,\n height\n };\n}\n\nfunction getPosition(node: Element, parent: Element): Offset {\n let style = window.getComputedStyle(node);\n let offset: Offset;\n if (style.position === 'fixed') {\n let {top, left, width, height} = node.getBoundingClientRect();\n offset = {top, left, width, height};\n } else {\n offset = getOffset(node);\n let parentOffset = getOffset(parent);\n let parentStyle = window.getComputedStyle(parent);\n parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;\n parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;\n offset.top -= parentOffset.top;\n offset.left -= parentOffset.left;\n }\n\n offset.top -= parseInt(style.marginTop, 10) || 0;\n offset.left -= parseInt(style.marginLeft, 10) || 0;\n return offset;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen || onClose === null) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target;\n // window is not a Node and doesn't have contain, but window contains everything\n if (!triggerRef.current || ((target instanceof Node) && !target.contains(triggerRef.current))) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {calculatePosition, PositionResult} from './calculatePosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {RefObject, useCallback, useRef, useState} from 'react';\nimport {useCloseOnScroll} from './useCloseOnScroll';\nimport {useLayoutEffect, useResizeObserver} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: Element,\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject,\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject,\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject,\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean,\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n /**\n * The maxHeight specified for the overlay element.\n * By default, it will take all space up to the current viewport height.\n */\n maxHeight?: number\n}\n\nexport interface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props for the overlay tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis,\n /** Updates the position of the overlay. */\n updatePosition(): void\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n let {direction} = useLocale();\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n onClose,\n maxHeight\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n maxHeight\n ];\n\n let updatePosition = useCallback(() => {\n if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n maxHeight\n })\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n // Update position when anything changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Update position when the overlay changes size (might need to flip).\n useResizeObserver({\n ref: overlayRef,\n onResize: updatePosition\n });\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: ReturnType;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose && close\n });\n\n return {\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight\n }\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop\n }\n },\n updatePosition\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {isElementInChildOfActiveScope} from '@react-aria/focus';\nimport {RefObject, SyntheticEvent, useEffect} from 'react';\nimport {useFocusWithin, useInteractOutside} from '@react-aria/interactions';\n\nexport interface AriaOverlayProps {\n /** Whether the overlay is currently open. */\n isOpen?: boolean,\n\n /** Handler that is called when the overlay should close. */\n onClose?: () => void,\n\n /**\n * Whether to close the overlay when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n\n /** Whether the overlay should close when focus is lost or moves outside it. */\n shouldCloseOnBlur?: boolean,\n\n /**\n * Whether pressing the escape key to close the overlay should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean,\n\n /**\n * When user interacts with the argument element outside of the overlay ref,\n * return true if onClose should be called. This gives you a chance to filter\n * out interaction with elements that should not dismiss the overlay.\n * By default, onClose will always be called on interaction outside the overlay ref.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean\n}\n\nexport interface OverlayAria {\n /** Props to apply to the overlay container element. */\n overlayProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes\n}\n\nconst visibleOverlays: RefObject[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(props: AriaOverlayProps, ref: RefObject): OverlayAria {\n let {\n onClose,\n shouldCloseOnBlur,\n isOpen,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n shouldCloseOnInteractOutside\n } = props;\n\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n useEffect(() => {\n if (isOpen) {\n visibleOverlays.push(ref);\n }\n\n return () => {\n let index = visibleOverlays.indexOf(ref);\n if (index >= 0) {\n visibleOverlays.splice(index, 1);\n }\n };\n }, [isOpen, ref]);\n\n // Only hide the overlay when it is the topmost visible overlay in the stack.\n let onHide = () => {\n if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n onClose();\n }\n };\n\n let onInteractOutsideStart = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n };\n\n let onInteractOutside = (e: SyntheticEvent) => {\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {\n if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n onHide();\n }\n };\n\n // Handle the escape key\n let onKeyDown = (e) => {\n if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n e.stopPropagation();\n e.preventDefault();\n onHide();\n }\n };\n\n // Handle clicking outside the overlay to close it\n useInteractOutside({ref, onInteractOutside: isDismissable ? onInteractOutside : null, onInteractOutsideStart});\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: (e) => {\n // If focus is moving into a child focus scope (e.g. menu inside a dialog),\n // do not close the outer overlay. At this point, the active scope should\n // still be the outer overlay, since blur events run before focus.\n if (e.relatedTarget && isElementInChildOfActiveScope(e.relatedTarget)) {\n return;\n }\n\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as Element)) {\n onClose();\n }\n }\n });\n\n let onPointerDownUnderlay = e => {\n // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n if (e.target === e.currentTarget) {\n e.preventDefault();\n }\n };\n\n return {\n overlayProps: {\n onKeyDown,\n ...focusWithinProps\n },\n underlayProps: {\n onPointerDown: onPointerDownUnderlay\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {DOMAttributes} from '@react-types/shared';\nimport {onCloseMap} from './useCloseOnScroll';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the overlay container element. */\n overlayProps: DOMAttributes\n}\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function useOverlayTrigger(props: OverlayTriggerProps, state: OverlayTriggerState, ref: RefObject): OverlayTriggerAria {\n let {type} = props;\n let {isOpen} = state;\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n useEffect(() => {\n if (ref && ref.current) {\n onCloseMap.set(ref.current, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n let ariaHasPopup = undefined;\n if (type === 'menu') {\n ariaHasPopup = true;\n } else if (type === 'listbox') {\n ariaHasPopup = 'listbox';\n }\n\n let overlayId = useId();\n return {\n triggerProps: {\n 'aria-haspopup': ariaHasPopup,\n 'aria-expanded': isOpen,\n 'aria-controls': isOpen ? overlayId : null,\n onPress: state.toggle\n },\n overlayProps: {\n id: overlayId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain, getScrollParent, isIOS, useLayoutEffect} from '@react-aria/utils';\n\ninterface PreventScrollOptions {\n /** Whether the scroll lock is disabled. */\n isDisabled?: boolean\n}\n\n// @ts-ignore\nconst visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet preventScrollCount = 0;\nlet restore;\n\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */\nexport function usePreventScroll(options: PreventScrollOptions = {}) {\n let {isDisabled} = options;\n\n useLayoutEffect(() => {\n if (isDisabled) {\n return;\n }\n\n preventScrollCount++;\n if (preventScrollCount === 1) {\n if (isIOS()) {\n restore = preventScrollMobileSafari();\n } else {\n restore = preventScrollStandard();\n }\n }\n\n return () => {\n preventScrollCount--;\n if (preventScrollCount === 0) {\n restore();\n }\n };\n }, [isDisabled]);\n}\n\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n return chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden')\n );\n}\n\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n// top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n let scrollable: Element;\n let lastY = 0;\n let onTouchStart = (e: TouchEvent) => {\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = getScrollParent(e.target as Element);\n if (scrollable === document.documentElement && scrollable === document.body) {\n return;\n }\n\n lastY = e.changedTouches[0].pageY;\n };\n\n let onTouchMove = (e: TouchEvent) => {\n // Prevent scrolling the window.\n if (scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead. Unfortunately, this disables bounce scrolling when at\n // the top but it's the best we can do.\n let y = e.changedTouches[0].pageY;\n let scrollTop = scrollable.scrollTop;\n let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n\n if ((scrollTop <= 0 && y > lastY) || (scrollTop >= bottom && y < lastY)) {\n e.preventDefault();\n }\n\n lastY = y;\n };\n\n let onTouchEnd = (e: TouchEvent) => {\n let target = e.target as HTMLElement;\n\n // Apply this change if we're not already focused on the target element\n if (willOpenKeyboard(target) && target !== document.activeElement) {\n e.preventDefault();\n\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n // be done before the \"focus\" event, so we have to focus the element ourselves.\n target.style.transform = 'translateY(-2000px)';\n target.focus();\n requestAnimationFrame(() => {\n target.style.transform = '';\n });\n }\n };\n\n let onFocus = (e: FocusEvent) => {\n let target = e.target as HTMLElement;\n if (willOpenKeyboard(target)) {\n // Transform also needs to be applied in the focus event in cases where focus moves\n // other than tapping on an input directly, e.g. the next/previous buttons in the\n // software keyboard. In these cases, it seems applying the transform in the focus event\n // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(() => {\n target.style.transform = '';\n\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if (visualViewport) {\n if (visualViewport.height < window.innerHeight) {\n // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(() => {\n scrollIntoView(target);\n });\n } else {\n // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n visualViewport.addEventListener('resize', () => scrollIntoView(target), {once: true});\n }\n }\n });\n }\n };\n\n let onWindowScroll = () => {\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n\n let restoreStyles = chain(\n setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n setStyle(document.documentElement, 'overflow', 'hidden'),\n setStyle(document.body, 'marginTop', `-${scrollY}px`)\n );\n\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n\n let removeEvents = chain(\n addEvent(document, 'touchstart', onTouchStart, {passive: false, capture: true}),\n addEvent(document, 'touchmove', onTouchMove, {passive: false, capture: true}),\n addEvent(document, 'touchend', onTouchEnd, {passive: false, capture: true}),\n addEvent(document, 'focus', onFocus, true),\n addEvent(window, 'scroll', onWindowScroll)\n );\n\n return () => {\n // Restore styles and scroll the page back to where it was.\n restoreStyles();\n removeEvents();\n window.scrollTo(scrollX, scrollY);\n };\n}\n\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element: HTMLElement, style: string, value: string) {\n let cur = element.style[style];\n element.style[style] = value;\n\n return () => {\n element.style[style] = cur;\n };\n}\n\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent(\n target: EventTarget,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n target.addEventListener(event, handler, options);\n return () => {\n target.removeEventListener(event, handler, options);\n };\n}\n\nfunction scrollIntoView(target: Element) {\n let root = document.scrollingElement || document.documentElement;\n while (target && target !== root) {\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = getScrollParent(target);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== target) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = target.getBoundingClientRect().top;\n if (targetTop > scrollableTop + target.clientHeight) {\n scrollable.scrollTop += targetTop - scrollableTop;\n }\n }\n\n target = scrollable.parentElement;\n }\n}\n\nfunction willOpenKeyboard(target: Element) {\n return (\n (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) ||\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLElement && target.isContentEditable)\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport React, {AriaAttributes, ReactNode, useContext, useEffect, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface ModalProviderProps extends DOMAttributes {\n children: ReactNode\n}\n\ninterface ModalContext {\n parent: ModalContext | null,\n modalCount: number,\n addModal: () => void,\n removeModal: () => void\n}\n\nconst Context = React.createContext(null);\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using React context in order to account for things\n * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.\n */\nexport function ModalProvider(props: ModalProviderProps) {\n let {children} = props;\n let parent = useContext(Context);\n let [modalCount, setModalCount] = useState(0);\n let context = useMemo(() => ({\n parent,\n modalCount,\n addModal() {\n setModalCount(count => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount(count => count - 1);\n if (parent) {\n parent.removeModal();\n }\n }\n }), [parent, modalCount]);\n\n return (\n \n {children}\n \n );\n}\n\nexport interface ModalProviderAria {\n /**\n * Props to be spread on the container element.\n */\n modalProviderProps: AriaAttributes\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n let context = useContext(Context);\n return {\n modalProviderProps: {\n 'aria-hidden': context && context.modalCount > 0 ? true : null\n }\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nfunction OverlayContainerDOM(props: ModalProviderProps) {\n let {modalProviderProps} = useModalProvider();\n return
    ;\n}\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a ``. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport function OverlayProvider(props: ModalProviderProps) {\n return (\n \n \n \n );\n}\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport function OverlayContainer(props: OverlayContainerProps): React.ReactPortal {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body, ...rest} = props;\n\n React.useEffect(() => {\n if (portalContainer?.closest('[data-overlay-container]')) {\n throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n }\n }, [portalContainer]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = ;\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\ninterface ModalAriaProps extends DOMAttributes {\n /** Data attribute marks the dom node as a modal for the aria-modal-polyfill. */\n 'data-ismodal': boolean\n}\n\nexport interface AriaModalOptions {\n isDisabled?: boolean\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: ModalAriaProps\n}\n\n/**\n * Hides content outside the current `` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function useModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n let context = useContext(Context);\n if (!context) {\n throw new Error('Modal is not contained within a provider');\n }\n\n useEffect(() => {\n if (options?.isDisabled || !context || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n return () => {\n if (context && context.parent) {\n context.parent.removeModal();\n }\n };\n }, [context, context.parent, options?.isDisabled]);\n\n return {\n modalProps: {\n 'data-ismodal': !options?.isDisabled\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React from 'react';\nimport {useLabels} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {VisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface DismissButtonProps extends AriaLabelingProps, DOMProps {\n /** Called when the dismiss button is activated. */\n onDismiss?: () => void\n}\n\n/**\n * A visually hidden button that can be used to allow screen reader\n * users to dismiss a modal or popup when there is no visual\n * affordance to do so.\n */\nexport function DismissButton(props: DismissButtonProps) {\n let {onDismiss, ...otherProps} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n let labels = useLabels(otherProps, stringFormatter.format('dismiss'));\n\n let onClick = () => {\n if (onDismiss) {\n onDismiss();\n }\n };\n\n return (\n \n \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"dismiss\": \"تجاهل\"\n}\n","{\n \"dismiss\": \"Отхвърляне\"\n}\n","{\n \"dismiss\": \"Odstranit\"\n}\n","{\n \"dismiss\": \"Luk\"\n}\n","{\n \"dismiss\": \"Schließen\"\n}\n","{\n \"dismiss\": \"Απόρριψη\"\n}\n","{\n \"dismiss\": \"Dismiss\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Lõpeta\"\n}\n","{\n \"dismiss\": \"Hylkää\"\n}\n","{\n \"dismiss\": \"Rejeter\"\n}\n","{\n \"dismiss\": \"התעלם\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Elutasítás\"\n}\n","{\n \"dismiss\": \"Ignora\"\n}\n","{\n \"dismiss\": \"閉じる\"\n}\n","{\n \"dismiss\": \"무시\"\n}\n","{\n \"dismiss\": \"Atmesti\"\n}\n","{\n \"dismiss\": \"Nerādīt\"\n}\n","{\n \"dismiss\": \"Lukk\"\n}\n","{\n \"dismiss\": \"Negeren\"\n}\n","{\n \"dismiss\": \"Zignoruj\"\n}\n","{\n \"dismiss\": \"Descartar\"\n}\n","{\n \"dismiss\": \"Dispensar\"\n}\n","{\n \"dismiss\": \"Revocare\"\n}\n","{\n \"dismiss\": \"Пропустить\"\n}\n","{\n \"dismiss\": \"Zrušiť\"\n}\n","{\n \"dismiss\": \"Opusti\"\n}\n","{\n \"dismiss\": \"Odbaci\"\n}\n","{\n \"dismiss\": \"Avvisa\"\n}\n","{\n \"dismiss\": \"Kapat\"\n}\n","{\n \"dismiss\": \"Скасувати\"\n}\n","{\n \"dismiss\": \"取消\"\n}\n","{\n \"dismiss\": \"關閉\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet refCountMap = new WeakMap();\nlet observerStack = [];\n\n/**\n * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,\n * and returns a function to revert these changes. In addition, changes to the DOM are watched\n * and new elements outside the targets are automatically hidden.\n * @param targets - The elements that should remain visible.\n * @param root - Nothing will be hidden above this element.\n * @returns - A function to restore all hidden elements.\n */\nexport function ariaHideOutside(targets: Element[], root = document.body) {\n let visibleNodes = new Set(targets);\n let hiddenNodes = new Set();\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // If this node is a live announcer, add it to the set of nodes to keep visible.\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n }\n\n // Skip this node and its children if it is one of the target nodes, or a live announcer.\n // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is\n // made for elements with role=\"row\" since VoiceOver on iOS has issues hiding elements with role=\"row\".\n // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).\n if (\n visibleNodes.has(node as Element) ||\n (hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row')\n ) {\n return NodeFilter.FILTER_REJECT;\n }\n\n // Skip this node but continue to children if one of the targets is inside the node.\n if (targets.some(target => node.contains(target))) {\n return NodeFilter.FILTER_SKIP;\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n );\n\n let hide = (node: Element) => {\n let refCount = refCountMap.get(node) ?? 0;\n\n // If already aria-hidden, and the ref count is zero, then this element\n // was already hidden and there's nothing for us to do.\n if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) {\n return;\n }\n\n if (refCount === 0) {\n node.setAttribute('aria-hidden', 'true');\n }\n\n hiddenNodes.add(node);\n refCountMap.set(node, refCount + 1);\n };\n\n // If there is already a MutationObserver listening from a previous call,\n // disconnect it so the new on takes over.\n if (observerStack.length) {\n observerStack[observerStack.length - 1].disconnect();\n }\n\n let node = walker.nextNode() as Element;\n while (node != null) {\n hide(node);\n node = walker.nextNode() as Element;\n }\n\n let observer = new MutationObserver(changes => {\n for (let change of changes) {\n if (change.type !== 'childList' || change.addedNodes.length === 0) {\n continue;\n }\n\n // If the parent element of the added nodes is not within one of the targets,\n // and not already inside a hidden node, hide all of the new children.\n if (![...visibleNodes, ...hiddenNodes].some(node => node.contains(change.target))) {\n for (let node of change.addedNodes) {\n if (((node instanceof HTMLElement || node instanceof SVGElement) && node.dataset.liveAnnouncer === 'true')) {\n visibleNodes.add(node);\n } else if (node instanceof Element) {\n hide(node);\n }\n }\n }\n }\n });\n\n observer.observe(root, {childList: true, subtree: true});\n\n let observerWrapper = {\n observe() {\n observer.observe(root, {childList: true, subtree: true});\n },\n disconnect() {\n observer.disconnect();\n }\n };\n\n observerStack.push(observerWrapper);\n\n return () => {\n observer.disconnect();\n\n for (let node of hiddenNodes) {\n let count = refCountMap.get(node);\n if (count === 1) {\n node.removeAttribute('aria-hidden');\n refCountMap.delete(node);\n } else {\n refCountMap.set(node, count - 1);\n }\n }\n\n // Remove this observer from the stack, and start the previous one.\n if (observerWrapper === observerStack[observerStack.length - 1]) {\n observerStack.pop();\n if (observerStack.length) {\n observerStack[observerStack.length - 1].observe();\n }\n } else {\n observerStack.splice(observerStack.indexOf(observerWrapper), 1);\n }\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {AriaPositionProps, useOverlayPosition} from './useOverlayPosition';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {PlacementAxis} from '@react-types/overlays';\nimport {RefObject, useState} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaPopoverProps extends Omit {\n /**\n * The ref for the element which the popover positions itself with respect to.\n */\n triggerRef: RefObject,\n /**\n * The ref for the popover element.\n */\n popoverRef: RefObject,\n /**\n * Whether the popover is non-modal, i.e. elements outside the popover may be\n * interacted with by assistive technologies.\n *\n * Most popovers should not use this option as it may negatively impact the screen\n * reader experience. Only use with components such as combobox, which are designed\n * to handle this situation carefully.\n */\n isNonModal?: boolean,\n /**\n * Whether pressing the escape key to close the popover should be disabled.\n *\n * Most popovers should not use this option. When set to true, an alternative\n * way to close the popover with a keyboard must be provided.\n *\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface PopoverAria {\n /** Props for the popover element. */\n popoverProps: DOMAttributes,\n /** Props for the popover tip arrow if any. */\n arrowProps: DOMAttributes,\n /** Props to apply to the underlay element, if any. */\n underlayProps: DOMAttributes,\n /** Placement of the popover with respect to the trigger. */\n placement: PlacementAxis\n}\n\n/**\n * Provides the behavior and accessibility implementation for a popover component.\n * A popover is an overlay element positioned relative to a trigger.\n */\nexport function usePopover(props: AriaPopoverProps, state: OverlayTriggerState): PopoverAria {\n let {\n triggerRef,\n popoverRef,\n isNonModal,\n isKeyboardDismissDisabled,\n ...otherProps\n } = props;\n\n let {overlayProps, underlayProps} = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n shouldCloseOnBlur: true,\n isDismissable: !isNonModal,\n isKeyboardDismissDisabled\n },\n popoverRef\n );\n\n let {overlayProps: positionProps, arrowProps, placement} = useOverlayPosition({\n ...otherProps,\n targetRef: triggerRef,\n overlayRef: popoverRef,\n isOpen: state.isOpen,\n onClose: null\n });\n\n // Delay preventing scroll until popover is positioned to avoid extra scroll padding.\n // This requires a layout effect so that positioning has been committed to the DOM\n // by the time usePreventScroll measures the element.\n let [isPositioned, setPositioned] = useState(false);\n useLayoutEffect(() => {\n if (!isNonModal && placement) {\n setPositioned(true);\n }\n }, [isNonModal, placement]);\n\n usePreventScroll({\n isDisabled: isNonModal || !isPositioned\n });\n\n useLayoutEffect(() => {\n if (state.isOpen && !isNonModal && popoverRef.current) {\n return ariaHideOutside([popoverRef.current]);\n }\n }, [isNonModal, state.isOpen, popoverRef]);\n\n return {\n popoverProps: mergeProps(overlayProps, positionProps),\n arrowProps,\n underlayProps,\n placement\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusScope} from '@react-aria/focus';\nimport React, {ReactNode, useContext, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useIsSSR} from '@react-aria/ssr';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport interface OverlayProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element,\n /** The overlay to render in the portal. */\n children: ReactNode\n}\n\nexport const OverlayContext = React.createContext(null);\n\n/**\n * A container which renders an overlay such as a popover or modal in a portal,\n * and provides a focus scope for the child elements.\n */\nexport function Overlay(props: OverlayProps) {\n let isSSR = useIsSSR();\n let {portalContainer = isSSR ? null : document.body} = props;\n let [contain, setContain] = useState(false);\n let contextValue = useMemo(() => ({contain, setContain}), [contain, setContain]);\n\n if (!portalContainer) {\n return null;\n }\n\n let contents = (\n \n \n {props.children}\n \n \n );\n\n return ReactDOM.createPortal(contents, portalContainer);\n}\n\n/** @private */\nexport function useOverlayFocusContain() {\n let ctx = useContext(OverlayContext);\n let setContain = ctx?.setContain;\n useLayoutEffect(() => {\n setContain?.(true);\n }, [setContain]);\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ariaHideOutside} from './ariaHideOutside';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {RefObject, useEffect} from 'react';\nimport {useOverlay} from './useOverlay';\nimport {useOverlayFocusContain} from './Overlay';\nimport {usePreventScroll} from './usePreventScroll';\n\nexport interface AriaModalOverlayProps {\n /**\n * Whether to close the modal when the user interacts outside it.\n * @default false\n */\n isDismissable?: boolean,\n /**\n * Whether pressing the escape key to close the modal should be disabled.\n * @default false\n */\n isKeyboardDismissDisabled?: boolean\n}\n\nexport interface ModalOverlayAria {\n /** Props for the modal element. */\n modalProps: DOMAttributes,\n /** Props for the underlay element. */\n underlayProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a modal component.\n * A modal is an overlay element which blocks interaction with elements outside it.\n */\nexport function useModalOverlay(props: AriaModalOverlayProps, state: OverlayTriggerState, ref: RefObject): ModalOverlayAria {\n let {overlayProps, underlayProps} = useOverlay({\n ...props,\n isOpen: state.isOpen,\n onClose: state.close\n }, ref);\n\n usePreventScroll({\n isDisabled: !state.isOpen\n });\n\n useOverlayFocusContain();\n\n useEffect(() => {\n if (state.isOpen) {\n return ariaHideOutside([ref.current]);\n }\n }, [state.isOpen, ref]);\n\n return {\n modalProps: mergeProps(overlayProps),\n underlayProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\nCopyright 2019 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\n@import '../commons/index.css';\n@import 'font.css';\n\n/*@mixin typography .spectrum-Body1 {}\n@mixin typography .spectrum-Body2 {}\n@mixin typography .spectrum-Body3 {}\n@mixin typography .spectrum-Body4 {}\n@mixin typography .spectrum-Body5 {}\n@mixin typography .spectrum-Heading1 {}\n@mixin typography .spectrum-Heading2 {}\n@mixin typography .spectrum-Heading3 {}\n@mixin typography .spectrum-Heading4 {}\n@mixin typography .spectrum-Heading5 {}\n@mixin typography .spectrum-Heading6 {}\n@mixin typography .spectrum-Subheading {}\n@mixin typography .spectrum-Detail {}\n@mixin typography .spectrum-Heading1--quiet, heading-quiet-1 {}\n@mixin typography .spectrum-Heading2--quiet, heading-quiet-2 {}\n@mixin typography .spectrum-Heading1--strong, heading-strong-1 {}\n@mixin typography .spectrum-Heading2--strong, heading-strong-2 {}\n@mixin typography .spectrum-Heading1--display, display-1 {}\n@mixin typography .spectrum-Heading2--display, display-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n@mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n@mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n\n.spectrum-Typography {\n @mixin typographyMargins .spectrum-Body1 {}\n @mixin typographyMargins .spectrum-Body2 {}\n @mixin typographyMargins .spectrum-Body3 {}\n @mixin typographyMargins .spectrum-Body4 {}\n @mixin typographyMargins .spectrum-Body5 {}\n @mixin typographyMargins .spectrum-Heading1 {}\n @mixin typographyMargins .spectrum-Heading2 {}\n @mixin typographyMargins .spectrum-Heading3 {}\n @mixin typographyMargins .spectrum-Heading4 {}\n @mixin typographyMargins .spectrum-Heading5 {}\n @mixin typographyMargins .spectrum-Heading6 {}\n @mixin typographyMargins .spectrum-Subheading {}\n @mixin typographyMargins .spectrum-Detail {}\n @mixin typographyMargins .spectrum-Heading1--quiet, heading-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--quiet, heading-quiet-2 {}\n @mixin typographyMargins .spectrum-Heading1--strong, heading-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--strong, heading-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display, display-1 {}\n @mixin typographyMargins .spectrum-Heading2--display, display-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-2 {}\n @mixin typographyMargins .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-1 {}\n @mixin typographyMargins .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-2 {}\n}\n\n.spectrum-Article {\n font-family: var(--spectrum-body-article-1-text-font-family);\n @mixin typography .spectrum-Body1, body-article-1 {}\n @mixin typography .spectrum-Body2, body-article-2 {}\n @mixin typography .spectrum-Body3, body-article-3 {}\n @mixin typography .spectrum-Body4, body-article-4 {}\n @mixin typography .spectrum-Body5, body-article-5 {}\n @mixin typography .spectrum-Heading1, heading-article-1 {}\n @mixin typography .spectrum-Heading2, heading-article-2 {}\n @mixin typography .spectrum-Heading3, heading-article-3 {}\n @mixin typography .spectrum-Heading4, heading-article-4 {}\n @mixin typography .spectrum-Heading5, heading-article-5 {}\n @mixin typography .spectrum-Heading6, heading-article-6 {}\n @mixin typography .spectrum-Subheading, subheading-article {}\n @mixin typography .spectrum-Detail, detail-article {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-article-2 {}\n @mixin typography .spectrum-Heading1--display, display-article-1 {}\n @mixin typography .spectrum-Heading2--display, display-article-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-article-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-article-2 {}\n}\n.spectrum {\n &:lang(ja),\n &:lang(ko),\n &:lang(zh) {\n @mixin typography .spectrum-Body1, body-han-1 {}\n @mixin typography .spectrum-Body2, body-han-2 {}\n @mixin typography .spectrum-Body3, body-han-3 {}\n @mixin typography .spectrum-Body4, body-han-4 {}\n @mixin typography .spectrum-Body5, body-han-5 {}\n @mixin typography .spectrum-Heading1, heading-han-1 {}\n @mixin typography .spectrum-Heading2, heading-han-2 {}\n @mixin typography .spectrum-Heading3, heading-han-3 {}\n @mixin typography .spectrum-Heading4, heading-han-4 {}\n @mixin typography .spectrum-Heading5, heading-han-5 {}\n @mixin typography .spectrum-Heading6, heading-han-6 {}\n @mixin typography .spectrum-Subheading, subheading-han {}\n @mixin typography .spectrum-Detail, detail-han {}\n @mixin typography .spectrum-Heading1--quiet, heading-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--quiet, heading-quiet-han-2 {}\n @mixin typography .spectrum-Heading1--strong, heading-strong-han-1 {}\n @mixin typography .spectrum-Heading2--strong, heading-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display, display-han-1 {}\n @mixin typography .spectrum-Heading2--display, display-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--strong, display-strong-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--strong, display-strong-han-2 {}\n @mixin typography .spectrum-Heading1--display.spectrum-Heading1--quiet, display-quiet-han-1 {}\n @mixin typography .spectrum-Heading2--display.spectrum-Heading2--quiet, display-quiet-han-2 {}\n }\n}\n@mixin typography .spectrum-Code1, body-code-1, true {\n font-family: var(--spectrum-body-code-1-text-font-family);\n}\n@mixin typography .spectrum-Code2, body-code-2, true {\n font-family: var(--spectrum-body-code-2-text-font-family);\n}\n@mixin typography .spectrum-Code3, body-code-3, true {\n font-family: var(--spectrum-body-code-3-text-font-family);\n}\n@mixin typography .spectrum-Code4, body-code-4, true {\n font-family: var(--spectrum-body-code-4-text-font-family);\n}\n@mixin typography .spectrum-Code5, body-code-5, true {\n font-family: var(--spectrum-body-code-5-text-font-family);\n}*/\n\n/*\n The &.spectrum makes it so users can do
    and still get the right font sizes\n Without this, they would have to do
    , which makes no sense\n*/\n&.spectrum,\n&.spectrum-Body,\n.spectrum,\n.spectrum-Body {\n font-size: var(--spectrum-body-4-text-size);\n font-weight: var(--spectrum-body-4-text-font-weight);\n line-height: var(--spectrum-body-4-text-line-height);\n font-style: var(--spectrum-body-4-text-font-style);\n}\n\n.spectrum-Body--italic {\n font-style: var(--spectrum-body-4-emphasis-text-font-style);\n}\n\n/*\n.spectrum-Body--large {\n @extend .spectrum-Body2;\n}\n\n.spectrum-Body--small {\n @extend .spectrum-Body5;\n}\n\n.spectrum-Body--secondary {\n @extend .spectrum-Body4;\n}\n\n.spectrum-Heading--display {\n @extend .spectrum-Heading2--display.spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--pageTitle {\n @extend .spectrum-Heading2--quiet;\n}\n\n.spectrum-Heading--subtitle1 {\n @extend .spectrum-Heading4;\n}\n\n.spectrum-Heading--subtitle2 {\n @extend .spectrum-Heading6;\n}\n\n.spectrum-Heading--subtitle3 {\n @extend .spectrum-Subheading;\n}*/\n","{\n \"name\": \"@react-spectrum/provider\",\n \"version\": \"3.6.1\",\n \"description\": \"Spectrum UI components in React\",\n \"license\": \"Apache-2.0\",\n \"main\": \"dist/main.js\",\n \"module\": \"dist/module.js\",\n \"types\": \"dist/types.d.ts\",\n \"source\": \"src/index.ts\",\n \"files\": [\n \"dist\",\n \"src\"\n ],\n \"sideEffects\": [\n \"*.css\"\n ],\n \"targets\": {\n \"main\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n },\n \"module\": {\n \"includeNodeModules\": [\n \"@adobe/spectrum-css-temp\"\n ]\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/adobe/react-spectrum\"\n },\n \"dependencies\": {\n \"@react-aria/i18n\": \"^3.6.3\",\n \"@react-aria/overlays\": \"^3.12.1\",\n \"@react-aria/utils\": \"^3.14.2\",\n \"@react-spectrum/utils\": \"^3.8.1\",\n \"@react-types/provider\": \"^3.5.5\",\n \"@react-types/shared\": \"^3.16.0\",\n \"@swc/helpers\": \"^0.4.14\",\n \"clsx\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@adobe/spectrum-css-temp\": \"3.0.0-alpha.1\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0-rc.1 || ^18.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n BreakpointProvider,\n shouldKeepSpectrumClassNames,\n useDOMRef,\n useMatchedBreakpoints,\n useStyleProps\n} from '@react-spectrum/utils';\nimport clsx from 'clsx';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {I18nProvider, useLocale} from '@react-aria/i18n';\nimport {ModalProvider, useModalProvider} from '@react-aria/overlays';\nimport {ProviderContext, ProviderProps} from '@react-types/provider';\nimport React, {useContext, useEffect, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/page/vars.css';\nimport typographyStyles from '@adobe/spectrum-css-temp/components/typography/index.css';\nimport {useColorScheme, useScale} from './mediaQueries';\n// @ts-ignore\nimport {version} from '../package.json';\n\nconst Context = React.createContext(null);\nContext.displayName = 'ProviderContext';\n\nconst DEFAULT_BREAKPOINTS = {S: 640, M: 768, L: 1024, XL: 1280, XXL: 1536};\n\nfunction Provider(props: ProviderProps, ref: DOMRef) {\n let prevContext = useProvider();\n let prevColorScheme = prevContext && prevContext.colorScheme;\n let prevBreakpoints = prevContext && prevContext.breakpoints;\n let {\n theme = prevContext && prevContext.theme,\n defaultColorScheme\n } = props;\n if (!theme) {\n throw new Error('theme not found, the parent provider must have a theme provided');\n }\n // Hooks must always be called.\n let autoColorScheme = useColorScheme(theme, defaultColorScheme);\n let autoScale = useScale(theme);\n let {locale: prevLocale} = useLocale();\n // if the new theme doesn't support the prevColorScheme, we must resort to the auto\n let usePrevColorScheme = !!theme[prevColorScheme];\n\n // importance of color scheme props > parent > auto:(OS > default > omitted)\n let {\n colorScheme = usePrevColorScheme ? prevColorScheme : autoColorScheme,\n scale = prevContext ? prevContext.scale : autoScale,\n locale = prevContext ? prevLocale : null,\n breakpoints = prevContext ? prevBreakpoints : DEFAULT_BREAKPOINTS,\n children,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState,\n ...otherProps\n } = props;\n\n // select only the props with values so undefined props don't overwrite prevContext values\n let currentProps = {\n version,\n theme,\n breakpoints,\n colorScheme,\n scale,\n isQuiet,\n isEmphasized,\n isDisabled,\n isRequired,\n isReadOnly,\n validationState\n };\n\n let matchedBreakpoints = useMatchedBreakpoints(breakpoints);\n let filteredProps = {};\n Object.entries(currentProps).forEach(([key, value]) => value !== undefined && (filteredProps[key] = value));\n\n // Merge options with parent provider\n let context = Object.assign({}, prevContext, filteredProps);\n\n // Only wrap in a DOM node if the theme, colorScheme, or scale changed\n let contents = children;\n let domProps = filterDOMProps(otherProps);\n let {styleProps} = useStyleProps(otherProps, undefined, {matchedBreakpoints});\n if (!prevContext || props.locale || theme !== prevContext.theme || colorScheme !== prevContext.colorScheme || scale !== prevContext.scale || Object.keys(domProps).length > 0 || otherProps.UNSAFE_className || Object.keys(styleProps.style).length > 0) {\n contents = (\n \n {contents}\n \n );\n }\n\n return (\n \n \n \n \n {contents}\n \n \n \n \n );\n}\n\n/**\n * Provider is the container for all React Spectrum applications.\n * It defines the theme, locale, and other application level settings,\n * and can also be used to provide common properties to a group of components.\n */\nlet _Provider = React.forwardRef(Provider);\nexport {_Provider as Provider};\n\nconst ProviderWrapper = React.forwardRef(function ProviderWrapper(props: ProviderProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {locale, direction} = useLocale();\n let {theme, colorScheme, scale} = useProvider();\n let {modalProviderProps} = useModalProvider();\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n let themeKey = Object.keys(theme[colorScheme])[0];\n let scaleKey = Object.keys(theme[scale])[0];\n\n let className = clsx(\n styleProps.className,\n styles['spectrum'],\n typographyStyles['spectrum'],\n Object.values(theme[colorScheme]),\n Object.values(theme[scale]),\n theme.global ? Object.values(theme.global) : null,\n {\n 'react-spectrum-provider': shouldKeepSpectrumClassNames,\n spectrum: shouldKeepSpectrumClassNames,\n [themeKey]: shouldKeepSpectrumClassNames,\n [scaleKey]: shouldKeepSpectrumClassNames\n }\n );\n\n let style = {\n ...styleProps.style,\n // This ensures that browser native UI like scrollbars are rendered in the right color scheme.\n // See https://web.dev/color-scheme/.\n colorScheme: props.colorScheme ?? colorScheme ?? Object.keys(theme).filter(k => k === 'light' || k === 'dark').join(' ')\n };\n\n let hasWarned = useRef(false);\n useEffect(() => {\n if (direction && domRef.current) {\n let closestDir = domRef.current.parentElement.closest('[dir]');\n let dir = closestDir && closestDir.getAttribute('dir');\n if (dir && dir !== direction && !hasWarned.current) {\n console.warn(`Language directions cannot be nested. ${direction} inside ${dir}.`);\n hasWarned.current = true;\n }\n }\n }, [direction, domRef, hasWarned]);\n\n\n return (\n \n {children}\n
    \n );\n});\n\n/**\n * Returns the various settings and styles applied by the nearest parent Provider.\n * Properties explicitly set by the nearest parent Provider override those provided by preceeding Providers.\n */\nexport function useProvider(): ProviderContext {\n return useContext(Context);\n}\n\nexport function useProviderProps(props: T) : T {\n let context = useProvider();\n if (!context) {\n return props;\n }\n return Object.assign({}, {\n isQuiet: context.isQuiet,\n isEmphasized: context.isEmphasized,\n isDisabled: context.isDisabled,\n isRequired: context.isRequired,\n isReadOnly: context.isReadOnly,\n validationState: context.validationState\n }, props);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ColorScheme, Scale} from '@react-types/provider';\nimport {Theme} from '@react-types/provider';\nimport {useMediaQuery} from '@react-spectrum/utils';\n\nexport function useColorScheme(theme: Theme, defaultColorScheme: ColorScheme): ColorScheme {\n let matchesDark = useMediaQuery('(prefers-color-scheme: dark)');\n let matchesLight = useMediaQuery('(prefers-color-scheme: light)');\n\n // importance OS > default > omitted\n\n if (theme.dark && matchesDark) {\n return 'dark';\n }\n\n if (theme.light && matchesLight) {\n return 'light';\n }\n\n if (theme.dark && defaultColorScheme === 'dark') {\n return 'dark';\n }\n\n if (theme.light && defaultColorScheme === 'light') {\n return 'light';\n }\n\n if (!theme.dark) {\n return 'light';\n }\n\n if (!theme.light) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function useScale(theme: Theme): Scale {\n let matchesFine = useMediaQuery('(any-pointer: fine)');\n if (matchesFine && theme.medium) {\n return 'medium';\n }\n\n if (theme.large) {\n return 'large';\n }\n\n return 'medium';\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CornerTriangle;\n\nvar _CornerTriangle = require(\"@adobe/react-spectrum-ui/dist/CornerTriangle\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CornerTriangle(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CornerTriangle.CornerTriangle, null));\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CornerTriangle = CornerTriangle;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CornerTriangle(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\"\n }));\n}\n\nCornerTriangle.displayName = 'CornerTriangle';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, IconColorValue, StyleProps} from '@react-types/shared';\nimport {baseStyleProps, classNames, StyleHandlers, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface IconProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Icon.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * Size of Icon (changes based on scale).\n */\n size?: 'XXS' | 'XS' | 'S' | 'M' | 'L' |'XL' | 'XXL',\n /**\n * A slot to place the icon in.\n * @default 'icon'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true',\n /**\n * Color of the Icon.\n */\n color?: IconColorValue\n}\n\nexport type IconPropsWithoutChildren = Omit;\n\nfunction iconColorValue(value: IconColorValue) {\n return `var(--spectrum-semantic-${value}-color-icon)`;\n}\n\nconst iconStyleProps: StyleHandlers = {\n ...baseStyleProps,\n color: ['color', iconColorValue]\n};\n\n/**\n * Spectrum icons are clear, minimal, and consistent across platforms. They follow the focused and rational principles of the design system in both metaphor and style.\n */\nexport function Icon(props: IconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n size,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, iconStyleProps);\n\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n // Use user specified size, falling back to provider scale if size is undef\n let iconSize = size ? size : scale;\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n `spectrum-Icon--size${iconSize}`,\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {classNames, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/icon/vars.css';\nimport {useProvider} from '@react-spectrum/provider';\n\nexport interface UIIconProps extends DOMProps, AriaLabelingProps, StyleProps {\n children: ReactElement,\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type UIIconPropsWithoutChildren = Omit;\n\nexport function UIIcon(props: UIIconProps) {\n props = useSlotProps(props, 'icon');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n\n let {styleProps} = useStyleProps(otherProps);\n let provider = useProvider();\n let scale = 'M';\n if (provider !== null) {\n scale = provider.scale === 'large' ? 'L' : 'M';\n }\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n scale,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-hidden': (ariaLabel ? (ariaHidden || undefined) : true),\n role: 'img',\n className: classNames(\n styles,\n children.props.className,\n 'spectrum-Icon',\n {\n [`spectrum-UIIcon-${children.type['displayName']}`]: children.type['displayName']\n },\n styleProps.className)\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, StyleProps} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useSlotProps, useStyleProps} from '@react-spectrum/utils';\n\nexport interface IllustrationProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * A screen reader only label for the Illustration.\n */\n 'aria-label'?: string,\n /**\n * The content to display. Should be an SVG.\n */\n children: ReactElement,\n /**\n * A slot to place the illustration in.\n * @default 'illustration'\n */\n slot?: string,\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport type IllustrationPropsWithoutChildren = Omit;\n\n/**\n * Wrapper component for illustrations. Use this to wrap your svg element for a custom illustration.\n */\nexport function Illustration(props: IllustrationProps) {\n props = useSlotProps(props, 'illustration');\n let {\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n\n let hasLabel = ariaLabel || ariaLabelledby;\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n return React.cloneElement(children, {\n ...filterDOMProps(otherProps),\n ...styleProps,\n focusable: 'false',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-hidden': ariaHidden,\n role: hasLabel ? 'img' : undefined\n });\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CrossSmall;\n\nvar _CrossSmall = require(\"@adobe/react-spectrum-ui/dist/CrossSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CrossSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CrossSmall.CrossSmall, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CrossSmall = CrossSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CrossSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 1 0-.884-.884L5 4.116 1.567.683a.625.625 0 1 0-.884.884C.83 1.713 2.77 3.657 4.116 5L.683 8.433a.625.625 0 1 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 1 0-.884-.884L4 3.116 1.567.683a.625.625 0 1 0-.884.884L3.116 4 .683 6.433a.625.625 0 1 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z\"\n }));\n}\n\nCrossSmall.displayName = 'CrossSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ToggleProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface ToggleState {\n /** Whether the toggle is selected. */\n readonly isSelected: boolean,\n\n /** Updates selection state. */\n setSelected(isSelected: boolean): void,\n\n /** Toggle the selection state. */\n toggle(): void\n}\n\n/**\n * Provides state management for toggle components like checkboxes and switches.\n */\nexport function useToggleState(props: ToggleProps = {}): ToggleState {\n let {isReadOnly} = props;\n\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, props.onChange);\n\n function updateSelected(value) {\n if (!isReadOnly) {\n setSelected(value);\n }\n }\n\n function toggleState() {\n if (!isReadOnly) {\n setSelected(!isSelected);\n }\n }\n\n return {\n isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n classNames,\n SlotProvider,\n useFocusableRef,\n useHasChild,\n useSlotProps,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType, ReactElement} from 'react';\nimport {SpectrumButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction Button(props: SpectrumButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'button');\n let {\n elementType: ElementType = 'button',\n children,\n variant,\n style = variant === 'accent' || variant === 'cta' ? 'fill' : 'outline',\n staticColor,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let hasLabel = useHasChild(`.${styles['spectrum-Button-label']}`, domRef);\n let hasIcon = useHasChild(`.${styles['spectrum-Icon']}`, domRef);\n\n if (variant === 'cta') {\n variant = 'accent';\n } else if (variant === 'overBackground') {\n variant = 'primary';\n staticColor = 'white';\n }\n\n return (\n \n \n \n {typeof children === 'string'\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * Buttons allow users to perform an action or to navigate to another page.\n * They have multiple styles for various needs, and are ideal for calling attention to\n * where a user needs to do something in order to move forward in a flow.\n */\nlet _Button = React.forwardRef(Button) as (props: SpectrumButtonProps & {ref?: FocusableRef}) => ReactElement;\nexport {_Button as Button};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport CornerTriangle from '@spectrum-icons/ui/CornerTriangle';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumActionButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction ActionButton(props: SpectrumActionButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n props = useSlotProps(props, 'actionButton');\n let {\n isQuiet,\n isDisabled,\n staticColor,\n children,\n autoFocus,\n // @ts-ignore (private)\n holdAffordance,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n {holdAffordance &&\n \n }\n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ActionButtons allow users to perform an action.\n * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.\n */\nlet _ActionButton = React.forwardRef(ActionButton);\nexport {_ActionButton as ActionButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonProps} from '@react-types/button';\nimport {classNames, SlotProvider, useFocusableRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface FieldButtonProps extends ButtonProps, DOMProps, StyleProps {\n isQuiet?: boolean,\n isActive?: boolean,\n validationState?: 'valid' | 'invalid',\n focusRingClass?: string\n}\n\n// @private\nfunction FieldButton(props: FieldButtonProps, ref: FocusableRef) {\n props = useSlotProps(props, 'button');\n let {\n isQuiet,\n isDisabled,\n validationState,\n children,\n autoFocus,\n isActive,\n focusRingClass,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref) as RefObject;\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _FieldButton = React.forwardRef(FieldButton);\nexport {_FieldButton as FieldButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumLogicButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\n\nfunction LogicButton(props: SpectrumLogicButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n variant,\n children,\n isDisabled,\n autoFocus,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton(props, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n return (\n \n \n {children}\n \n \n );\n}\n\n/**\n * A LogicButton displays an operator within a boolean logic sequence.\n */\nlet _LogicButton = React.forwardRef(LogicButton);\nexport {_LogicButton as LogicButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonElementTypeProps, ButtonProps} from '@react-types/button';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport CrossSmall from '@spectrum-icons/ui/CrossSmall';\nimport {DOMProps, FocusableRef, StyleProps} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ElementType} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {useButton} from '@react-aria/button';\nimport {useHover} from '@react-aria/interactions';\n\ninterface ClearButtonProps extends ButtonProps, AriaButtonElementTypeProps, DOMProps, StyleProps {\n focusClassName?: string,\n variant?: 'overBackground',\n excludeFromTabOrder?: boolean,\n preventFocus?: boolean\n}\n\nfunction ClearButton(props: ClearButtonProps, ref: FocusableRef) {\n let {\n children = ,\n focusClassName,\n variant,\n autoFocus,\n isDisabled,\n preventFocus,\n elementType = preventFocus ? 'div' : 'button' as ElementType,\n ...otherProps\n } = props;\n let domRef = useFocusableRef(ref);\n let {buttonProps, isPressed} = useButton({...props, elementType}, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n\n // For cases like the clear button in a search field, remove the tabIndex so\n // iOS 14 with VoiceOver doesn't focus the button and hide the keyboard when\n // moving the cursor over the clear button.\n if (preventFocus) {\n delete buttonProps.tabIndex;\n }\n\n let ElementType = elementType;\n return (\n \n \n {children}\n \n \n );\n}\n\nlet _ClearButton = React.forwardRef(ClearButton);\nexport {_ClearButton as ClearButton};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumToggleButtonProps} from '@react-types/button';\nimport styles from '@adobe/spectrum-css-temp/components/button/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleButton} from '@react-aria/button';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction ToggleButton(props: SpectrumToggleButtonProps, ref: FocusableRef) {\n props = useProviderProps(props);\n let {\n isQuiet,\n isDisabled,\n isEmphasized,\n staticColor,\n children,\n autoFocus,\n ...otherProps\n } = props;\n\n let domRef = useFocusableRef(ref);\n let state = useToggleState(props);\n let {buttonProps, isPressed} = useToggleButton(props, state, domRef);\n let {hoverProps, isHovered} = useHover({isDisabled});\n let {styleProps} = useStyleProps(otherProps);\n let isTextOnly = React.Children.toArray(props.children).every(c => !React.isValidElement(c));\n\n return (\n \n \n \n {typeof children === 'string' || isTextOnly\n ? {children}\n : children}\n \n \n \n );\n}\n\n/**\n * ToggleButtons allow users to toggle a selection on or off, for example\n * switching between two states or modes.\n */\nlet _ToggleButton = React.forwardRef(ToggleButton);\nexport {_ToggleButton as ToggleButton};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = FolderBreadcrumb;\n\nvar _FolderBreadcrumb = require(\"@adobe/react-spectrum-ui/dist/FolderBreadcrumb\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction FolderBreadcrumb(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_FolderBreadcrumb.FolderBreadcrumb, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FolderBreadcrumb = FolderBreadcrumb;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction FolderBreadcrumb(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M19.5 6l-9.166.004-1.668-1.7A.998.998 0 0 0 7.946 4H3a1 1 0 0 0-1 1v13a.5.5 0 0 0 .5.5h17a.5.5 0 0 0 .5-.5V6.5a.5.5 0 0 0-.5-.5zm-16-.5h4.237l1.964 2H3.5zm11.544 6.044l-3.5 3.5a.77.77 0 0 1-1.088 0l-3.5-3.5a.77.77 0 0 1 1.088-1.088L11 13.41l2.956-2.955a.77.77 0 0 1 1.088 1.088z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z\"\n }));\n}\n\nFolderBreadcrumb.displayName = 'FolderBreadcrumb';","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\nimport {Transition} from 'react-transition-group';\n\nconst OPEN_STATES = {\n entering: false,\n entered: true\n};\n\n/**\n * Timeout issues adding css animations to enter may be related to\n * https://github.com/reactjs/react-transition-group/issues/189 or\n * https://github.com/reactjs/react-transition-group/issues/22\n * my VM isn't good enough to debug accurately and get a better answer.\n *\n * As a result, use enter 0 so that is-open is applied once entered\n * it doesn't matter if we know when the css-animation is done on entering\n * for exiting though, give time for the css-animation to play\n * before removing from the DOM\n * **note** hitting esc bypasses exit animation for anyone testing.\n */\n\nexport function OpenTransition(props) {\n // Do not apply any transition if in chromatic.\n if (process.env.CHROMATIC) {\n return React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: props.in}));\n }\n\n return (\n \n {(state) => React.Children.map(props.children, child => child && React.cloneElement(child, {isOpen: !!OPEN_STATES[state]}))}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMRef} from '@react-types/shared';\nimport {OpenTransition} from './OpenTransition';\nimport {OverlayProps} from '@react-types/overlays';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useCallback, useState} from 'react';\nimport {Overlay as ReactAriaOverlay} from '@react-aria/overlays';\n\nfunction Overlay(props: OverlayProps, ref: DOMRef) {\n let {children, isOpen, container, onEnter, onEntering, onEntered, onExit, onExiting, onExited} = props;\n let [exited, setExited] = useState(!isOpen);\n\n let handleEntered = useCallback(() => {\n setExited(false);\n if (onEntered) {\n onEntered();\n }\n }, [onEntered]);\n\n let handleExited = useCallback(() => {\n setExited(true);\n if (onExited) {\n onExited();\n }\n }, [onExited]);\n\n // Don't un-render the overlay while it's transitioning out.\n let mountOverlay = isOpen || !exited;\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nlet _Overlay = React.forwardRef(Overlay);\nexport {_Overlay as Overlay};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum-Popover {\n /* This makes the contents of popovers focusable immediately, without waiting\n a frame for animations to start. */\n &.react-spectrum-Popover {\n visibility: visible;\n }\n\n .spectrum-Dialog-content {\n max-height: initial;\n }\n}\n\n.spectrum-Modal-wrapper.react-spectrum-Modal-wrapper,\n.spectrum-Modal.react-spectrum-Modal {\n visibility: visible;\n}\n\n.spectrum-Tray.react-spectrum-Tray {\n visibility: visible;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport React from 'react';\nimport underlayStyles from '@adobe/spectrum-css-temp/components/underlay/vars.css';\n\ninterface UnderlayProps {\n isOpen?: boolean,\n isTransparent?: boolean\n}\n\nexport function Underlay({isOpen, isTransparent}: UnderlayProps) {\n return (\n
    \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaPopoverProps, DismissButton, usePopover} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject, useRef, useState} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/popover/vars.css';\nimport {Underlay} from './Underlay';\nimport {useLayoutEffect} from '@react-aria/utils';\n\ninterface PopoverProps extends Omit, StyleProps {\n children: ReactNode,\n hideArrow?: boolean,\n state: OverlayTriggerState\n}\n\ninterface PopoverWrapperProps extends PopoverProps {\n isOpen?: boolean\n}\n\n/**\n * Arrow placement can be done pointing right or down because those paths start at 0, x or y. Because the\n * other two don't, they start at a fractional pixel value, it introduces rounding differences between browsers and\n * between display types (retina with subpixels vs not retina). By flipping them with CSS we can ensure that\n * the path always starts at 0 so that it perfectly overlaps the popover's border.\n * See bottom of file for more explanation.\n */\nlet arrowPlacement = {\n left: 'right',\n right: 'right',\n top: 'bottom',\n bottom: 'bottom'\n};\n\nfunction Popover(props: PopoverProps, ref: DOMRef) {\n let {\n children,\n state,\n ...otherProps\n } = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nconst PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject) => {\n let {\n children,\n isOpen,\n hideArrow,\n isNonModal,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {popoverProps, arrowProps, underlayProps, placement} = usePopover({\n ...props,\n popoverRef: ref,\n maxHeight: null\n }, state);\n\n return (\n <>\n {!isNonModal && }\n \n {!isNonModal && }\n {children}\n {hideArrow ? null : (\n \n )}\n \n
    \n \n );\n});\n\nlet ROOT_2 = Math.sqrt(2);\n\nfunction Arrow(props) {\n let [size, setSize] = useState(20);\n let [borderWidth, setBorderWidth] = useState(1);\n let ref = useRef();\n // get the css value for the tip size and divide it by 2 for this arrow implementation\n useLayoutEffect(() => {\n if (ref.current) {\n let spectrumTipWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-size');\n if (spectrumTipWidth !== '') {\n setSize(parseInt(spectrumTipWidth, 10) / 2);\n }\n\n let spectrumBorderWidth = window.getComputedStyle(ref.current)\n .getPropertyValue('--spectrum-popover-tip-borderWidth');\n if (spectrumBorderWidth !== '') {\n setBorderWidth(parseInt(spectrumBorderWidth, 10));\n }\n }\n }, [ref]);\n\n let landscape = props.direction === 'top' || props.direction === 'bottom';\n let mirror = props.direction === 'left' || props.direction === 'top';\n\n let borderDiagonal = borderWidth * ROOT_2;\n let halfBorderDiagonal = borderDiagonal / 2;\n\n let secondary = 2 * size + 2 * borderDiagonal;\n let primary = size + borderDiagonal;\n\n let primaryStart = mirror ? primary : 0;\n let primaryEnd = mirror ? halfBorderDiagonal : primary - halfBorderDiagonal;\n\n let secondaryStart = halfBorderDiagonal;\n let secondaryMiddle = secondary / 2;\n let secondaryEnd = secondary - halfBorderDiagonal;\n\n let pathData = landscape ? [\n 'M', secondaryStart, primaryStart,\n 'L', secondaryMiddle, primaryEnd,\n 'L', secondaryEnd, primaryStart\n ] : [\n 'M', primaryStart, secondaryStart,\n 'L', primaryEnd, secondaryMiddle,\n 'L', primaryStart, secondaryEnd\n ];\n let arrowProps = props.arrowProps;\n\n /* use ceil because the svg needs to always accomodate the path inside it */\n return (\n \n \n \n );\n}\n\nlet _Popover = forwardRef(Popover);\nexport {_Popover as Popover};\n\n/**\n * More explanation on popover tips.\n * - I tried changing the calculation of the popover placement in an effort to get it squarely onto the pixel grid.\n * This did not work because the problem was in the svg partial pixel end of the path in the popover right and popover bottom.\n * - I tried creating an extra 'bandaid' path that matched the background color and would overlap the popover border.\n * This didn't work because the border on the svg triangle didn't extend all the way to match nicely with the popover border.\n * - I tried getting the client bounding box and setting the svg to that partial pixel value\n * This didn't work because again the issue was inside the svg\n * - I didn't try drawing the svg backwards\n * This could still be tried\n * - I tried changing the calculation of the popover placement AND the svg height/width so that they were all rounded\n * This seems to have done the trick.\n */\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport modalStyles from '@adobe/spectrum-css-temp/components/modal/vars.css';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface ModalProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover'\n}\n\ninterface ModalWrapperProps extends ModalProps {\n isOpen?: boolean\n}\n\nfunction Modal(props: ModalProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet typeMap = {\n fullscreen: 'fullscreen',\n fullscreenTakeover: 'fullscreenTakeover'\n};\n\nlet ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: RefObject) {\n let {type, children, state, isOpen} = props;\n let typeVariant = typeMap[type];\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay(props, state, ref);\n\n let wrapperClassName = classNames(\n modalStyles,\n 'spectrum-Modal-wrapper',\n classNames(\n overrideStyles,\n 'spectrum-Modal-wrapper',\n 'react-spectrum-Modal-wrapper'\n )\n );\n\n let modalClassName = classNames(\n modalStyles,\n 'spectrum-Modal',\n {\n 'is-open': isOpen\n },\n classNames(\n overrideStyles,\n 'spectrum-Modal',\n 'react-spectrum-Modal'\n ),\n {[`spectrum-Modal--${typeVariant}`]: typeVariant},\n styleProps.className\n );\n\n let viewport = useViewportSize();\n let style: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n return (\n <>\n \n
    \n \n {children}\n
    \n
    \n \n );\n});\n\nlet _Modal = forwardRef(Modal);\nexport {_Modal as Modal};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, DismissButton, useModalOverlay} from '@react-aria/overlays';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport {Overlay} from './Overlay';\nimport {OverlayProps} from '@react-types/overlays';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport overrideStyles from './overlays.css';\nimport React, {forwardRef, ReactNode, RefObject} from 'react';\nimport trayStyles from '@adobe/spectrum-css-temp/components/tray/vars.css';\nimport {Underlay} from './Underlay';\nimport {useViewportSize} from '@react-aria/utils';\n\ninterface TrayProps extends AriaModalOverlayProps, StyleProps, OverlayProps {\n children: ReactNode,\n state: OverlayTriggerState,\n isFixedHeight?: boolean\n}\n\ninterface TrayWrapperProps extends TrayProps {\n isOpen?: boolean\n}\n\nfunction Tray(props: TrayProps, ref: DOMRef) {\n let {children, state, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nlet TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject) {\n let {\n children,\n isOpen,\n isFixedHeight,\n state\n } = props;\n let {styleProps} = useStyleProps(props);\n\n let {modalProps, underlayProps} = useModalOverlay({\n ...props,\n isDismissable: true\n }, state, ref);\n\n // We need to measure the window's height in JS rather than using percentages in CSS\n // so that contents (e.g. menu) can inherit the max-height properly. Using percentages\n // does not work properly because there is nothing to base the percentage on.\n // We cannot use vh units because mobile browsers adjust the window height dynamically\n // when the address bar/bottom toolbars show and hide on scroll and vh units are fixed.\n // Also, the visual viewport is smaller than the layout viewport when the virtual keyboard\n // is up, so use the VisualViewport API to ensure the tray is displayed above the keyboard.\n let viewport = useViewportSize();\n let wrapperStyle: any = {\n '--spectrum-visual-viewport-height': viewport.height + 'px'\n };\n\n let wrapperClassName = classNames(\n trayStyles,\n 'spectrum-Tray-wrapper'\n );\n\n let className = classNames(\n trayStyles,\n 'spectrum-Tray',\n {\n 'is-open': isOpen,\n 'spectrum-Tray--fixedHeight': isFixedHeight\n },\n classNames(\n overrideStyles,\n 'spectrum-Tray',\n 'react-spectrum-Tray'\n ),\n styleProps.className\n );\n\n return (\n <>\n \n
    \n \n \n {children}\n \n
    \n
    \n \n );\n});\n\nlet _Tray = forwardRef(Tray);\nexport {_Tray as Tray};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAppleDevice} from '@react-aria/utils';\nimport {isMac} from '@react-aria/utils';\n\ninterface Event {\n altKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean\n}\n\nexport function isNonContiguousSelectionModifier(e: Event) {\n // Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.\n // On Windows and Ubuntu, Alt + Space has a system wide meaning.\n return isAppleDevice() ? e.altKey : e.ctrlKey;\n}\n\nexport function isCtrlKeyPressed(e: Event) {\n if (isMac()) {\n return e.metaKey;\n }\n\n return e.ctrlKey;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {Key, KeyboardEvent, useRef} from 'react';\nimport {MultipleSelectionManager} from '@react-stately/selection';\n\n/**\n * Controls how long to wait before clearing the typeahead buffer.\n */\nconst TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000; // 1 second\n\nexport interface AriaTypeSelectOptions {\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * Called when an item is focused by typing.\n */\n onTypeSelect?: (key: Key) => void\n}\n\nexport interface TypeSelectAria {\n /**\n * Props to be spread on the owner of the options.\n */\n typeSelectProps: DOMAttributes\n}\n\n/**\n * Handles typeahead interactions with collections.\n */\nexport function useTypeSelect(options: AriaTypeSelectOptions): TypeSelectAria {\n let {keyboardDelegate, selectionManager, onTypeSelect} = options;\n let state = useRef({\n search: '',\n timeout: null\n }).current;\n\n let onKeyDown = (e: KeyboardEvent) => {\n let character = getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey) {\n return;\n }\n\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character === ' ' && state.search.trim().length > 0) {\n e.preventDefault();\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n }\n\n state.search += character;\n\n // Use the delegate to find a key to focus.\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);\n\n // If no key found, search from the top.\n if (key == null) {\n key = keyboardDelegate.getKeyForSearch(state.search);\n }\n\n if (key != null) {\n selectionManager.setFocusedKey(key);\n if (onTypeSelect) {\n onTypeSelect(key);\n }\n }\n\n clearTimeout(state.timeout);\n state.timeout = setTimeout(() => {\n state.search = '';\n }, TYPEAHEAD_DEBOUNCE_WAIT_MS);\n };\n\n return {\n typeSelectProps: {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : null\n }\n };\n}\n\nfunction getStringForKey(key: string) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n\n return '';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, FocusStrategy, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, Key, KeyboardEvent, RefObject, useEffect, useRef} from 'react';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {focusWithoutScrolling, mergeProps, scrollIntoView, useEvent} from '@react-aria/utils';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useLocale} from '@react-aria/i18n';\nimport {useTypeSelect} from './useTypeSelect';\n\nexport interface AriaSelectableCollectionOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A delegate object that implements behavior for keyboard focus movement.\n */\n keyboardDelegate: KeyboardDelegate,\n /**\n * The ref attached to the element representing the collection.\n */\n ref: RefObject,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether the collection allows the user to select all items via keyboard shortcut.\n * @default false\n */\n disallowSelectAll?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean,\n /**\n * Whether the collection items are contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * The ref attached to the scrollable body. Used to provide automatic scrolling on item focus for non-virtualized collections.\n * If not provided, defaults to the collection ref.\n */\n scrollRef?: RefObject\n}\n\nexport interface SelectableCollectionAria {\n /** Props for the collection element. */\n collectionProps: DOMAttributes\n}\n\n/**\n * Handles interactions with selectable collections.\n */\nexport function useSelectableCollection(options: AriaSelectableCollectionOptions): SelectableCollectionAria {\n let {\n selectionManager: manager,\n keyboardDelegate: delegate,\n ref,\n autoFocus = false,\n shouldFocusWrap = false,\n disallowEmptySelection = false,\n disallowSelectAll = false,\n selectOnFocus = manager.selectionBehavior === 'replace',\n disallowTypeAhead = false,\n shouldUseVirtualFocus,\n allowsTabNavigation = false,\n isVirtualized,\n // If no scrollRef is provided, assume the collection ref is the scrollable region\n scrollRef = ref\n } = options;\n let {direction} = useLocale();\n\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Prevent option + tab from doing anything since it doesn't move focus to the cells, only buttons/checkboxes\n if (e.altKey && e.key === 'Tab') {\n e.preventDefault();\n }\n\n // Keyboard events bubble through portals. Don't handle keyboard events\n // for elements outside the collection (e.g. menus).\n if (!ref.current.contains(e.target as Element)) {\n return;\n }\n\n const navigateToKey = (key: Key | undefined, childFocus?: FocusStrategy) => {\n if (key != null) {\n manager.setFocusedKey(key, childFocus);\n\n if (e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(key);\n } else if (selectOnFocus && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n }\n };\n\n switch (e.key) {\n case 'ArrowDown': {\n if (delegate.getKeyBelow) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyBelow(manager.focusedKey)\n : delegate.getFirstKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getFirstKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowUp': {\n if (delegate.getKeyAbove) {\n e.preventDefault();\n let nextKey = manager.focusedKey != null\n ? delegate.getKeyAbove(manager.focusedKey)\n : delegate.getLastKey?.();\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getLastKey?.(manager.focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case 'ArrowLeft': {\n if (delegate.getKeyLeftOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyLeftOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'first' : 'last');\n }\n break;\n }\n case 'ArrowRight': {\n if (delegate.getKeyRightOf) {\n e.preventDefault();\n let nextKey = delegate.getKeyRightOf(manager.focusedKey);\n navigateToKey(nextKey, direction === 'rtl' ? 'last' : 'first');\n }\n break;\n }\n case 'Home':\n if (delegate.getFirstKey) {\n e.preventDefault();\n let firstKey = delegate.getFirstKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(firstKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(firstKey);\n }\n }\n break;\n case 'End':\n if (delegate.getLastKey) {\n e.preventDefault();\n let lastKey = delegate.getLastKey(manager.focusedKey, isCtrlKeyPressed(e));\n manager.setFocusedKey(lastKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(lastKey);\n }\n }\n break;\n case 'PageDown':\n if (delegate.getKeyPageBelow) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageBelow(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'PageUp':\n if (delegate.getKeyPageAbove) {\n e.preventDefault();\n let nextKey = delegate.getKeyPageAbove(manager.focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case 'a':\n if (isCtrlKeyPressed(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case 'Escape':\n e.preventDefault();\n if (!disallowEmptySelection) {\n manager.clearSelection();\n }\n break;\n case 'Tab': {\n if (!allowsTabNavigation) {\n // There may be elements that are \"tabbable\" inside a collection (e.g. in a grid cell).\n // However, collections should be treated as a single tab stop, with arrow key navigation internally.\n // We don't control the rendering of these, so we can't override the tabIndex to prevent tabbing.\n // Instead, we handle the Tab key, and move focus manually to the first/last tabbable element\n // in the collection, so that the browser default behavior will apply starting from that element\n // rather than the currently focused one.\n if (e.shiftKey) {\n ref.current.focus();\n } else {\n let walker = getFocusableTreeWalker(ref.current, {tabbable: true});\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n\n if (next && !next.contains(document.activeElement)) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n\n // Store the scroll position so we can restore it later.\n let scrollPos = useRef({top: 0, left: 0});\n useEvent(scrollRef, 'scroll', isVirtualized ? null : () => {\n scrollPos.current = {\n top: scrollRef.current.scrollTop,\n left: scrollRef.current.scrollLeft\n };\n });\n\n let onFocus = (e: FocusEvent) => {\n if (manager.isFocused) {\n // If a focus event bubbled through a portal, reset focus state.\n if (!e.currentTarget.contains(e.target)) {\n manager.setFocused(false);\n }\n\n return;\n }\n\n // Focus events can bubble through portals. Ignore these events.\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n manager.setFocused(true);\n\n if (manager.focusedKey == null) {\n let navigateToFirstKey = (key: Key | undefined) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (selectOnFocus) {\n manager.replaceSelection(key);\n }\n }\n };\n // If the user hasn't yet interacted with the collection, there will be no focusedKey set.\n // Attempt to detect whether the user is tabbing forward or backward into the collection\n // and either focus the first or last item accordingly.\n let relatedTarget = e.relatedTarget as Element;\n if (relatedTarget && (e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING)) {\n navigateToFirstKey(manager.lastSelectedKey ?? delegate.getLastKey());\n } else {\n navigateToFirstKey(manager.firstSelectedKey ?? delegate.getFirstKey());\n }\n } else if (!isVirtualized) {\n // Restore the scroll position to what it was before.\n scrollRef.current.scrollTop = scrollPos.current.top;\n scrollRef.current.scrollLeft = scrollPos.current.left;\n\n // Refocus and scroll the focused item into view if it exists within the scrollable region.\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n // This prevents a flash of focus on the first/last element in the collection\n focusWithoutScrolling(element);\n scrollIntoView(scrollRef.current, element);\n }\n }\n };\n\n let onBlur = (e) => {\n // Don't set blurred and then focused again if moving focus within the collection.\n if (!e.currentTarget.contains(e.relatedTarget as HTMLElement)) {\n manager.setFocused(false);\n }\n };\n\n const autoFocusRef = useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n let focusedKey = null;\n\n // Check focus strategy to determine which item to focus\n if (autoFocus === 'first') {\n focusedKey = delegate.getFirstKey();\n } if (autoFocus === 'last') {\n focusedKey = delegate.getLastKey();\n }\n\n // If there are any selected keys, make the first one the new focus target\n let selectedKeys = manager.selectedKeys;\n if (selectedKeys.size) {\n focusedKey = selectedKeys.values().next().value;\n }\n\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n\n // If no default focus key is selected, focus the collection itself.\n if (focusedKey == null && !shouldUseVirtualFocus) {\n focusSafely(ref.current);\n }\n }\n autoFocusRef.current = false;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // If not virtualized, scroll the focused element into view when the focusedKey changes.\n // When virtualized, Virtualizer handles this internally.\n useEffect(() => {\n if (!isVirtualized && manager.focusedKey && scrollRef?.current) {\n let element = scrollRef.current.querySelector(`[data-key=\"${manager.focusedKey}\"]`) as HTMLElement;\n if (element) {\n scrollIntoView(scrollRef.current, element);\n }\n }\n }, [isVirtualized, scrollRef, manager.focusedKey]);\n\n let handlers = {\n onKeyDown,\n onFocus,\n onBlur,\n onMouseDown(e) {\n // Ignore events that bubbled through portals.\n if (scrollRef.current === e.target) {\n // Prevent focus going to the collection when clicking on the scrollbar.\n e.preventDefault();\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: manager\n });\n\n if (!disallowTypeAhead) {\n handlers = mergeProps(typeSelectProps, handlers);\n }\n\n // If nothing is focused within the collection, make the collection itself tabbable.\n // This will be marshalled to either the first or last item depending on where focus came from.\n // If using virtual focus, don't set a tabIndex at all so that VoiceOver on iOS 14 doesn't try\n // to move real DOM focus to the element anyway.\n let tabIndex: number;\n if (!shouldUseVirtualFocus) {\n tabIndex = manager.focusedKey == null ? 0 : -1;\n }\n\n return {\n collectionProps: {\n ...handlers,\n tabIndex\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, LongPressEvent, PressEvent} from '@react-types/shared';\nimport {focusSafely} from '@react-aria/focus';\nimport {isCtrlKeyPressed, isNonContiguousSelectionModifier} from './utils';\nimport {Key, RefObject, useEffect, useRef} from 'react';\nimport {mergeProps} from '@react-aria/utils';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {PressProps, useLongPress, usePress} from '@react-aria/interactions';\n\nexport interface SelectableItemOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * A unique key for the item.\n */\n key: Key,\n /**\n * Ref to the item.\n */\n ref: RefObject,\n /**\n * By default, selection occurs on pointer down. This can be strange if selecting an\n * item causes the UI to disappear immediately (e.g. menus).\n */\n shouldSelectOnPressUp?: boolean,\n /**\n * Whether selection requires the pointer/mouse down and up events to occur on the same target or triggers selection on\n * the target of the pointer/mouse up event.\n */\n allowsDifferentPressOrigin?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Function to focus the item.\n */\n focus?: () => void,\n /**\n * Whether the option should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /** Whether the item is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void\n}\n\nexport interface SelectableItemStates {\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /**\n * Whether the item is non-interactive, i.e. both selection and actions are disabled and the item may\n * not be focused. Dependent on `disabledKeys` and `disabledBehavior`.\n */\n isDisabled: boolean,\n /**\n * Whether the item may be selected, dependent on `selectionMode`, `disabledKeys`, and `disabledBehavior`.\n */\n allowsSelection: boolean,\n /**\n * Whether the item has an action, dependent on `onAction`, `disabledKeys`,\n * and `disabledBehavior`. It may also change depending on the current selection state\n * of the list (e.g. when selection is primary). This can be used to enable or disable hover\n * styles or other visual indications of interactivity.\n */\n hasAction: boolean\n}\n\nexport interface SelectableItemAria extends SelectableItemStates {\n /**\n * Props to be spread on the item root node.\n */\n itemProps: DOMAttributes\n}\n\n/**\n * Handles interactions with an item in a selectable collection.\n */\nexport function useSelectableItem(options: SelectableItemOptions): SelectableItemAria {\n let {\n selectionManager: manager,\n key,\n ref,\n shouldSelectOnPressUp,\n isVirtualized,\n shouldUseVirtualFocus,\n focus,\n isDisabled,\n onAction,\n allowsDifferentPressOrigin\n } = options;\n\n let onSelect = (e: PressEvent | LongPressEvent | PointerEvent) => {\n if (e.pointerType === 'keyboard' && isNonContiguousSelectionModifier(e)) {\n manager.toggleSelection(key);\n } else {\n if (manager.selectionMode === 'none') {\n return;\n }\n\n if (manager.selectionMode === 'single') {\n if (manager.isSelected(key) && !manager.disallowEmptySelection) {\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n } else if (e && e.shiftKey) {\n manager.extendSelection(key);\n } else if (manager.selectionBehavior === 'toggle' || (e && (isCtrlKeyPressed(e) || e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n manager.toggleSelection(key);\n } else {\n manager.replaceSelection(key);\n }\n }\n };\n\n // Focus the associated DOM node when this item becomes the focusedKey\n useEffect(() => {\n let isFocused = key === manager.focusedKey;\n if (isFocused && manager.isFocused && !shouldUseVirtualFocus && document.activeElement !== ref.current) {\n if (focus) {\n focus();\n } else {\n focusSafely(ref.current);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, key, manager.focusedKey, manager.childFocusStrategy, manager.isFocused, shouldUseVirtualFocus]);\n\n isDisabled = isDisabled || manager.isDisabled(key);\n // Set tabIndex to 0 if the element is focused, or -1 otherwise so that only the last focused\n // item is tabbable. If using virtual focus, don't set a tabIndex at all so that VoiceOver\n // on iOS 14 doesn't try to move real DOM focus to the item anyway.\n let itemProps: SelectableItemAria['itemProps'] = {};\n if (!shouldUseVirtualFocus && !isDisabled) {\n itemProps = {\n tabIndex: key === manager.focusedKey ? 0 : -1,\n onFocus(e) {\n if (e.target === ref.current) {\n manager.setFocusedKey(key);\n }\n }\n };\n } else if (isDisabled) {\n itemProps.onMouseDown = (e) => {\n // Prevent focus going to the body when clicking on a disabled item.\n e.preventDefault();\n };\n }\n\n // With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click of the row.\n // Clicking the checkbox enters selection mode, after which clicking anywhere on any row toggles selection for that row.\n // With highlight selection, onAction is secondary, and occurs on double click. Single click selects the row.\n // With touch, onAction occurs on single tap, and long press enters selection mode.\n let allowsSelection = !isDisabled && manager.canSelectItem(key);\n let allowsActions = onAction && !isDisabled;\n let hasPrimaryAction = allowsActions && (\n manager.selectionBehavior === 'replace'\n ? !allowsSelection\n : manager.isEmpty\n );\n let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === 'replace';\n let hasAction = hasPrimaryAction || hasSecondaryAction;\n let modality = useRef(null);\n\n let longPressEnabled = hasAction && allowsSelection;\n let longPressEnabledOnPressStart = useRef(false);\n let hadPrimaryActionOnPressStart = useRef(false);\n\n // By default, selection occurs on pointer down. This can be strange if selecting an\n // item causes the UI to disappear immediately (e.g. menus).\n // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.\n // onPress requires a pointer down event on the same element as pointer up. For menus,\n // we want to be able to have the pointer down on the trigger that opens the menu and\n // the pointer up on the menu item rather than requiring a separate press.\n // For keyboard events, selection still occurs on key down.\n let itemPressProps: PressProps = {};\n if (shouldSelectOnPressUp) {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n if (e.pointerType === 'keyboard' && (!hasAction || isSelectionKey())) {\n onSelect(e);\n }\n };\n\n // If allowsDifferentPressOrigin, make selection happen on pressUp (e.g. open menu on press down, selection on menu item happens on press up.)\n // Otherwise, have selection happen onPress (prevents listview row selection when clicking on interactable elements in the row)\n if (!allowsDifferentPressOrigin) {\n itemPressProps.onPress = (e) => {\n if (hasPrimaryAction || (hasSecondaryAction && e.pointerType !== 'mouse')) {\n if (e.pointerType === 'keyboard' && !isActionKey()) {\n return;\n }\n\n onAction();\n } else if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n } else {\n itemPressProps.onPressUp = (e) => {\n if (e.pointerType !== 'keyboard') {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = hasPrimaryAction ? () => onAction() : null;\n }\n } else {\n itemPressProps.onPressStart = (e) => {\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n hadPrimaryActionOnPressStart.current = hasPrimaryAction;\n\n // Select on mouse down unless there is a primary action which will occur on mouse up.\n // For keyboard, select on key down. If there is an action, the Space key selects on key down,\n // and the Enter key performs onAction on key up.\n if (\n (e.pointerType === 'mouse' && !hasPrimaryAction) ||\n (e.pointerType === 'keyboard' && (!onAction || isSelectionKey()))\n ) {\n onSelect(e);\n }\n };\n\n itemPressProps.onPress = (e) => {\n // Selection occurs on touch up. Primary actions always occur on pointer up.\n // Both primary and secondary actions occur on Enter key up. The only exception\n // is secondary actions, which occur on double click with a mouse.\n if (\n e.pointerType === 'touch' ||\n e.pointerType === 'pen' ||\n e.pointerType === 'virtual' ||\n (e.pointerType === 'keyboard' && hasAction && isActionKey()) ||\n (e.pointerType === 'mouse' && hadPrimaryActionOnPressStart.current)\n ) {\n if (hasAction) {\n onAction();\n } else {\n onSelect(e);\n }\n }\n };\n }\n\n if (!isVirtualized) {\n itemProps['data-key'] = key;\n }\n\n itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;\n let {pressProps, isPressed} = usePress(itemPressProps);\n\n // Double clicking with a mouse with selectionBehavior = 'replace' performs an action.\n let onDoubleClick = hasSecondaryAction ? (e) => {\n if (modality.current === 'mouse') {\n e.stopPropagation();\n e.preventDefault();\n onAction();\n }\n } : undefined;\n\n // Long pressing an item with touch when selectionBehavior = 'replace' switches the selection behavior\n // to 'toggle'. This changes the single tap behavior from performing an action (i.e. navigating) to\n // selecting, and may toggle the appearance of a UI affordance like checkboxes on each item.\n let {longPressProps} = useLongPress({\n isDisabled: !longPressEnabled,\n onLongPress(e) {\n if (e.pointerType === 'touch') {\n onSelect(e);\n manager.setSelectionBehavior('toggle');\n }\n }\n });\n\n // Prevent native drag and drop on long press if we also select on long press.\n // Once the user is in selection mode, they can long press again to drag.\n // Use a capturing listener to ensure this runs before useDrag, regardless of\n // the order the props get merged.\n let onDragStartCapture = e => {\n if (modality.current === 'touch' && longPressEnabledOnPressStart.current) {\n e.preventDefault();\n }\n };\n\n return {\n itemProps: mergeProps(\n itemProps,\n allowsSelection || hasPrimaryAction ? pressProps : {},\n longPressEnabled ? longPressProps : {},\n {onDoubleClick, onDragStartCapture}\n ),\n isPressed,\n isSelected: manager.isSelected(key),\n isDisabled,\n allowsSelection,\n hasAction\n };\n}\n\nfunction isActionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === 'Enter';\n}\n\nfunction isSelectionKey() {\n let event = window.event as KeyboardEvent;\n return event?.key === ' ' || event?.code === 'Space';\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject} from 'react';\n\nexport class ListKeyboardDelegate implements KeyboardDelegate {\n private collection: Collection>;\n private disabledKeys: Set;\n private ref: RefObject;\n private collator: Intl.Collator;\n\n constructor(collection: Collection>, disabledKeys: Set, ref: RefObject, collator?: Intl.Collator) {\n this.collection = collection;\n this.disabledKeys = disabledKeys;\n this.ref = ref;\n this.collator = collator;\n }\n\n getKeyBelow(key: Key) {\n key = this.collection.getKeyAfter(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getKeyAbove(key: Key) {\n key = this.collection.getKeyBefore(key);\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n getFirstKey() {\n let key = this.collection.getFirstKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n }\n\n getLastKey() {\n let key = this.collection.getLastKey();\n while (key != null) {\n let item = this.collection.getItem(key);\n if (item.type === 'item' && !this.disabledKeys.has(key)) {\n return key;\n }\n\n key = this.collection.getKeyBefore(key);\n }\n }\n\n private getItem(key: Key): HTMLElement {\n return this.ref.current.querySelector(`[data-key=\"${key}\"]`);\n }\n\n getKeyPageAbove(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);\n\n while (item && item.offsetTop > pageY) {\n key = this.getKeyAbove(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyPageBelow(key: Key) {\n let menu = this.ref.current;\n let item = this.getItem(key);\n if (!item) {\n return null;\n }\n\n let pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);\n\n while (item && item.offsetTop < pageY) {\n key = this.getKeyBelow(key);\n item = this.getItem(key);\n }\n\n return key;\n }\n\n getKeyForSearch(search: string, fromKey?: Key) {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DOMAttributes, FocusStrategy, KeyboardDelegate, Node} from '@react-types/shared';\nimport {Key, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate} from './ListKeyboardDelegate';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useCollator} from '@react-aria/i18n';\nimport {useSelectableCollection} from './useSelectableCollection';\n\nexport interface AriaSelectableListOptions {\n /**\n * An interface for reading and updating multiple selection state.\n */\n selectionManager: MultipleSelectionManager,\n /**\n * State of the collection.\n */\n collection: Collection>,\n /**\n * The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with.\n */\n disabledKeys: Set,\n /**\n * A ref to the item.\n */\n ref?: RefObject,\n /**\n * A delegate that returns collection item keys with respect to visual layout.\n */\n keyboardDelegate?: KeyboardDelegate,\n /**\n * Whether the collection or one of its items should be automatically focused upon render.\n * @default false\n */\n autoFocus?: boolean | FocusStrategy,\n /**\n * Whether focus should wrap around when the end/start is reached.\n * @default false\n */\n shouldFocusWrap?: boolean,\n /**\n * Whether the option is contained in a virtual scroller.\n */\n isVirtualized?: boolean,\n /**\n * Whether the collection allows empty selection.\n * @default false\n */\n disallowEmptySelection?: boolean,\n /**\n * Whether selection should occur automatically on focus.\n * @default false\n */\n selectOnFocus?: boolean,\n /**\n * Whether typeahead is disabled.\n * @default false\n */\n disallowTypeAhead?: boolean,\n /**\n * Whether the collection items should use virtual focus instead of being focused directly.\n */\n shouldUseVirtualFocus?: boolean,\n /**\n * Whether navigation through tab key is enabled.\n */\n allowsTabNavigation?: boolean\n}\n\nexport interface SelectableListAria {\n /**\n * Props for the option element.\n */\n listProps: DOMAttributes\n}\n\n/**\n * Handles interactions with a selectable list.\n */\nexport function useSelectableList(props: AriaSelectableListOptions): SelectableListAria {\n let {\n selectionManager,\n collection,\n disabledKeys,\n ref,\n keyboardDelegate,\n autoFocus,\n shouldFocusWrap,\n isVirtualized,\n disallowEmptySelection,\n selectOnFocus = selectionManager.selectionBehavior === 'replace',\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let disabledBehavior = selectionManager.disabledBehavior;\n let delegate = useMemo(() => (\n keyboardDelegate || new ListKeyboardDelegate(collection, disabledBehavior === 'selection' ? new Set() : disabledKeys, ref, collator)\n ), [keyboardDelegate, collection, disabledKeys, ref, collator, disabledBehavior]);\n\n let {collectionProps} = useSelectableCollection({\n ref,\n selectionManager,\n keyboardDelegate: delegate,\n autoFocus,\n shouldFocusWrap,\n disallowEmptySelection,\n selectOnFocus,\n disallowTypeAhead,\n shouldUseVirtualFocus,\n allowsTabNavigation,\n isVirtualized,\n scrollRef: ref\n });\n\n return {\n listProps: collectionProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ItemElement, ItemProps} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\n\nfunction Item(props: ItemProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nItem.getCollectionNode = function* getCollectionNode(props: ItemProps, context: any): Generator> {\n let {childItems, title, children} = props;\n\n let rendered = props.title || props.children;\n let textValue = props.textValue || (typeof rendered === 'string' ? rendered : '') || props['aria-label'] || '';\n\n // suppressTextValueWarning is used in components like Tabs, which don't have type to select support.\n if (!textValue && !context?.suppressTextValueWarning) {\n console.warn(' with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.');\n }\n\n yield {\n type: 'item',\n props: props,\n rendered,\n textValue,\n 'aria-label': props['aria-label'],\n hasChildNodes: hasChildItems(props),\n *childNodes() {\n if (childItems) {\n for (let child of childItems) {\n yield {\n type: 'item',\n value: child\n };\n }\n } else if (title) {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child as ItemElement\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\nfunction hasChildItems(props: ItemProps) {\n if (props.hasChildItems != null) {\n return props.hasChildItems;\n }\n\n if (props.childItems) {\n return true;\n }\n\n if (props.title && React.Children.count(props.children) > 0) {\n return true;\n }\n\n return false;\n}\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Item = Item as (props: ItemProps) => JSX.Element;\nexport {_Item as Item};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PartialNode} from './types';\nimport React, {ReactElement} from 'react';\nimport {SectionProps} from '@react-types/shared';\n\nfunction Section(props: SectionProps): ReactElement { // eslint-disable-line @typescript-eslint/no-unused-vars\n return null;\n}\n\nSection.getCollectionNode = function* getCollectionNode(props: SectionProps): Generator> {\n let {children, title, items} = props;\n yield {\n type: 'section',\n props: props,\n hasChildNodes: true,\n rendered: title,\n 'aria-label': props['aria-label'],\n *childNodes() {\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n \n for (let item of items) {\n yield {\n type: 'item',\n value: item,\n renderer: children\n };\n }\n } else {\n let items: PartialNode[] = [];\n React.Children.forEach(children, child => {\n items.push({\n type: 'item',\n element: child\n });\n });\n\n yield* items;\n }\n }\n };\n};\n\n// We don't want getCollectionNode to show up in the type definition\nlet _Section = Section as (props: SectionProps) => JSX.Element;\nexport {_Section as Section};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, CollectionElement, Node} from '@react-types/shared';\nimport {PartialNode} from './types';\nimport React, {Key, ReactElement} from 'react';\n\ninterface CollectionBuilderState {\n renderer?: (value: any) => ReactElement\n}\n\nexport class CollectionBuilder {\n private context?: unknown;\n private cache: WeakMap> = new WeakMap();\n\n build(props: CollectionBase, context?: unknown) {\n this.context = context;\n return iterable(() => this.iterateCollection(props));\n }\n\n private *iterateCollection(props: CollectionBase) {\n let {children, items} = props;\n\n if (typeof children === 'function') {\n if (!items) {\n throw new Error('props.children was a function but props.items is missing');\n }\n\n for (let item of props.items) {\n yield* this.getFullNode({\n value: item\n }, {renderer: children});\n }\n } else {\n let items: CollectionElement[] = [];\n React.Children.forEach(children, child => {\n items.push(child);\n });\n\n let index = 0;\n for (let item of items) {\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n }\n }\n\n private getKey(item: CollectionElement, partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key): Key {\n if (item.key != null) {\n return item.key;\n }\n\n if (partialNode.type === 'cell' && partialNode.key != null) {\n return `${parentKey}${partialNode.key}`;\n }\n\n let v = partialNode.value as any;\n if (v != null) {\n let key = v.key ?? v.id;\n if (key == null) {\n throw new Error('No key found for item');\n }\n\n return key;\n }\n\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n\n private getChildState(state: CollectionBuilderState, partialNode: PartialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n\n private *getFullNode(partialNode: PartialNode, state: CollectionBuilderState, parentKey?: Key, parentNode?: Node): Generator> {\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n\n element = state.renderer(partialNode.value);\n }\n\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if (React.isValidElement(element)) {\n let type = element.type as any;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = typeof element.type === 'function' ? element.type.name : element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n\n let childNodes = type.getCollectionNode(element.props, this.context) as Generator, void, Node[]>;\n let index = partialNode.index;\n let result = childNodes.next();\n while (!result.done && result.value) {\n let childNode = result.value;\n\n partialNode.index = index;\n\n let nodeKey = childNode.key;\n if (!nodeKey) {\n nodeKey = childNode.element ? null : this.getKey(element as CollectionElement, partialNode, state, parentKey);\n }\n\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index,\n wrapper: compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n\n let children = [...nodes];\n for (let node of children) {\n // Cache the node based on its value\n node.value = childNode.value || partialNode.value;\n if (node.value) {\n this.cache.set(node.value, node);\n }\n\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) {\n throw new Error(`Unsupported type <${capitalize(node.type)}> in <${capitalize(parentNode.type)}>. Only <${capitalize(partialNode.type)}> is supported.`);\n }\n\n index++;\n yield node;\n }\n\n result = childNodes.next(children);\n }\n\n return;\n }\n\n // Ignore invalid elements\n if (partialNode.key == null) {\n return;\n }\n\n // Create full node\n let builder = this;\n let node: Node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: partialNode.value,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: partialNode.textValue,\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes,\n childNodes: iterable(function *() {\n if (!partialNode.hasChildNodes) {\n return;\n }\n\n let index = 0;\n for (let child of partialNode.childNodes()) {\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) {\n // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n }\n\n child.index = index;\n let nodes = builder.getFullNode(child, builder.getChildState(state, child), node.key, node);\n for (let node of nodes) {\n index++;\n yield node;\n }\n }\n })\n };\n\n yield node;\n }\n}\n\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction iterable(iterator: () => IterableIterator>): Iterable> {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator]() {\n for (let item of cache) {\n yield item;\n }\n\n if (!iterable) {\n iterable = iterator();\n }\n\n for (let item of iterable) {\n cache.push(item);\n yield item;\n }\n }\n };\n}\n\ntype Wrapper = (element: ReactElement) => ReactElement;\nfunction compose(outer: Wrapper | void, inner: Wrapper | void): Wrapper {\n if (outer && inner) {\n return (element) => outer(inner(element));\n }\n\n if (outer) {\n return outer;\n }\n\n if (inner) {\n return inner;\n }\n}\n\nfunction capitalize(str: string) {\n return str[0].toUpperCase() + str.slice(1);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {CollectionBuilder} from './CollectionBuilder';\nimport {useMemo, useRef} from 'react';\n\ntype CollectionFactory>> = (node: Iterable>, prev: C | null) => C;\n\nexport function useCollection> = Collection>>(props: CollectionBase, factory: CollectionFactory, context?: unknown, invalidators: Array = []): C {\n let builder = useMemo(() => new CollectionBuilder(), []);\n\n let prev = useRef(null);\n return useMemo(() => {\n let nodes = builder.build(props, context);\n prev.current = factory(nodes, prev.current);\n return prev.current;\n // Don't invalidate when any prop changes, just the two we care about.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [builder, props.children, props.items, context, ...invalidators]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Node} from '@react-types/shared';\n\nconst cache = new WeakMap, number>();\n\nexport function getItemCount(collection: Iterable>): number {\n let count = cache.get(collection);\n if (count != null) {\n return count;\n }\n\n count = 0;\n for (let item of collection) {\n if (item.type === 'section') {\n count += getItemCount(item.childNodes);\n } else {\n count++;\n }\n }\n\n cache.set(collection, count);\n return count;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaMenuOptions} from './useMenu';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MenuTriggerState} from '@react-stately/menu';\nimport {MenuTriggerType} from '@react-types/menu';\nimport {RefObject} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useLongPress} from '@react-aria/interactions';\nimport {useOverlayTrigger} from '@react-aria/overlays';\n\nexport interface AriaMenuTriggerProps {\n /** The type of menu that the menu trigger opens. */\n type?: 'menu' | 'listbox',\n /** Whether menu trigger is disabled. */\n isDisabled?: boolean,\n /** How menu is triggered. */\n trigger?: MenuTriggerType\n}\n\nexport interface MenuTriggerAria {\n /** Props for the menu trigger element. */\n menuTriggerProps: AriaButtonProps,\n\n /** Props for the menu. */\n menuProps: AriaMenuOptions\n}\n\n/**\n * Provides the behavior and accessibility implementation for a menu trigger.\n * @param props - Props for the menu trigger.\n * @param state - State for the menu trigger.\n */\nexport function useMenuTrigger(props: AriaMenuTriggerProps, state: MenuTriggerState, ref: RefObject): MenuTriggerAria {\n let {\n type = 'menu' as AriaMenuTriggerProps['type'],\n isDisabled,\n trigger = 'press'\n } = props;\n\n let menuTriggerId = useId();\n let {triggerProps, overlayProps} = useOverlayTrigger({type}, state, ref);\n\n let onKeyDown = (e) => {\n if (isDisabled) {\n return;\n }\n\n if (trigger === 'longPress' && !e.altKey) {\n return;\n }\n\n if (ref && ref.current) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n if (trigger === 'longPress') {\n return;\n }\n // fallthrough\n case 'ArrowDown':\n // Stop propagation, unless it would already be handled by useKeyboard.\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('first');\n break;\n case 'ArrowUp':\n if (!('continuePropagation' in e)) {\n e.stopPropagation();\n }\n e.preventDefault();\n state.toggle('last');\n break;\n }\n }\n };\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let {longPressProps} = useLongPress({\n isDisabled: isDisabled || trigger !== 'longPress',\n accessibilityDescription: stringFormatter.format('longPressMessage'),\n onLongPressStart() {\n state.close();\n },\n onLongPress() {\n state.open('first');\n }\n });\n\n let pressProps = {\n onPressStart(e) {\n // For consistency with native, open the menu on mouse/key down, but touch up.\n if (e.pointerType !== 'touch' && e.pointerType !== 'keyboard' && !isDisabled) {\n // If opened with a screen reader, auto focus the first item.\n // Otherwise, the menu itself will be focused.\n state.toggle(e.pointerType === 'virtual' ? 'first' : null);\n }\n },\n onPress(e) {\n if (e.pointerType === 'touch' && !isDisabled) {\n state.toggle();\n }\n }\n };\n\n // omit onPress from triggerProps since we override it above.\n delete triggerProps.onPress;\n\n return {\n menuTriggerProps: {\n ...triggerProps,\n ...(trigger === 'press' ? pressProps : longPressProps),\n id: menuTriggerId,\n onKeyDown\n },\n menuProps: {\n ...overlayProps,\n 'aria-labelledby': menuTriggerId,\n autoFocus: state.focusStrategy || true,\n onClose: state.close\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"longPressMessage\": \"اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة\"\n}\n","{\n \"longPressMessage\": \"Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто\"\n}\n","{\n \"longPressMessage\": \"Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku\"\n}\n","{\n \"longPressMessage\": \"Langt tryk eller tryk på Alt + pil ned for at åbne menuen\"\n}\n","{\n \"longPressMessage\": \"Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen\"\n}\n","{\n \"longPressMessage\": \"Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού\"\n}\n","{\n \"longPressMessage\": \"Long press or press Alt + ArrowDown to open menu\"\n}\n","{\n \"longPressMessage\": \"Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú\"\n}\n","{\n \"longPressMessage\": \"Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool\"\n}\n","{\n \"longPressMessage\": \"Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli\"\n}\n","{\n \"longPressMessage\": \"Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu.\"\n}\n","{\n \"longPressMessage\": \"לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika\"\n}\n","{\n \"longPressMessage\": \"Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához\"\n}\n","{\n \"longPressMessage\": \"Premere a lungo o premere Alt + Freccia giù per aprire il menu\"\n}\n","{\n \"longPressMessage\": \"長押しまたは Alt+下矢印キーでメニューを開く\"\n}\n","{\n \"longPressMessage\": \"길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기\"\n}\n","{\n \"longPressMessage\": \"Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“.\"\n}\n","{\n \"longPressMessage\": \"Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa\"\n}\n","{\n \"longPressMessage\": \"Langt trykk eller trykk Alt + PilNed for å åpne menyen\"\n}\n","{\n \"longPressMessage\": \"Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen\"\n}\n","{\n \"longPressMessage\": \"Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu\"\n}\n","{\n \"longPressMessage\": \"Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu\"\n}\n","{\n \"longPressMessage\": \"Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul\"\n}\n","{\n \"longPressMessage\": \"Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню\"\n}\n","{\n \"longPressMessage\": \"Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol\"\n}\n","{\n \"longPressMessage\": \"Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol\"\n}\n","{\n \"longPressMessage\": \"Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni\"\n}\n","{\n \"longPressMessage\": \"Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn\"\n}\n","{\n \"longPressMessage\": \"Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın\"\n}\n","{\n \"longPressMessage\": \"Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню\"\n}\n","{\n \"longPressMessage\": \"长按或按 Alt + 向下方向键以打开菜单\"\n}\n","{\n \"longPressMessage\": \"長按或按 Alt+向下鍵以開啟功能表\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaMenuProps} from '@react-types/menu';\nimport {DOMAttributes, KeyboardDelegate} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface MenuAria {\n /** Props for the menu element. */\n menuProps: DOMAttributes\n}\n\nexport interface AriaMenuOptions extends Omit, 'children'> {\n /** Whether the menu uses virtual scrolling. */\n isVirtualized?: boolean,\n\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\ninterface MenuData {\n onClose?: () => void,\n onAction?: (key: Key) => void\n}\n\nexport const menuData = new WeakMap, MenuData>();\n\n/**\n * Provides the behavior and accessibility implementation for a menu component.\n * A menu displays a list of actions or options that a user can choose.\n * @param props - Props for the menu.\n * @param state - State for the menu, as returned by `useListState`.\n */\nexport function useMenu(props: AriaMenuOptions, state: TreeState, ref: RefObject): MenuAria {\n let {\n shouldFocusWrap = true,\n ...otherProps\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {listProps} = useSelectableList({\n ...otherProps,\n ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n shouldFocusWrap\n });\n\n menuData.set(state, {\n onClose: props.onClose,\n onAction: props.onAction\n });\n\n return {\n menuProps: mergeProps(domProps, {\n role: 'menu',\n ...listProps\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, PressEvent} from '@react-types/shared';\nimport {getItemCount} from '@react-stately/collections';\nimport {isFocusVisible, useHover, usePress} from '@react-aria/interactions';\nimport {Key, RefObject} from 'react';\nimport {menuData} from './useMenu';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {TreeState} from '@react-stately/tree';\nimport {useSelectableItem} from '@react-aria/selection';\n\nexport interface MenuItemAria {\n /** Props for the menu item element. */\n menuItemProps: DOMAttributes,\n\n /** Props for the main text element inside the menu item. */\n labelProps: DOMAttributes,\n\n /** Props for the description text element inside the menu item, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the keyboard shortcut text element inside the item, if any. */\n keyboardShortcutProps: DOMAttributes,\n\n /** Whether the item is currently focused. */\n isFocused: boolean,\n /** Whether the item is currently selected. */\n isSelected: boolean,\n /** Whether the item is currently in a pressed state. */\n isPressed: boolean,\n /** Whether the item is disabled. */\n isDisabled: boolean\n}\n\nexport interface AriaMenuItemProps {\n /**\n * Whether the menu item is disabled.\n * @deprecated - pass disabledKeys to useTreeState instead.\n */\n isDisabled?: boolean,\n\n /**\n * Whether the menu item is selected.\n * @deprecated - pass selectedKeys to useTreeState instead.\n */\n isSelected?: boolean,\n\n /** A screen reader only label for the menu item. */\n 'aria-label'?: string,\n\n /** The unique key for the menu item. */\n key?: Key,\n\n /**\n * Handler that is called when the menu should close after selecting an item.\n * @deprecated - pass to the menu instead.\n */\n onClose?: () => void,\n\n /**\n * Whether the menu should close when the menu item is selected.\n * @default true\n */\n closeOnSelect?: boolean,\n\n /** Whether the menu item is contained in a virtual scrolling menu. */\n isVirtualized?: boolean,\n\n /**\n * Handler that is called when the user activates the item.\n * @deprecated - pass to the menu instead.\n */\n onAction?: (key: Key) => void\n}\n\n/**\n * Provides the behavior and accessibility implementation for an item in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the item.\n * @param state - State for the menu, as returned by `useTreeState`.\n */\nexport function useMenuItem(props: AriaMenuItemProps, state: TreeState, ref: RefObject): MenuItemAria {\n let {\n key,\n closeOnSelect,\n isVirtualized\n } = props;\n\n let isDisabled = props.isDisabled ?? state.disabledKeys.has(key);\n let isSelected = props.isSelected ?? state.selectionManager.isSelected(key);\n let isFocused = state.selectionManager.focusedKey === key;\n\n let data = menuData.get(state);\n let onClose = props.onClose || data.onClose;\n let onAction = props.onAction || data.onAction;\n\n let role = 'menuitem';\n if (state.selectionManager.selectionMode === 'single') {\n role = 'menuitemradio';\n } else if (state.selectionManager.selectionMode === 'multiple') {\n role = 'menuitemcheckbox';\n }\n\n let labelId = useSlotId();\n let descriptionId = useSlotId();\n let keyboardId = useSlotId();\n\n let ariaProps = {\n 'aria-disabled': isDisabled,\n role,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': labelId,\n 'aria-describedby': [descriptionId, keyboardId].filter(Boolean).join(' ') || undefined\n };\n\n if (state.selectionManager.selectionMode !== 'none') {\n ariaProps['aria-checked'] = isSelected;\n }\n\n if (isVirtualized) {\n ariaProps['aria-posinset'] = state.collection.getItem(key).index;\n ariaProps['aria-setsize'] = getItemCount(state.collection);\n }\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Ignore repeating events, which may have started on the menu trigger before moving\n // focus to the menu item. We want to wait for a second complete key press sequence.\n if (e.repeat) {\n return;\n }\n\n switch (e.key) {\n case ' ':\n if (!isDisabled && state.selectionManager.selectionMode === 'none' && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n case 'Enter':\n // The Enter key should always close on select, except if overridden.\n if (!isDisabled && closeOnSelect !== false && onClose) {\n onClose();\n }\n break;\n }\n };\n\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType === 'keyboard' && onAction) {\n onAction(key);\n }\n };\n\n let onPressUp = (e: PressEvent) => {\n if (e.pointerType !== 'keyboard') {\n if (onAction) {\n onAction(key);\n }\n\n // Pressing a menu item should close by default in single selection mode but not multiple\n // selection mode, except if overridden by the closeOnSelect prop.\n if (onClose && (closeOnSelect ?? state.selectionManager.selectionMode !== 'multiple')) {\n onClose();\n }\n }\n };\n\n let {itemProps} = useSelectableItem({\n selectionManager: state.selectionManager,\n key,\n ref,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true\n });\n\n let {pressProps, isPressed} = usePress({onPressStart, onPressUp, isDisabled});\n let {hoverProps} = useHover({\n isDisabled,\n onHoverStart() {\n if (!isFocusVisible()) {\n state.selectionManager.setFocused(true);\n state.selectionManager.setFocusedKey(key);\n }\n }\n });\n\n return {\n menuItemProps: {\n ...ariaProps,\n ...mergeProps(itemProps, pressProps, hoverProps, {onKeyDown})\n },\n labelProps: {\n id: labelId\n },\n descriptionProps: {\n id: descriptionId\n },\n keyboardShortcutProps: {\n id: keyboardId\n },\n isFocused,\n isSelected,\n isPressed,\n isDisabled\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {ReactNode} from 'react';\nimport {useId} from '@react-aria/utils';\n\nexport interface AriaMenuSectionProps {\n /** The heading for the section. */\n heading?: ReactNode,\n /** An accessibility label for the section. Required if `heading` is not present. */\n 'aria-label'?: string\n}\n\nexport interface MenuSectionAria {\n /** Props for the wrapper list item. */\n itemProps: DOMAttributes,\n\n /** Props for the heading element, if any. */\n headingProps: DOMAttributes,\n\n /** Props for the group element. */\n groupProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a section in a menu.\n * See `useMenu` for more details about menus.\n * @param props - Props for the section.\n */\nexport function useMenuSection(props: AriaMenuSectionProps): MenuSectionAria {\n let {heading, 'aria-label': ariaLabel} = props;\n let headingId = useId();\n\n return {\n itemProps: {\n role: 'presentation'\n },\n headingProps: heading ? {\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label for the nested group.\n id: headingId,\n 'aria-hidden': true\n } : {},\n groupProps: {\n role: 'group',\n 'aria-label': ariaLabel,\n 'aria-labelledby': heading ? headingId : undefined\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {OverlayTriggerProps} from '@react-types/overlays';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface OverlayTriggerState {\n /** Whether the overlay is currently open. */\n readonly isOpen: boolean,\n /** Sets whether the overlay is open. */\n setOpen(isOpen: boolean): void,\n /** Opens the overlay. */\n open(): void,\n /** Closes the overlay. */\n close(): void,\n /** Toggles the overlay's visibility. */\n toggle(): void\n}\n\n/**\n * Manages state for an overlay trigger. Tracks whether the overlay is open, and provides\n * methods to toggle this state.\n */\nexport function useOverlayTriggerState(props: OverlayTriggerProps): OverlayTriggerState {\n let [isOpen, setOpen] = useControlledState(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n\n return {\n isOpen,\n setOpen,\n open() {\n setOpen(true);\n },\n close() {\n setOpen(false);\n },\n toggle() {\n setOpen(!isOpen);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport {MenuTriggerProps} from '@react-types/menu';\nimport {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';\nimport {useState} from 'react';\n\nexport interface MenuTriggerState extends OverlayTriggerState {\n /** Controls which item will be auto focused when the menu opens. */\n readonly focusStrategy: FocusStrategy,\n\n /** Opens the menu. */\n open(focusStrategy?: FocusStrategy | null): void,\n\n /** Toggles the menu. */\n toggle(focusStrategy?: FocusStrategy | null): void\n}\n\n/**\n * Manages state for a menu trigger. Tracks whether the menu is currently open,\n * and controls which item will receive focus when it opens.\n */\nexport function useMenuTriggerState(props: MenuTriggerProps): MenuTriggerState {\n let overlayTriggerState = useOverlayTriggerState(props);\n let [focusStrategy, setFocusStrategy] = useState(null);\n\n return {\n focusStrategy,\n ...overlayTriggerState,\n open(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.open();\n },\n toggle(focusStrategy: FocusStrategy = null) {\n setFocusStrategy(focusStrategy);\n overlayTriggerState.toggle();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\n\n/**\n * A Selection is a special Set containing Keys, which also has an anchor\n * and current selected key for use when range selecting.\n */\nexport class Selection extends Set {\n anchorKey: Key;\n currentKey: Key;\n\n constructor(keys?: Iterable | Selection, anchorKey?: Key, currentKey?: Key) {\n super(keys);\n if (keys instanceof Selection) {\n this.anchorKey = anchorKey || keys.anchorKey;\n this.currentKey = currentKey || keys.currentKey;\n } else {\n this.anchorKey = anchorKey;\n this.currentKey = currentKey;\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DisabledBehavior, MultipleSelection, SelectionBehavior, SelectionMode} from '@react-types/shared';\nimport {Key, useEffect, useMemo, useRef, useState} from 'react';\nimport {MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\nimport {useControlledState} from '@react-stately/utils';\n\nfunction equalSets(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n\n for (let item of setA) {\n if (!setB.has(item)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport interface MultipleSelectionStateProps extends MultipleSelection {\n /** How multiple selection should behave in the collection. */\n selectionBehavior?: SelectionBehavior,\n /** Whether onSelectionChange should fire even if the new set of keys is the same as the last. */\n allowDuplicateSelectionEvents?: boolean,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\n/**\n * Manages state for multiple selection and focus in a collection.\n */\nexport function useMultipleSelectionState(props: MultipleSelectionStateProps): MultipleSelectionState {\n let {\n selectionMode = 'none' as SelectionMode,\n disallowEmptySelection,\n allowDuplicateSelectionEvents,\n selectionBehavior: selectionBehaviorProp = 'toggle',\n disabledBehavior = 'all'\n } = props;\n\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = useRef(false);\n let [, setFocused] = useState(false);\n let focusedKeyRef = useRef(null);\n let childFocusStrategyRef = useRef(null);\n let [, setFocusedKey] = useState(null);\n let selectedKeysProp = useMemo(() => convertSelection(props.selectedKeys), [props.selectedKeys]);\n let defaultSelectedKeys = useMemo(() => convertSelection(props.defaultSelectedKeys, new Selection()), [props.defaultSelectedKeys]);\n let [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp,\n defaultSelectedKeys,\n props.onSelectionChange\n );\n let disabledKeysProp = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n let [selectionBehavior, setSelectionBehavior] = useState(selectionBehaviorProp);\n\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) {\n setSelectionBehavior('replace');\n }\n\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = useRef(selectionBehaviorProp);\n useEffect(() => {\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [selectionBehaviorProp]);\n\n return {\n selectionMode,\n disallowEmptySelection,\n selectionBehavior,\n setSelectionBehavior,\n get isFocused() {\n return isFocusedRef.current;\n },\n setFocused(f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey() {\n return focusedKeyRef.current;\n },\n get childFocusStrategy() {\n return childFocusStrategyRef.current;\n },\n setFocusedKey(k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys,\n setSelectedKeys(keys) {\n if (allowDuplicateSelectionEvents || !equalSets(keys, selectedKeys)) {\n setSelectedKeys(keys);\n }\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior\n };\n}\n\nfunction convertSelection(selection: 'all' | Iterable, defaultValue?: Selection): 'all' | Selection {\n if (!selection) {\n return defaultValue;\n }\n\n return selection === 'all'\n ? 'all'\n : new Selection(selection);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Collection,\n DisabledBehavior,\n FocusStrategy,\n Selection as ISelection,\n LongPressEvent,\n Node,\n PressEvent,\n SelectionBehavior,\n SelectionMode\n} from '@react-types/shared';\nimport {Key} from 'react';\nimport {MultipleSelectionManager, MultipleSelectionState} from './types';\nimport {Selection} from './Selection';\n\ninterface SelectionManagerOptions {\n allowsCellSelection?: boolean\n}\n\n/**\n * An interface for reading and updating multiple selection state.\n */\nexport class SelectionManager implements MultipleSelectionManager {\n private collection: Collection>;\n private state: MultipleSelectionState;\n private allowsCellSelection: boolean;\n private _isSelectAll: boolean;\n\n constructor(collection: Collection>, state: MultipleSelectionState, options?: SelectionManagerOptions) {\n this.collection = collection;\n this.state = state;\n this.allowsCellSelection = options?.allowsCellSelection ?? false;\n this._isSelectAll = null;\n }\n\n /**\n * The type of selection that is allowed in the collection.\n */\n get selectionMode(): SelectionMode {\n return this.state.selectionMode;\n }\n\n /**\n * Whether the collection allows empty selection.\n */\n get disallowEmptySelection(): boolean {\n return this.state.disallowEmptySelection;\n }\n\n /**\n * The selection behavior for the collection.\n */\n get selectionBehavior(): SelectionBehavior {\n return this.state.selectionBehavior;\n }\n\n /**\n * Sets the selection behavior for the collection.\n */\n setSelectionBehavior(selectionBehavior: SelectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n\n /**\n * Whether the collection is currently focused.\n */\n get isFocused(): boolean {\n return this.state.isFocused;\n }\n\n /**\n * Sets whether the collection is focused.\n */\n setFocused(isFocused: boolean) {\n this.state.setFocused(isFocused);\n }\n\n /**\n * The current focused key in the collection.\n */\n get focusedKey(): Key {\n return this.state.focusedKey;\n }\n\n /** Whether the first or last child of the focused key should receive focus. */\n get childFocusStrategy(): FocusStrategy {\n return this.state.childFocusStrategy;\n }\n\n /**\n * Sets the focused key.\n */\n setFocusedKey(key: Key, childFocusStrategy?: FocusStrategy) {\n if (key == null || this.collection.getItem(key)) {\n this.state.setFocusedKey(key, childFocusStrategy);\n }\n }\n\n /**\n * The currently selected keys in the collection.\n */\n get selectedKeys(): Set {\n return this.state.selectedKeys === 'all'\n ? new Set(this.getSelectAllKeys())\n : this.state.selectedKeys;\n }\n\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */\n get rawSelection(): ISelection {\n return this.state.selectedKeys;\n }\n\n /**\n * Returns whether a key is selected.\n */\n isSelected(key: Key) {\n if (this.state.selectionMode === 'none') {\n return false;\n }\n\n key = this.getKey(key);\n return this.state.selectedKeys === 'all'\n ? this.canSelectItem(key)\n : this.state.selectedKeys.has(key);\n }\n\n /**\n * Whether the selection is empty.\n */\n get isEmpty(): boolean {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n\n /**\n * Whether all items in the collection are selected.\n */\n get isSelectAll(): boolean {\n if (this.isEmpty) {\n return false;\n }\n\n if (this.state.selectedKeys === 'all') {\n return true;\n }\n\n if (this._isSelectAll != null) {\n return this._isSelectAll;\n }\n\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every(k => selectedKeys.has(k));\n return this._isSelectAll;\n }\n\n get firstSelectedKey(): Key | null {\n let first: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!first || item?.index < first.index) {\n first = item;\n }\n }\n\n return first?.key;\n }\n\n get lastSelectedKey(): Key | null {\n let last: Node | null = null;\n for (let key of this.state.selectedKeys) {\n let item = this.collection.getItem(key);\n if (!last || item?.index > last.index) {\n last = item;\n }\n }\n\n return last?.key;\n }\n\n get disabledKeys(): Set {\n return this.state.disabledKeys;\n }\n\n get disabledBehavior(): DisabledBehavior {\n return this.state.disabledBehavior;\n }\n\n /**\n * Extends the selection to the given key.\n */\n extendSelection(toKey: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n\n toKey = this.getKey(toKey);\n\n let selection: Selection;\n\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') {\n selection = new Selection([toKey], toKey, toKey);\n } else {\n let selectedKeys = this.state.selectedKeys as Selection;\n let anchorKey = selectedKeys.anchorKey || toKey;\n selection = new Selection(selectedKeys, anchorKey, toKey);\n for (let key of this.getKeyRange(anchorKey, selectedKeys.currentKey || toKey)) {\n selection.delete(key);\n }\n\n for (let key of this.getKeyRange(toKey, anchorKey)) {\n if (this.canSelectItem(key)) {\n selection.add(key);\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getKeyRange(from: Key, to: Key) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if (fromItem.index <= toItem.index) {\n return this.getKeyRangeInternal(from, to);\n }\n\n return this.getKeyRangeInternal(to, from);\n }\n\n return [];\n }\n\n private getKeyRangeInternal(from: Key, to: Key) {\n let keys: Key[] = [];\n let key = from;\n while (key) {\n let item = this.collection.getItem(key);\n if (item && item.type === 'item' || (item.type === 'cell' && this.allowsCellSelection)) {\n keys.push(key);\n }\n\n if (key === to) {\n return keys;\n }\n\n key = this.collection.getKeyAfter(key);\n }\n\n return [];\n }\n\n private getKey(key: Key) {\n let item = this.collection.getItem(key);\n if (!item) {\n // ¯\\_(ツ)_/¯\n return key;\n }\n\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) {\n return key;\n }\n\n // Find a parent item to select\n while (item.type !== 'item' && item.parentKey != null) {\n item = this.collection.getItem(item.parentKey);\n }\n\n if (!item || item.type !== 'item') {\n return null;\n }\n\n return item.key;\n }\n\n /**\n * Toggles whether the given key is selected.\n */\n toggleSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let keys = new Selection(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(key)) {\n keys.delete(key);\n // TODO: move anchor to last selected key...\n // Does `current` need to move here too?\n } else if (this.canSelectItem(key)) {\n keys.add(key);\n keys.anchorKey = key;\n keys.currentKey = key;\n }\n\n if (this.disallowEmptySelection && keys.size === 0) {\n return;\n }\n\n this.state.setSelectedKeys(keys);\n }\n\n /**\n * Replaces the selection with only the given key.\n */\n replaceSelection(key: Key) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n key = this.getKey(key);\n if (key == null) {\n return;\n }\n\n let selection = this.canSelectItem(key)\n ? new Selection([key], key, key)\n : new Selection();\n\n this.state.setSelectedKeys(selection);\n }\n\n /**\n * Replaces the selection with the given keys.\n */\n setSelectedKeys(keys: Iterable) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n let selection = new Selection();\n for (let key of keys) {\n key = this.getKey(key);\n if (key != null) {\n selection.add(key);\n if (this.selectionMode === 'single') {\n break;\n }\n }\n }\n\n this.state.setSelectedKeys(selection);\n }\n\n private getSelectAllKeys() {\n let keys: Key[] = [];\n let addKeys = (key: Key) => {\n while (key) {\n if (this.canSelectItem(key)) {\n let item = this.collection.getItem(key);\n if (item.type === 'item') {\n keys.push(key);\n }\n\n // Add child keys. If cell selection is allowed, then include item children too.\n if (item.hasChildNodes && (this.allowsCellSelection || item.type !== 'item')) {\n addKeys([...item.childNodes][0].key);\n }\n }\n\n key = this.collection.getKeyAfter(key);\n }\n };\n\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n\n /**\n * Selects all items in the collection.\n */\n selectAll() {\n if (this.selectionMode === 'multiple') {\n this.state.setSelectedKeys('all');\n }\n }\n\n /**\n * Removes all keys from the selection.\n */\n clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) {\n this.state.setSelectedKeys(new Selection());\n }\n }\n\n /**\n * Toggles between select all and an empty selection.\n */\n toggleSelectAll() {\n if (this.isSelectAll) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n }\n\n select(key: Key, e?: PressEvent | LongPressEvent | PointerEvent) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n } else if (this.selectionBehavior === 'toggle' || (e && (e.pointerType === 'touch' || e.pointerType === 'virtual'))) {\n // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n }\n\n /**\n * Returns whether the current selection is equal to the given selection.\n */\n isSelectionEqual(selection: Set) {\n if (selection === this.state.selectedKeys) {\n return true;\n }\n\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) {\n return false;\n }\n\n for (let key of selection) {\n if (!selectedKeys.has(key)) {\n return false;\n }\n }\n\n for (let key of selectedKeys) {\n if (!selection.has(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n canSelectItem(key: Key) {\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) {\n return false;\n }\n\n let item = this.collection.getItem(key);\n if (!item || (item.type === 'cell' && !this.allowsCellSelection)) {\n return false;\n }\n\n return true;\n }\n\n isDisabled(key: Key) {\n return this.state.disabledKeys.has(key) && this.state.disabledBehavior === 'all';\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class TreeCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>, {expandedKeys}: {expandedKeys?: Set} = {}) {\n this.iterable = nodes;\n expandedKeys = expandedKeys || new Set();\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && (node.type === 'section' || expandedKeys.has(node.key))) {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Expandable, MultipleSelection, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {TreeCollection} from './TreeCollection';\nimport {useCollection} from '@react-stately/collections';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface TreeProps extends CollectionBase, Expandable, MultipleSelection {}\nexport interface TreeState {\n /** A collection of items in the tree. */\n readonly collection: Collection>,\n\n /** A set of keys for items that are disabled. */\n readonly disabledKeys: Set,\n\n /** A set of keys for items that are expanded. */\n readonly expandedKeys: Set,\n\n /** Toggles the expanded state for an item by its key. */\n toggleKey(key: Key): void,\n\n /** A selection manager to read and update multiple selection state. */\n readonly selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for tree-like components. Handles building a collection\n * of items from props, item expanded state, and manages multiple selection state.\n */\nexport function useTreeState(props: TreeProps): TreeState {\n let [expandedKeys, setExpandedKeys] = useControlledState(\n props.expandedKeys ? new Set(props.expandedKeys) : undefined,\n props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : new Set(),\n props.onExpandedChange\n );\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let tree = useCollection(props, nodes => new TreeCollection(nodes, {expandedKeys}), null, [expandedKeys]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tree, selectionState.focusedKey]);\n\n let onToggle = (key: Key) => {\n setExpandedKeys(toggleKey(expandedKeys, key));\n };\n\n return {\n collection: tree,\n expandedKeys,\n disabledKeys,\n toggleKey: onToggle,\n selectionManager: new SelectionManager(tree, selectionState)\n };\n}\n\nfunction toggleKey(set: Set, key: Key): Set {\n let res = new Set(set);\n if (res.has(key)) {\n res.delete(key);\n } else {\n res.add(key);\n }\n\n return res;\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = CheckmarkMedium;\n\nvar _CheckmarkMedium = require(\"@adobe/react-spectrum-ui/dist/CheckmarkMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction CheckmarkMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.CheckmarkMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CheckmarkMedium = CheckmarkMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction CheckmarkMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M6 14a1 1 0 0 1-.789-.385l-4-5a1 1 0 1 1 1.577-1.23L6 11.376l7.213-8.99a1 1 0 1 1 1.576 1.23l-8 10a1 1 0 0 1-.789.384z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M4.5 10a1.022 1.022 0 0 1-.799-.384l-2.488-3a1 1 0 0 1 1.576-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.51 7A.978.978 0 0 1 4.5 10z\"\n }));\n}\n\nCheckmarkMedium.displayName = 'CheckmarkMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n baseStyleProps,\n dimensionValue,\n passthroughStyle,\n StyleHandlers,\n useDOMRef,\n useStyleProps\n} from '@react-spectrum/utils';\nimport {DimensionValue, DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {GridProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\n\nconst gridStyleProps: StyleHandlers = {\n ...baseStyleProps,\n autoFlow: ['gridAutoFlow', passthroughStyle],\n autoColumns: ['gridAutoColumns', gridDimensionValue],\n autoRows: ['gridAutoRows', gridDimensionValue],\n areas: ['gridTemplateAreas', gridTemplateAreasValue],\n columns: ['gridTemplateColumns', gridTemplateValue],\n rows: ['gridTemplateRows', gridTemplateValue],\n gap: ['gap', dimensionValue],\n rowGap: ['rowGap', dimensionValue],\n columnGap: ['columnGap', dimensionValue],\n justifyItems: ['justifyItems', passthroughStyle],\n justifyContent: ['justifyContent', passthroughStyle],\n alignItems: ['alignItems', passthroughStyle],\n alignContent: ['alignContent', passthroughStyle]\n};\n\nfunction Grid(props: GridProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps, gridStyleProps);\n styleProps.style.display = 'grid'; // inline-grid?\n let domRef = useDOMRef(ref);\n\n return (\n
    \n {children}\n
    \n );\n}\n\n/**\n * Can be used to make a repeating fragment of the columns or rows list.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/repeat).\n * @param count - The number of times to repeat the fragment.\n * @param repeat - The fragment to repeat.\n */\nexport function repeat(count: number | 'auto-fill' | 'auto-fit', repeat: DimensionValue | DimensionValue[]): string {\n return `repeat(${count}, ${gridTemplateValue(repeat)})`;\n}\n\n/**\n * Defines a size range greater than or equal to min and less than or equal to max.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/minmax).\n * @param min - The minimum size.\n * @param max - The maximum size.\n */\nexport function minmax(min: DimensionValue, max: DimensionValue): string {\n return `minmax(${gridDimensionValue(min)}, ${gridDimensionValue(max)})`;\n}\n\n/**\n * Clamps a given size to an available size.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content).\n * @param dimension - The size to clamp.\n */\nexport function fitContent(dimension: DimensionValue): string {\n return `fit-content(${gridDimensionValue(dimension)})`;\n}\n\nfunction gridTemplateAreasValue(value) {\n return value.map(v => `\"${v}\"`).join('\\n');\n}\n\nfunction gridDimensionValue(value) {\n if (/^max-content|min-content|minmax|auto|fit-content|repeat|subgrid/.test(value)) {\n return value;\n }\n\n return dimensionValue(value);\n}\n\nfunction gridTemplateValue(value) {\n if (Array.isArray(value)) {\n return value.map(gridDimensionValue).join(' ');\n }\n\n return gridDimensionValue(value);\n}\n\n/**\n * A layout container using CSS grid. Supports Spectrum dimensions as values to\n * ensure consistent and adaptive sizing and spacing.\n */\nconst _Grid = forwardRef(Grid);\nexport {_Grid as Grid};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.flex-container {\n /* this is necessary so that the inner margins don't affect anything outside */\n display: flex;\n}\n\n.flex {\n display: flex;\n}\n\n.flex-gap {\n --gap: 0px;\n --column-gap: var(--gap);\n --row-gap: var(--gap);\n\n /* apply a negative margin to counteract the margin on each item at the edges */\n margin: calc(var(--row-gap) / -2) calc(var(--column-gap) / -2);\n\n /* increase the width and height to account for this margin */\n /* Add 1px to fix rounding error in Safari (╯°□°)╯︵ ┻━┻ */\n width: calc(100% + calc(var(--column-gap) + 1px));\n height: calc(100% + var(--row-gap));\n}\n\n/* If the selector was .flex-gap > *, it wouldn't override when components have a margin 0 specified by a single\n * class selector, specificity is equal. Both are one class. Neither > nor * contribute to specificity.\n * We need to make it more specific, so we raise it by 1 class.\n */\n.flex-container .flex-gap > * {\n /* apply half of the gap to each side of every item */\n margin: calc(var(--row-gap) / 2) calc(var(--column-gap) / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, passthroughStyle, responsiveDimensionValue, StyleHandlers, useBreakpoint, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FlexProps} from '@react-types/layout';\nimport React, {forwardRef} from 'react';\nimport styles from './flex-gap.css';\nimport {useIsSSR} from '@react-aria/ssr';\n\nconst flexStyleProps: StyleHandlers = {\n direction: ['flexDirection', passthroughStyle],\n wrap: ['flexWrap', flexWrapValue],\n justifyContent: ['justifyContent', flexAlignValue],\n alignItems: ['alignItems', flexAlignValue],\n alignContent: ['alignContent', flexAlignValue]\n};\n\nfunction Flex(props: FlexProps, ref: DOMRef) {\n let {\n children,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base'];\n let {styleProps} = useStyleProps(otherProps);\n let {styleProps: flexStyle} = useStyleProps(otherProps, flexStyleProps);\n let domRef = useDOMRef(ref);\n let isSSR = useIsSSR();\n\n // If a gap property is specified, and there is no native support or we're in SSR, use a shim.\n // Two divs are required for this: the outer one contains most style properties, and the inner\n // one is the flex container. Each item inside the flex container gets a margin around it based\n // on the gap, and the flex container has a negative margin to counteract this. The outer container\n // is necessary to allow nesting of flex containers with gaps, so that the inner CSS variable doesn't\n // override the outer one.\n if ((props.gap || props.rowGap || props.columnGap) && (isSSR || !isFlexGapSupported())) {\n let style = {\n ...flexStyle.style,\n '--column-gap': props.columnGap != null ? responsiveDimensionValue(props.columnGap, matchedBreakpoints) : undefined,\n '--row-gap': props.rowGap != null ? responsiveDimensionValue(props.rowGap, matchedBreakpoints) : undefined,\n '--gap': props.gap != null ? responsiveDimensionValue(props.gap, matchedBreakpoints) : undefined\n };\n\n return (\n
    \n
    \n {children}\n
    \n
    \n );\n }\n\n // If no gaps, or native support exists, then we only need to render a single div.\n let style = {\n ...styleProps.style,\n ...flexStyle.style\n };\n\n if (props.gap != null) {\n style.gap = responsiveDimensionValue(props.gap, matchedBreakpoints);\n }\n\n if (props.columnGap != null) {\n style.columnGap = responsiveDimensionValue(props.columnGap, matchedBreakpoints);\n }\n\n if (props.rowGap != null) {\n style.rowGap = responsiveDimensionValue(props.rowGap, matchedBreakpoints);\n }\n\n return (\n
    \n {children}\n
    \n );\n}\n\n/**\n * Normalize 'start' and 'end' alignment values to 'flex-start' and 'flex-end'\n * in flex containers for browser compatibility.\n */\nfunction flexAlignValue(value) {\n if (value === 'start') {\n return 'flex-start';\n }\n\n if (value === 'end') {\n return 'flex-end';\n }\n\n return value;\n}\n\n/**\n * Takes a boolean and translates it to flex wrap or nowrap.\n */\nfunction flexWrapValue(value) {\n if (typeof value === 'boolean') {\n return value ? 'wrap' : 'nowrap';\n }\n\n return value;\n}\n\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/Modernizr/Modernizr/blob/7efb9d0edd66815fb115fdce95fabaf019ce8db5/feature-detects/css/flexgap.js\n\nlet _isFlexGapSupported = null;\nfunction isFlexGapSupported() {\n if (_isFlexGapSupported != null) {\n return _isFlexGapSupported;\n }\n\n if (typeof document === 'undefined') {\n return false;\n }\n\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n _isFlexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n flex.parentNode.removeChild(flex);\n\n return _isFlexGapSupported;\n}\n\n/**\n * A layout container using flexbox. Provides Spectrum dimension values, and supports the gap\n * property to define consistent spacing between items.\n */\nconst _Flex = forwardRef(Flex);\nexport {_Flex as Flex};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, Orientation} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n\nexport interface SeparatorProps extends DOMProps, AriaLabelingProps {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: Orientation,\n /** The HTML element type that will be used to render the separator. */\n elementType?: string\n}\n\nexport interface SeparatorAria {\n /** Props for the separator element. */\n separatorProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a separator.\n * A separator is a visual divider between two groups of content,\n * e.g. groups of menu items or sections of a page.\n */\nexport function useSeparator(props: SeparatorProps): SeparatorAria {\n let domProps = filterDOMProps(props, {labelable: true});\n let ariaOrientation;\n // if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined\n // if it's vertical, we need to specify it\n if (props.orientation === 'vertical') {\n ariaOrientation = 'vertical';\n }\n // hr elements implicitly have role = separator and a horizontal orientation\n if (props.elementType !== 'hr') {\n return {\n separatorProps: {\n ...domProps,\n role: 'separator',\n 'aria-orientation': ariaOrientation\n }\n };\n }\n return {separatorProps: domProps};\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = More;\n\nvar _More = require(\"@adobe/react-spectrum-workflow/dist/More\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction More(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.Icon, props, /*#__PURE__*/_react.default.createElement(_More.A4uMore, null));\n}","/**\n* @adobe/react-spectrum-workflow (c) by Adobe\n* \n* @adobe/react-spectrum-workflow is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.A4uMore = A4uMore;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction A4uMore(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n }, props, props), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"17.8\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"29.5\",\n cy: \"18.2\",\n r: \"3.4\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fillRule: \"evenodd\",\n cx: \"6.1\",\n cy: \"18.2\",\n r: \"3.4\"\n }));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusStrategy} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useContext} from 'react';\n\nexport interface MenuContextValue extends HTMLAttributes {\n onClose?: () => void,\n closeOnSelect?: boolean,\n shouldFocusWrap?: boolean,\n autoFocus?: boolean | FocusStrategy,\n ref?: MutableRefObject\n}\n\nexport const MenuContext = React.createContext({});\n\nexport function useMenuContext(): MenuContextValue {\n return useContext(MenuContext);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useDOMRef, useIsMobileDevice} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {Placement} from '@react-types/overlays';\nimport {Popover, Tray} from '@react-spectrum/overlays';\nimport {PressResponder} from '@react-aria/interactions';\nimport React, {forwardRef, Fragment, useRef} from 'react';\nimport {SpectrumMenuTriggerProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenuTrigger} from '@react-aria/menu';\nimport {useMenuTriggerState} from '@react-stately/menu';\n\nfunction MenuTrigger(props: SpectrumMenuTriggerProps, ref: DOMRef) {\n let triggerRef = useRef();\n let domRef = useDOMRef(ref);\n let menuTriggerRef = domRef || triggerRef;\n let menuRef = useRef();\n let {\n children,\n align = 'start',\n shouldFlip = true,\n direction = 'bottom',\n closeOnSelect,\n trigger = 'press'\n } = props;\n\n let [menuTrigger, menu] = React.Children.toArray(children);\n let state = useMenuTriggerState(props);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger({trigger}, state, menuTriggerRef);\n\n let initialPlacement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n initialPlacement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n initialPlacement = `${direction} ${align}` as Placement;\n }\n\n let isMobile = useIsMobileDevice();\n let menuContext = {\n ...menuProps,\n ref: menuRef,\n onClose: state.close,\n closeOnSelect,\n autoFocus: state.focusStrategy || true,\n UNSAFE_style: isMobile ? {\n width: '100%',\n maxHeight: 'inherit'\n } : undefined,\n UNSAFE_className: classNames(styles, {'spectrum-Menu-popover': !isMobile})\n };\n\n // On small screen devices, the menu is rendered in a tray, otherwise a popover.\n let overlay;\n if (isMobile) {\n overlay = (\n \n {menu}\n \n );\n } else {\n overlay = (\n \n {menu}\n \n );\n }\n\n return (\n \n \n \n {menuTrigger}\n \n \n \n {overlay}\n \n \n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nlet _MenuTrigger = forwardRef(MenuTrigger);\nexport {_MenuTrigger as MenuTrigger};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport CheckmarkMedium from '@spectrum-icons/ui/CheckmarkMedium';\nimport {classNames, ClearSlots, SlotProvider} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {mergeProps} from '@react-aria/utils';\nimport {Node} from '@react-types/shared';\nimport React, {Key, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {Text} from '@react-spectrum/text';\nimport {TreeState} from '@react-stately/tree';\nimport {useHover} from '@react-aria/interactions';\nimport {useMenuContext} from './context';\nimport {useMenuItem} from '@react-aria/menu';\n\ninterface MenuItemProps {\n item: Node,\n state: TreeState,\n isVirtualized?: boolean,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuItem(props: MenuItemProps) {\n let {\n item,\n state,\n isVirtualized,\n onAction\n } = props;\n\n let {\n onClose,\n closeOnSelect\n } = useMenuContext();\n\n let {\n rendered,\n key\n } = item;\n\n let isSelected = state.selectionManager.isSelected(key);\n let isDisabled = state.disabledKeys.has(key);\n\n let ref = useRef();\n let {menuItemProps, labelProps, descriptionProps, keyboardShortcutProps} = useMenuItem(\n {\n isSelected,\n isDisabled,\n 'aria-label': item['aria-label'],\n key,\n onClose,\n closeOnSelect,\n isVirtualized,\n onAction\n },\n state,\n ref\n );\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let contents = typeof rendered === 'string'\n ? {rendered}\n : rendered;\n\n return (\n \n \n \n \n \n {contents}\n {isSelected &&\n \n }\n \n \n \n \n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames} from '@react-spectrum/utils';\nimport {MenuItem} from './MenuItem';\nimport {Node} from '@react-types/shared';\nimport React, {Fragment, Key} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {TreeState} from '@react-stately/tree';\nimport {useMenuSection} from '@react-aria/menu';\nimport {useSeparator} from '@react-aria/separator';\n\ninterface MenuSectionProps {\n item: Node,\n state: TreeState,\n onAction?: (key: Key) => void\n}\n\n/** @private */\nexport function MenuSection(props: MenuSectionProps) {\n let {item, state, onAction} = props;\n let {itemProps, headingProps, groupProps} = useMenuSection({\n heading: item.rendered,\n 'aria-label': item['aria-label']\n });\n\n let {separatorProps} = useSeparator({\n elementType: 'li'\n });\n\n return (\n \n {item.key !== state.collection.getFirstKey() &&\n \n }\n
  • \n {item.rendered &&\n \n {item.rendered}\n \n }\n \n {[...item.childNodes].map(node => {\n let item = (\n \n );\n\n if (node.wrapper) {\n item = node.wrapper(item);\n }\n\n return item;\n })}\n \n
  • \n
    \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {MenuContext} from './context';\nimport {MenuItem} from './MenuItem';\nimport {MenuSection} from './MenuSection';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {ReactElement, useContext} from 'react';\nimport {SpectrumMenuProps} from '@react-types/menu';\nimport styles from '@adobe/spectrum-css-temp/components/menu/vars.css';\nimport {useMenu} from '@react-aria/menu';\nimport {useTreeState} from '@react-stately/tree';\n\nfunction Menu(props: SpectrumMenuProps, ref: DOMRef) {\n let contextProps = useContext(MenuContext);\n let completeProps = {\n ...mergeProps(contextProps, props)\n };\n\n let domRef = useDOMRef(ref);\n let state = useTreeState(completeProps);\n let {menuProps} = useMenu(completeProps, state, domRef);\n let {styleProps} = useStyleProps(completeProps);\n useSyncRef(contextProps, domRef);\n\n return (\n \n {[...state.collection].map(item => {\n if (item.type === 'section') {\n return (\n \n );\n }\n\n let menuItem = (\n \n );\n\n if (item.wrapper) {\n menuItem = item.wrapper(menuItem);\n }\n\n return menuItem;\n })}\n \n );\n}\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\n// forwardRef doesn't support generic parameters, so cast the result to the correct type\n// https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref\nconst _Menu = React.forwardRef(Menu) as (props: SpectrumMenuProps & {ref?: DOMRef}) => ReactElement;\nexport {_Menu as Menu};\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"moreActions\": \"المزيد من الإجراءات\"\n}\n","{\n \"moreActions\": \"Повече действия\"\n}\n","{\n \"moreActions\": \"Další akce\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Mehr Aktionen\"\n}\n","{\n \"moreActions\": \"Περισσότερες ενέργειες\"\n}\n","{\n \"moreActions\": \"More actions\"\n}","{\n \"moreActions\": \"Más acciones\"\n}\n","{\n \"moreActions\": \"Veel toiminguid\"\n}\n","{\n \"moreActions\": \"Lisää toimintoja\"\n}\n","{\n \"moreActions\": \"Autres actions\"\n}\n","{\n \"moreActions\": \"פעולות נוספות\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"További lehetőségek\"\n}\n","{\n \"moreActions\": \"Altre azioni\"\n}\n","{\n \"moreActions\": \"その他のアクション\"\n}\n","{\n \"moreActions\": \"기타 작업\"\n}\n","{\n \"moreActions\": \"Daugiau veiksmų\"\n}\n","{\n \"moreActions\": \"Citas darbības\"\n}\n","{\n \"moreActions\": \"Flere handlinger\"\n}\n","{\n \"moreActions\": \"Meer handelingen\"\n}\n","{\n \"moreActions\": \"Więcej akcji\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mais ações\"\n}\n","{\n \"moreActions\": \"Mai multe acțiuni\"\n}\n","{\n \"moreActions\": \"Дополнительные действия\"\n}\n","{\n \"moreActions\": \"Ďalšie akcie\"\n}\n","{\n \"moreActions\": \"Več možnosti\"\n}\n","{\n \"moreActions\": \"Dodatne radnje\"\n}\n","{\n \"moreActions\": \"Fler åtgärder\"\n}\n","{\n \"moreActions\": \"Daha fazla eylem\"\n}\n","{\n \"moreActions\": \"Більше дій\"\n}\n","{\n \"moreActions\": \"更多操作\"\n}\n","{\n \"moreActions\": \"更多動作\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from '@react-spectrum/button';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {FocusableRef} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Menu} from './Menu';\nimport {MenuTrigger} from './MenuTrigger';\nimport More from '@spectrum-icons/workflow/More';\nimport React, {forwardRef, ReactElement} from 'react';\nimport {SpectrumActionMenuProps} from '@react-types/menu';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useSlotProps} from '@react-spectrum/utils';\n\nfunction ActionMenu(props: SpectrumActionMenuProps, ref: FocusableRef) {\n props = useSlotProps(props, 'actionMenu');\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let buttonProps = filterDOMProps(props, {labelable: true});\n if (buttonProps['aria-label'] === undefined) {\n buttonProps['aria-label'] = stringFormatter.format('moreActions');\n }\n\n return (\n \n \n \n \n \n \n );\n}\n\n/**\n * ActionMenu combines an ActionButton with a Menu for simple \"more actions\" use cases.\n */\nconst _ActionMenu = forwardRef(ActionMenu) as (props: SpectrumActionMenuProps & {ref?: FocusableRef}) => ReactElement;\nexport {_ActionMenu as ActionMenu};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLinkProps} from '@react-types/link';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface AriaLinkOptions extends AriaLinkProps {\n /** Whether the link is disabled. */\n isDisabled?: boolean,\n /**\n * The HTML element used to render the link, e.g. 'a', or 'span'.\n * @default 'a'\n */\n elementType?: string\n}\n\nexport interface LinkAria {\n /** Props for the link element. */\n linkProps: DOMAttributes,\n /** Whether the link is currently pressed. */\n isPressed: boolean\n}\n\n/**\n * Provides the behavior and accessibility implementation for a link component.\n * A link allows a user to navigate to another page or resource within a web page\n * or application.\n */\nexport function useLink(props: AriaLinkOptions, ref: RefObject): LinkAria {\n let {\n elementType = 'a',\n onPress,\n onPressStart,\n onPressEnd,\n // @ts-ignore\n onClick: deprecatedOnClick,\n isDisabled,\n ...otherProps\n } = props;\n\n let linkProps: DOMAttributes;\n if (elementType !== 'a') {\n linkProps = {\n role: 'link',\n tabIndex: !isDisabled ? 0 : undefined\n };\n }\n let {focusableProps} = useFocusable(props, ref);\n let {pressProps, isPressed} = usePress({onPress, onPressStart, onPressEnd, isDisabled, ref});\n let domProps = filterDOMProps(otherProps, {labelable: true});\n let interactionHandlers = mergeProps(focusableProps, pressProps);\n\n return {\n isPressed, // Used to indicate press state for visual\n linkProps: mergeProps(domProps, {\n ...interactionHandlers,\n ...linkProps,\n 'aria-disabled': isDisabled || undefined,\n onClick: (e) => {\n pressProps.onClick(e);\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {RefObject} from 'react';\nimport {useLink} from '@react-aria/link';\n\nexport interface BreadcrumbItemAria {\n /** Props for the breadcrumb item link element. */\n itemProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for an in a breadcrumbs component.\n * See `useBreadcrumbs` for details about breadcrumbs.\n */\nexport function useBreadcrumbItem(props: AriaBreadcrumbItemProps, ref: RefObject): BreadcrumbItemAria {\n let {\n isCurrent,\n isDisabled,\n 'aria-current': ariaCurrent,\n elementType = 'a',\n ...otherProps\n } = props;\n\n let {linkProps} = useLink({isDisabled: isDisabled || isCurrent, elementType, ...otherProps}, ref);\n let isHeading = /^h[1-6]$/.test(elementType);\n let itemProps: DOMAttributes = {};\n\n if (!isHeading) {\n itemProps = linkProps;\n }\n\n if (isCurrent) {\n itemProps['aria-current'] = ariaCurrent || 'page';\n // isCurrent sets isDisabled === true for the current item,\n // so we have to restore the tabIndex in order to support autoFocus.\n itemProps.tabIndex = props.autoFocus ? -1 : undefined;\n }\n\n return {\n itemProps: {\n 'aria-disabled': isDisabled,\n ...itemProps\n }\n };\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightSmall;\n\nvar _ChevronRightSmall = require(\"@adobe/react-spectrum-ui/dist/ChevronRightSmall\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightSmall(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightSmall.ChevronRightSmall, null));\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport {DOMAttributes} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs navigation element. */\n navProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a breadcrumbs component.\n * Breadcrumbs display a hierarchy of links to the current page or resource in an application.\n */\nexport function useBreadcrumbs(props: AriaBreadcrumbsProps): BreadcrumbsAria {\n let {\n 'aria-label': ariaLabel,\n ...otherProps\n } = props;\n\n let strings = useLocalizedStringFormatter(intlMessages);\n return {\n navProps: {\n ...filterDOMProps(otherProps, {labelable: true}),\n 'aria-label': ariaLabel || strings.format('breadcrumbs')\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"breadcrumbs\": \"عناصر الواجهة\"\n}\n","{\n \"breadcrumbs\": \"Трохи хляб\"\n}\n","{\n \"breadcrumbs\": \"Popis cesty\"\n}\n","{\n \"breadcrumbs\": \"Brødkrummer\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Πλοηγήσεις breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Migas de pan\"\n}\n","{\n \"breadcrumbs\": \"Lingiread\"\n}\n","{\n \"breadcrumbs\": \"Navigointilinkit\"\n}\n","{\n \"breadcrumbs\": \"Chemin de navigation\"\n}\n","{\n \"breadcrumbs\": \"שבילי ניווט\"\n}\n","{\n \"breadcrumbs\": \"Navigacijski putovi\"\n}\n","{\n \"breadcrumbs\": \"Morzsamenü\"\n}\n","{\n \"breadcrumbs\": \"Breadcrumb\"\n}\n","{\n \"breadcrumbs\": \"パンくずリスト\"\n}\n","{\n \"breadcrumbs\": \"탐색 표시\"\n}\n","{\n \"breadcrumbs\": \"Naršymo kelias\"\n}\n","{\n \"breadcrumbs\": \"Atpakaļceļi\"\n}\n","{\n \"breadcrumbs\": \"Navigasjonsstier\"\n}\n","{\n \"breadcrumbs\": \"Broodkruimels\"\n}\n","{\n \"breadcrumbs\": \"Struktura nawigacyjna\"\n}\n","{\n \"breadcrumbs\": \"Caminho detalhado\"\n}\n","{\n \"breadcrumbs\": \"Categorias\"\n}\n","{\n \"breadcrumbs\": \"Miez de pâine\"\n}\n","{\n \"breadcrumbs\": \"Навигация\"\n}\n","{\n \"breadcrumbs\": \"Navigačné prvky Breadcrumbs\"\n}\n","{\n \"breadcrumbs\": \"Drobtine\"\n}\n","{\n \"breadcrumbs\": \"Putanje navigacije\"\n}\n","{\n \"breadcrumbs\": \"Sökvägar\"\n}\n","{\n \"breadcrumbs\": \"İçerik haritaları\"\n}\n","{\n \"breadcrumbs\": \"Навігаційна стежка\"\n}\n","{\n \"breadcrumbs\": \"导航栏\"\n}\n","{\n \"breadcrumbs\": \"導覽列\"\n}\n","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightSmall = ChevronRightSmall;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightSmall(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7 5a.747.747 0 0 0-.22-.53L2.54.23a.75.75 0 1 0-1.06 1.06L5.19 5 1.48 8.71a.75.75 0 1 0 1.06 1.06l4.24-4.24A.747.747 0 0 0 7 5z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.5 4a.747.747 0 0 0-.22-.53C4.703 2.862 3.242 1.5 2.04.23A.75.75 0 1 0 .98 1.29L3.69 4 .98 6.71a.75.75 0 1 0 1.06 1.06l3.24-3.24A.747.747 0 0 0 5.5 4z\"\n }));\n}\n\nChevronRightSmall.displayName = 'ChevronRightSmall';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n \n \n {element}\n \n {isCurrent === false &&\n \n }\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs(props: SpectrumBreadcrumbsProps, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n autoFocusCurrent,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n let containerWidth = currListRef.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n \n \n \n \n \n \n {childArray}\n \n \n \n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n \n \n {child.props.children}\n \n \n );\n });\n\n return (\n \n \n {breadcrumbItems}\n \n \n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--darkest {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(0, 0, 0);\n --spectrum-gray-75: rgb(14, 14, 14);\n --spectrum-gray-100: rgb(29, 29, 29);\n --spectrum-gray-200: rgb(48, 48, 48);\n --spectrum-gray-300: rgb(75, 75, 75);\n --spectrum-gray-400: rgb(106, 106, 106);\n --spectrum-gray-500: rgb(141, 141, 141);\n --spectrum-gray-600: rgb(176, 176, 176);\n --spectrum-gray-700: rgb(208, 208, 208);\n --spectrum-gray-800: rgb(235, 235, 235);\n --spectrum-gray-900: rgb(255, 255, 255);\n --spectrum-red-100: rgb(87, 0, 0);\n --spectrum-red-200: rgb(110, 0, 0);\n --spectrum-red-300: rgb(138, 0, 0);\n --spectrum-red-400: rgb(167, 0, 0);\n --spectrum-red-500: rgb(196, 7, 6);\n --spectrum-red-600: rgb(221, 33, 24);\n --spectrum-red-700: rgb(238, 67, 49);\n --spectrum-red-800: rgb(249, 99, 76);\n --spectrum-red-900: rgb(255, 129, 107);\n --spectrum-red-1000: rgb(255, 158, 140);\n --spectrum-red-1100: rgb(255, 183, 169);\n --spectrum-red-1200: rgb(255, 205, 195);\n --spectrum-red-1300: rgb(255, 223, 217);\n --spectrum-red-1400: rgb(255, 237, 234);\n --spectrum-orange-100: rgb(72, 24, 1);\n --spectrum-orange-200: rgb(92, 32, 0);\n --spectrum-orange-300: rgb(115, 43, 0);\n --spectrum-orange-400: rgb(138, 55, 0);\n --spectrum-orange-500: rgb(162, 68, 0);\n --spectrum-orange-600: rgb(186, 82, 0);\n --spectrum-orange-700: rgb(210, 98, 0);\n --spectrum-orange-800: rgb(232, 116, 0);\n --spectrum-orange-900: rgb(249, 137, 23);\n --spectrum-orange-1000: rgb(255, 162, 59);\n --spectrum-orange-1100: rgb(255, 188, 102);\n --spectrum-orange-1200: rgb(253, 210, 145);\n --spectrum-orange-1300: rgb(255, 226, 181);\n --spectrum-orange-1400: rgb(255, 239, 213);\n --spectrum-yellow-100: rgb(53, 36, 0);\n --spectrum-yellow-200: rgb(68, 47, 0);\n --spectrum-yellow-300: rgb(86, 62, 0);\n --spectrum-yellow-400: rgb(103, 77, 0);\n --spectrum-yellow-500: rgb(122, 92, 0);\n --spectrum-yellow-600: rgb(141, 108, 0);\n --spectrum-yellow-700: rgb(161, 126, 0);\n --spectrum-yellow-800: rgb(180, 144, 0);\n --spectrum-yellow-900: rgb(199, 162, 0);\n --spectrum-yellow-1000: rgb(216, 181, 0);\n --spectrum-yellow-1100: rgb(233, 199, 0);\n --spectrum-yellow-1200: rgb(247, 216, 4);\n --spectrum-yellow-1300: rgb(249, 233, 97);\n --spectrum-yellow-1400: rgb(252, 243, 170);\n --spectrum-chartreuse-100: rgb(32, 43, 0);\n --spectrum-chartreuse-200: rgb(42, 56, 0);\n --spectrum-chartreuse-300: rgb(54, 72, 0);\n --spectrum-chartreuse-400: rgb(66, 88, 0);\n --spectrum-chartreuse-500: rgb(79, 105, 0);\n --spectrum-chartreuse-600: rgb(93, 123, 0);\n --spectrum-chartreuse-700: rgb(107, 142, 0);\n --spectrum-chartreuse-800: rgb(122, 161, 0);\n --spectrum-chartreuse-900: rgb(138, 180, 3);\n --spectrum-chartreuse-1000: rgb(154, 198, 11);\n --spectrum-chartreuse-1100: rgb(170, 216, 22);\n --spectrum-chartreuse-1200: rgb(187, 232, 41);\n --spectrum-chartreuse-1300: rgb(205, 246, 72);\n --spectrum-chartreuse-1400: rgb(225, 253, 132);\n --spectrum-celery-100: rgb(0, 47, 7);\n --spectrum-celery-200: rgb(0, 61, 9);\n --spectrum-celery-300: rgb(0, 77, 12);\n --spectrum-celery-400: rgb(0, 95, 15);\n --spectrum-celery-500: rgb(0, 113, 15);\n --spectrum-celery-600: rgb(0, 132, 15);\n --spectrum-celery-700: rgb(0, 151, 20);\n --spectrum-celery-800: rgb(13, 171, 37);\n --spectrum-celery-900: rgb(45, 191, 58);\n --spectrum-celery-1000: rgb(80, 208, 82);\n --spectrum-celery-1100: rgb(115, 224, 107);\n --spectrum-celery-1200: rgb(147, 237, 131);\n --spectrum-celery-1300: rgb(180, 247, 162);\n --spectrum-celery-1400: rgb(213, 252, 202);\n --spectrum-green-100: rgb(10, 44, 28);\n --spectrum-green-200: rgb(7, 59, 36);\n --spectrum-green-300: rgb(0, 76, 46);\n --spectrum-green-400: rgb(0, 93, 57);\n --spectrum-green-500: rgb(0, 111, 69);\n --spectrum-green-600: rgb(0, 130, 82);\n --spectrum-green-700: rgb(0, 149, 98);\n --spectrum-green-800: rgb(28, 168, 114);\n --spectrum-green-900: rgb(52, 187, 132);\n --spectrum-green-1000: rgb(75, 205, 149);\n --spectrum-green-1100: rgb(103, 222, 168);\n --spectrum-green-1200: rgb(137, 236, 188);\n --spectrum-green-1300: rgb(177, 244, 209);\n --spectrum-green-1400: rgb(214, 249, 228);\n --spectrum-seafoam-100: rgb(18, 43, 42);\n --spectrum-seafoam-200: rgb(19, 57, 55);\n --spectrum-seafoam-300: rgb(16, 73, 70);\n --spectrum-seafoam-400: rgb(3, 91, 88);\n --spectrum-seafoam-500: rgb(0, 108, 104);\n --spectrum-seafoam-600: rgb(0, 127, 121);\n --spectrum-seafoam-700: rgb(0, 146, 140);\n --spectrum-seafoam-800: rgb(0, 165, 159);\n --spectrum-seafoam-900: rgb(26, 185, 178);\n --spectrum-seafoam-1000: rgb(66, 202, 195);\n --spectrum-seafoam-1100: rgb(102, 218, 211);\n --spectrum-seafoam-1200: rgb(139, 232, 225);\n --spectrum-seafoam-1300: rgb(179, 242, 237);\n --spectrum-seafoam-1400: rgb(215, 248, 244);\n --spectrum-cyan-100: rgb(0, 41, 68);\n --spectrum-cyan-200: rgb(0, 54, 88);\n --spectrum-cyan-300: rgb(0, 69, 108);\n --spectrum-cyan-400: rgb(0, 86, 128);\n --spectrum-cyan-500: rgb(0, 103, 147);\n --spectrum-cyan-600: rgb(0, 121, 167);\n --spectrum-cyan-700: rgb(0, 140, 186);\n --spectrum-cyan-800: rgb(4, 160, 205);\n --spectrum-cyan-900: rgb(23, 180, 221);\n --spectrum-cyan-1000: rgb(57, 199, 234);\n --spectrum-cyan-1100: rgb(96, 216, 243);\n --spectrum-cyan-1200: rgb(134, 230, 250);\n --spectrum-cyan-1300: rgb(170, 242, 255);\n --spectrum-cyan-1400: rgb(206, 249, 255);\n --spectrum-blue-100: rgb(0, 38, 81);\n --spectrum-blue-200: rgb(0, 50, 106);\n --spectrum-blue-300: rgb(0, 64, 135);\n --spectrum-blue-400: rgb(0, 78, 166);\n --spectrum-blue-500: rgb(0, 92, 200);\n --spectrum-blue-600: rgb(6, 108, 231);\n --spectrum-blue-700: rgb(29, 128, 245);\n --spectrum-blue-800: rgb(64, 150, 243);\n --spectrum-blue-900: rgb(94, 170, 247);\n --spectrum-blue-1000: rgb(124, 189, 250);\n --spectrum-blue-1100: rgb(152, 206, 253);\n --spectrum-blue-1200: rgb(179, 222, 254);\n --spectrum-blue-1300: rgb(206, 234, 255);\n --spectrum-blue-1400: rgb(227, 243, 255);\n --spectrum-indigo-100: rgb(26, 29, 97);\n --spectrum-indigo-200: rgb(35, 39, 125);\n --spectrum-indigo-300: rgb(46, 50, 158);\n --spectrum-indigo-400: rgb(58, 63, 189);\n --spectrum-indigo-500: rgb(73, 78, 216);\n --spectrum-indigo-600: rgb(90, 96, 235);\n --spectrum-indigo-700: rgb(110, 115, 246);\n --spectrum-indigo-800: rgb(132, 136, 253);\n --spectrum-indigo-900: rgb(153, 157, 255);\n --spectrum-indigo-1000: rgb(174, 177, 255);\n --spectrum-indigo-1100: rgb(194, 196, 255);\n --spectrum-indigo-1200: rgb(212, 213, 255);\n --spectrum-indigo-1300: rgb(227, 228, 255);\n --spectrum-indigo-1400: rgb(240, 240, 255);\n --spectrum-purple-100: rgb(50, 16, 104);\n --spectrum-purple-200: rgb(67, 13, 140);\n --spectrum-purple-300: rgb(86, 16, 173);\n --spectrum-purple-400: rgb(106, 29, 200);\n --spectrum-purple-500: rgb(126, 49, 222);\n --spectrum-purple-600: rgb(145, 70, 236);\n --spectrum-purple-700: rgb(162, 94, 246);\n --spectrum-purple-800: rgb(178, 119, 250);\n --spectrum-purple-900: rgb(192, 143, 252);\n --spectrum-purple-1000: rgb(206, 166, 253);\n --spectrum-purple-1100: rgb(219, 188, 254);\n --spectrum-purple-1200: rgb(230, 207, 255);\n --spectrum-purple-1300: rgb(240, 224, 255);\n --spectrum-purple-1400: rgb(248, 237, 255);\n --spectrum-fuchsia-100: rgb(70, 14, 68);\n --spectrum-fuchsia-200: rgb(93, 9, 92);\n --spectrum-fuchsia-300: rgb(120, 0, 120);\n --spectrum-fuchsia-400: rgb(146, 0, 147);\n --spectrum-fuchsia-500: rgb(169, 19, 170);\n --spectrum-fuchsia-600: rgb(191, 43, 191);\n --spectrum-fuchsia-700: rgb(211, 65, 213);\n --spectrum-fuchsia-800: rgb(228, 91, 229);\n --spectrum-fuchsia-900: rgb(239, 120, 238);\n --spectrum-fuchsia-1000: rgb(246, 149, 243);\n --spectrum-fuchsia-1100: rgb(251, 175, 246);\n --spectrum-fuchsia-1200: rgb(254, 199, 248);\n --spectrum-fuchsia-1300: rgb(255, 220, 250);\n --spectrum-fuchsia-1400: rgb(255, 235, 252);\n --spectrum-magenta-100: rgb(83, 3, 41);\n --spectrum-magenta-200: rgb(106, 0, 52);\n --spectrum-magenta-300: rgb(133, 0, 65);\n --spectrum-magenta-400: rgb(161, 0, 78);\n --spectrum-magenta-500: rgb(186, 22, 93);\n --spectrum-magenta-600: rgb(209, 43, 114);\n --spectrum-magenta-700: rgb(227, 69, 137);\n --spectrum-magenta-800: rgb(241, 97, 156);\n --spectrum-magenta-900: rgb(252, 124, 173);\n --spectrum-magenta-1000: rgb(255, 152, 191);\n --spectrum-magenta-1100: rgb(255, 179, 207);\n --spectrum-magenta-1200: rgb(255, 202, 221);\n --spectrum-magenta-1300: rgb(255, 221, 233);\n --spectrum-magenta-1400: rgb(255, 236, 243);\n /* legacy color aliases matching closest v6 color to v5 name */\n --spectrum-legacy-color-celery-400: var(--spectrum-celery-800);\n --spectrum-legacy-color-celery-500: var(--spectrum-celery-900);\n --spectrum-legacy-color-celery-600: var(--spectrum-celery-1000);\n --spectrum-legacy-color-celery-700: var(--spectrum-celery-1100);\n --spectrum-legacy-color-chartreuse-400: var(--spectrum-chartreuse-900);\n --spectrum-legacy-color-chartreuse-500: var(--spectrum-chartreuse-1000);\n --spectrum-legacy-color-chartreuse-600: var(--spectrum-chartreuse-1100);\n --spectrum-legacy-color-chartreuse-700: var(--spectrum-chartreuse-1200);\n --spectrum-legacy-color-yellow-400: var(--spectrum-yellow-1000);\n --spectrum-legacy-color-yellow-500: var(--spectrum-yellow-1100);\n --spectrum-legacy-color-yellow-600: var(--spectrum-yellow-1200);\n --spectrum-legacy-color-yellow-700: var(--spectrum-yellow-1300);\n --spectrum-legacy-color-magenta-400: var(--spectrum-magenta-600);\n --spectrum-legacy-color-magenta-500: var(--spectrum-magenta-700);\n --spectrum-legacy-color-magenta-600: var(--spectrum-magenta-800);\n --spectrum-legacy-color-magenta-700: var(--spectrum-magenta-900);\n --spectrum-legacy-color-fuchsia-400: var(--spectrum-fuchsia-600);\n --spectrum-legacy-color-fuchsia-500: var(--spectrum-fuchsia-700);\n --spectrum-legacy-color-fuchsia-600: var(--spectrum-fuchsia-800);\n --spectrum-legacy-color-fuchsia-700: var(--spectrum-fuchsia-900);\n --spectrum-legacy-color-purple-400: var(--spectrum-purple-600);\n --spectrum-legacy-color-purple-500: var(--spectrum-purple-700);\n --spectrum-legacy-color-purple-600: var(--spectrum-purple-800);\n --spectrum-legacy-color-purple-700: var(--spectrum-purple-900);\n --spectrum-legacy-color-indigo-400: var(--spectrum-indigo-600);\n --spectrum-legacy-color-indigo-500: var(--spectrum-indigo-700);\n --spectrum-legacy-color-indigo-600: var(--spectrum-indigo-800);\n --spectrum-legacy-color-indigo-700: var(--spectrum-indigo-900);\n --spectrum-legacy-color-red-400: var(--spectrum-red-600);\n --spectrum-legacy-color-red-500: var(--spectrum-red-700);\n --spectrum-legacy-color-red-600: var(--spectrum-red-800);\n --spectrum-legacy-color-red-700: var(--spectrum-red-900);\n --spectrum-legacy-color-orange-400: var(--spectrum-orange-800);\n --spectrum-legacy-color-orange-500: var(--spectrum-orange-900);\n --spectrum-legacy-color-orange-600: var(--spectrum-orange-1000);\n --spectrum-legacy-color-orange-700: var(--spectrum-orange-1100);\n --spectrum-legacy-color-green-400: var(--spectrum-green-700);\n --spectrum-legacy-color-green-500: var(--spectrum-green-800);\n --spectrum-legacy-color-green-600: var(--spectrum-green-900);\n --spectrum-legacy-color-green-700: var(--spectrum-green-1000);\n --spectrum-legacy-color-blue-400: var(--spectrum-blue-700);\n --spectrum-legacy-color-blue-500: var(--spectrum-blue-800);\n --spectrum-legacy-color-blue-600: var(--spectrum-blue-900);\n --spectrum-legacy-color-blue-700: var(--spectrum-blue-1000);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.6);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.8);\n --spectrum-alias-background-color-hover-overlay: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-hover: rgba(255,255,255,0.08);\n --spectrum-alias-highlight-active: rgba(239,239,239,0.15);\n --spectrum-alias-highlight-selected: rgba(64,150,243,0.2);\n --spectrum-alias-highlight-selected-hover: rgba(64,150,243,0.3);\n --spectrum-alias-highlight-invalid: rgba(221, 33, 24, 0.15); /* matches red-600 */\n --spectrum-alias-text-highlight-color: rgba(64,150,243,0.3);\n --spectrum-alias-background-color-quickactions: rgba(29,29,29,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(235,235,235,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-50);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-50);\n --spectrum-colorarea-border-color: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-down: rgba(239,239,239,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(239,239,239,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(38,128,235,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(38,128,235,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(235,235,235,0.02);\n --spectrum-well-border-color: rgba(239,239,239,0.05);\n /* BEGIN RSP PATCH */\n /* missing in spectrum-css */\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-100);\n /* END RSP PATCH */\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: var(--spectrum-global-color-gray-600); /* 4.8:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-600);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-500);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-400);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-500);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-400);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-300);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-200);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-300);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-600);\n --spectrum-negative-background-color-hover: var(--spectrum-red-500);\n --spectrum-negative-background-color-down: var(--spectrum-red-400);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-500);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-600);\n --spectrum-positive-background-color-hover: var(--spectrum-green-500);\n --spectrum-positive-background-color-down: var(--spectrum-green-400);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-500);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-600);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-500);\n --spectrum-informative-background-color-down: var(--spectrum-blue-400);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-500);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-700);\n --spectrum-orange-background-color-default: var(--spectrum-orange-800);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-1000);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-900);\n --spectrum-celery-background-color-default: var(--spectrum-celery-800);\n --spectrum-green-background-color-default: var(--spectrum-green-700);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-700);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-700);\n --spectrum-blue-background-color-default: var(--spectrum-blue-700);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-700);\n --spectrum-purple-background-color-default: var(--spectrum-purple-700);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-700);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-700);\n\n --spectrum-negative-visual-color: var(--spectrum-red-700);\n --spectrum-positive-visual-color: var(--spectrum-green-800);\n --spectrum-notice-visual-color: var(--spectrum-orange-900);\n --spectrum-informative-visual-color: var(--spectrum-blue-900);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-600);\n --spectrum-red-visual-color: var(--spectrum-red-700);\n --spectrum-orange-visual-color: var(--spectrum-orange-900);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-1100);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-900);\n --spectrum-celery-visual-color: var(--spectrum-celery-800);\n --spectrum-green-visual-color: var(--spectrum-green-800);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-800);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-900);\n --spectrum-blue-visual-color: var(--spectrum-blue-900);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-900);\n --spectrum-purple-visual-color: var(--spectrum-purple-900);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-900);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-900);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum { /* spectrum-animationGlobals.css */\n --spectrum-global-animation-duration-0: 0ms;\n --spectrum-global-animation-duration-100: 130ms;\n --spectrum-global-animation-duration-200: 160ms;\n --spectrum-global-animation-duration-300: 190ms;\n --spectrum-global-animation-duration-400: 220ms;\n --spectrum-global-animation-duration-500: 250ms;\n --spectrum-global-animation-duration-600: 300ms;\n --spectrum-global-animation-duration-700: 350ms;\n --spectrum-global-animation-duration-800: 400ms;\n --spectrum-global-animation-duration-900: 450ms;\n --spectrum-global-animation-duration-1000: 500ms;\n --spectrum-global-animation-duration-2000: 1000ms;\n --spectrum-global-animation-duration-4000: 2000ms;\n --spectrum-global-animation-ease-in-out: cubic-bezier(.45, 0, .40, 1);\n --spectrum-global-animation-ease-in: cubic-bezier(.50, 0, 1, 1);\n --spectrum-global-animation-ease-out: cubic-bezier(0, 0, 0.40, 1);\n --spectrum-global-animation-linear: cubic-bezier(0, 0, 1, 1);\n\n\n /* spectrum-colorGlobals.css */\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-global-color-static-black: rgb(0, 0, 0);\n --spectrum-global-color-static-white: rgb(255, 255, 255);\n --spectrum-global-color-static-blue: rgb(0, 87, 191);\n --spectrum-global-color-static-gray-50: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-75: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-100: rgb(255, 255, 255);\n --spectrum-global-color-static-gray-200: rgb(235, 235, 235);\n --spectrum-global-color-static-gray-300: rgb(217, 217, 217);\n --spectrum-global-color-static-gray-400: rgb(179, 179, 179);\n --spectrum-global-color-static-gray-500: rgb(146, 146, 146);\n --spectrum-global-color-static-gray-600: rgb(110, 110, 110);\n --spectrum-global-color-static-gray-700: rgb(71, 71, 71);\n --spectrum-global-color-static-gray-800: rgb(34, 34, 34);\n --spectrum-global-color-static-gray-900: rgb(0, 0, 0);\n --spectrum-global-color-static-blue-200: rgb(130, 193, 251);\n --spectrum-global-color-static-blue-300: rgb(98, 173, 247);\n --spectrum-global-color-static-blue-400: rgb(66, 151, 244);\n --spectrum-global-color-static-blue-500: rgb(27, 127, 245);\n --spectrum-global-color-static-blue-600: rgb(4, 105, 227);\n --spectrum-global-color-static-blue-700: rgb(0, 87, 190);\n --spectrum-global-color-static-blue-800: rgb(0, 72, 153);\n --spectrum-global-color-static-red-400: rgb(237, 64, 48);\n --spectrum-global-color-static-red-500: rgb(217, 28, 21);\n --spectrum-global-color-static-red-600: rgb(187, 2, 2);\n --spectrum-global-color-static-red-700: rgb(154, 0, 0);\n --spectrum-global-color-static-orange-400: rgb(250, 139, 26);\n --spectrum-global-color-static-orange-500: rgb(233, 117, 0);\n --spectrum-global-color-static-orange-600: rgb(209, 97, 0);\n --spectrum-global-color-static-orange-700: rgb(182, 80, 0);\n --spectrum-global-color-static-green-400: rgb(29, 169, 115);\n --spectrum-global-color-static-green-500: rgb(0, 148, 97);\n --spectrum-global-color-static-green-600: rgb(0, 126, 80);\n --spectrum-global-color-static-green-700: rgb(0, 105, 65);\n --spectrum-global-color-static-celery-200: rgb(126, 229, 114);\n --spectrum-global-color-static-celery-300: rgb(87, 212, 86);\n --spectrum-global-color-static-celery-400: rgb(48, 193, 61);\n --spectrum-global-color-static-celery-500: rgb(15, 172, 38);\n --spectrum-global-color-static-celery-600: rgb(0, 150, 20);\n --spectrum-global-color-static-celery-700: rgb(0, 128, 15);\n --spectrum-global-color-static-chartreuse-300: rgb(176, 222, 27);\n --spectrum-global-color-static-chartreuse-400: rgb(157, 203, 13);\n --spectrum-global-color-static-chartreuse-500: rgb(139, 182, 4);\n --spectrum-global-color-static-chartreuse-600: rgb(122, 162, 0);\n --spectrum-global-color-static-chartreuse-700: rgb(106, 141, 0);\n --spectrum-global-color-static-yellow-200: rgb(250, 237, 123);\n --spectrum-global-color-static-yellow-300: rgb(250, 224, 23);\n --spectrum-global-color-static-yellow-400: rgb(238, 205, 0);\n --spectrum-global-color-static-yellow-500: rgb(221, 185, 0);\n --spectrum-global-color-static-yellow-600: rgb(201, 164, 0);\n --spectrum-global-color-static-yellow-700: rgb(181, 144, 0);\n --spectrum-global-color-static-magenta-200: rgb(253, 127, 175);\n --spectrum-global-color-static-magenta-300: rgb(242, 98, 157);\n --spectrum-global-color-static-magenta-400: rgb(226, 68, 135);\n --spectrum-global-color-static-magenta-500: rgb(205, 40, 111);\n --spectrum-global-color-static-magenta-600: rgb(179, 15, 89);\n --spectrum-global-color-static-magenta-700: rgb(149, 0, 72);\n --spectrum-global-color-static-fuchsia-400: rgb(228, 93, 230);\n --spectrum-global-color-static-fuchsia-500: rgb(211, 63, 212);\n --spectrum-global-color-static-fuchsia-600: rgb(188, 39, 187);\n --spectrum-global-color-static-fuchsia-700: rgb(163, 10, 163);\n --spectrum-global-color-static-purple-400: rgb(178, 121, 250);\n --spectrum-global-color-static-purple-500: rgb(161, 93, 246);\n --spectrum-global-color-static-purple-600: rgb(142, 67, 234);\n --spectrum-global-color-static-purple-700: rgb(120, 43, 216);\n --spectrum-global-color-static-purple-800: rgb(98, 23, 190);\n --spectrum-global-color-static-indigo-200: rgb(178, 181, 255);\n --spectrum-global-color-static-indigo-300: rgb(155, 159, 255);\n --spectrum-global-color-static-indigo-400: rgb(132, 137, 253);\n --spectrum-global-color-static-indigo-500: rgb(109, 115, 246);\n --spectrum-global-color-static-indigo-600: rgb(87, 93, 232);\n --spectrum-global-color-static-indigo-700: rgb(68, 74, 208);\n --spectrum-global-color-static-seafoam-200: rgb(75, 206, 199);\n --spectrum-global-color-static-seafoam-300: rgb(32, 187, 180);\n --spectrum-global-color-static-seafoam-400: rgb(0, 166, 160);\n --spectrum-global-color-static-seafoam-500: rgb(0, 145, 139);\n --spectrum-global-color-static-seafoam-600: rgb(0, 124, 118);\n --spectrum-global-color-static-seafoam-700: rgb(0, 103, 99);\n --spectrum-global-color-opacity-100: 1;\n --spectrum-global-color-opacity-90: 0.9;\n --spectrum-global-color-opacity-80: 0.8;\n --spectrum-global-color-opacity-60: 0.6;\n --spectrum-global-color-opacity-50: 0.5;\n --spectrum-global-color-opacity-42: 0.42;\n --spectrum-global-color-opacity-40: 0.4;\n --spectrum-global-color-opacity-30: 0.3;\n --spectrum-global-color-opacity-25: 0.25;\n --spectrum-global-color-opacity-20: 0.2;\n --spectrum-global-color-opacity-15: 0.15;\n --spectrum-global-color-opacity-10: 0.1;\n --spectrum-global-color-opacity-8: 0.08;\n --spectrum-global-color-opacity-7: 0.07;\n --spectrum-global-color-opacity-6: 0.06;\n --spectrum-global-color-opacity-5: 0.05;\n --spectrum-global-color-opacity-4: 0.04;\n\n /* mappings from v5 color indices to v6 color indices */\n --spectrum-global-color-celery-400: var(--spectrum-celery-600);\n --spectrum-global-color-celery-500: var(--spectrum-celery-700);\n --spectrum-global-color-celery-600: var(--spectrum-celery-800);\n --spectrum-global-color-celery-700: var(--spectrum-celery-900);\n --spectrum-global-color-chartreuse-400: var(--spectrum-chartreuse-500);\n --spectrum-global-color-chartreuse-500: var(--spectrum-chartreuse-600);\n --spectrum-global-color-chartreuse-600: var(--spectrum-chartreuse-700);\n --spectrum-global-color-chartreuse-700: var(--spectrum-chartreuse-800);\n --spectrum-global-color-yellow-400: var(--spectrum-yellow-400);\n --spectrum-global-color-yellow-500: var(--spectrum-yellow-500);\n --spectrum-global-color-yellow-600: var(--spectrum-yellow-600);\n --spectrum-global-color-yellow-700: var(--spectrum-yellow-700);\n --spectrum-global-color-magenta-400: var(--spectrum-magenta-800);\n --spectrum-global-color-magenta-500: var(--spectrum-magenta-900);\n --spectrum-global-color-magenta-600: var(--spectrum-magenta-1000);\n --spectrum-global-color-magenta-700: var(--spectrum-magenta-1100);\n --spectrum-global-color-fuchsia-400: var(--spectrum-fuchsia-800);\n --spectrum-global-color-fuchsia-500: var(--spectrum-fuchsia-900);\n --spectrum-global-color-fuchsia-600: var(--spectrum-fuchsia-1000);\n --spectrum-global-color-fuchsia-700: var(--spectrum-fuchsia-1100);\n --spectrum-global-color-purple-400: var(--spectrum-purple-800);\n --spectrum-global-color-purple-500: var(--spectrum-purple-900);\n --spectrum-global-color-purple-600: var(--spectrum-purple-1000);\n --spectrum-global-color-purple-700: var(--spectrum-purple-1100);\n --spectrum-global-color-indigo-400: var(--spectrum-indigo-800);\n --spectrum-global-color-indigo-500: var(--spectrum-indigo-900);\n --spectrum-global-color-indigo-600: var(--spectrum-indigo-1000);\n --spectrum-global-color-indigo-700: var(--spectrum-indigo-1100);\n --spectrum-global-color-seafoam-400: var(--spectrum-seafoam-700);\n --spectrum-global-color-seafoam-500: var(--spectrum-seafoam-800);\n --spectrum-global-color-seafoam-600: var(--spectrum-seafoam-900);\n --spectrum-global-color-seafoam-700: var(--spectrum-seafoam-1000);\n --spectrum-global-color-red-400: var(--spectrum-red-800);\n --spectrum-global-color-red-500: var(--spectrum-red-900);\n --spectrum-global-color-red-600: var(--spectrum-red-1000);\n --spectrum-global-color-red-700: var(--spectrum-red-1100);\n --spectrum-global-color-orange-400: var(--spectrum-orange-600);\n --spectrum-global-color-orange-500: var(--spectrum-orange-700);\n --spectrum-global-color-orange-600: var(--spectrum-orange-800);\n --spectrum-global-color-orange-700: var(--spectrum-orange-900);\n --spectrum-global-color-green-400: var(--spectrum-green-800);\n --spectrum-global-color-green-500: var(--spectrum-green-900);\n --spectrum-global-color-green-600: var(--spectrum-green-1000);\n --spectrum-global-color-green-700: var(--spectrum-green-1100);\n --spectrum-global-color-blue-400: var(--spectrum-blue-800);\n --spectrum-global-color-blue-500: var(--spectrum-blue-900);\n --spectrum-global-color-blue-600: var(--spectrum-blue-1000);\n --spectrum-global-color-blue-700: var(--spectrum-blue-1100);\n --spectrum-global-color-gray-50: var(--spectrum-gray-50);\n --spectrum-global-color-gray-75: var(--spectrum-gray-75);\n --spectrum-global-color-gray-100: var(--spectrum-gray-100);\n --spectrum-global-color-gray-200: var(--spectrum-gray-200);\n --spectrum-global-color-gray-300: var(--spectrum-gray-300);\n --spectrum-global-color-gray-400: var(--spectrum-gray-400);\n --spectrum-global-color-gray-500: var(--spectrum-gray-500);\n --spectrum-global-color-gray-600: var(--spectrum-gray-600);\n --spectrum-global-color-gray-700: var(--spectrum-gray-700);\n --spectrum-global-color-gray-800: var(--spectrum-gray-800);\n --spectrum-global-color-gray-900: var(--spectrum-gray-900);\n\n /* v6 aliases */\n --spectrum-accent-color-100: var(--spectrum-blue-100);\n --spectrum-accent-color-200: var(--spectrum-blue-200);\n --spectrum-accent-color-300: var(--spectrum-blue-300);\n --spectrum-accent-color-400: var(--spectrum-blue-400);\n --spectrum-accent-color-500: var(--spectrum-blue-500);\n --spectrum-accent-color-600: var(--spectrum-blue-600);\n --spectrum-accent-color-700: var(--spectrum-blue-700);\n --spectrum-accent-color-800: var(--spectrum-blue-800);\n --spectrum-accent-color-900: var(--spectrum-blue-900);\n --spectrum-accent-color-1000: var(--spectrum-blue-1000);\n --spectrum-accent-color-1100: var(--spectrum-blue-1100);\n --spectrum-accent-color-1200: var(--spectrum-blue-1200);\n --spectrum-accent-color-1300: var(--spectrum-blue-1300);\n --spectrum-accent-color-1400: var(--spectrum-blue-1400);\n\n /* spectrum-colorSemantics.css */\n --spectrum-semantic-negative-color-background: var(--spectrum-negative-background-color-default);\n --spectrum-semantic-negative-color-default: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-hover: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-dark: var(--spectrum-red-1000);\n --spectrum-semantic-negative-color-border: var(--spectrum-red-800);\n --spectrum-semantic-negative-color-icon: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-status: var(--spectrum-negative-visual-color);\n --spectrum-semantic-negative-color-text-large: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-text-small: var(--spectrum-red-900);\n --spectrum-semantic-negative-color-state-down: var(--spectrum-red-1100);\n --spectrum-semantic-negative-color-state-focus: var(--spectrum-red-1000);\n --spectrum-semantic-notice-color-background: var(--spectrum-global-color-static-orange-600);\n --spectrum-semantic-notice-color-default: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-dark: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-border: var(--spectrum-orange-600);\n --spectrum-semantic-notice-color-icon: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-status: var(--spectrum-notice-visual-color);\n --spectrum-semantic-notice-color-text-large: var(--spectrum-orange-700);\n --spectrum-semantic-notice-color-text-small: var(--spectrum-orange-800);\n --spectrum-semantic-notice-color-state-down: var(--spectrum-orange-900);\n --spectrum-semantic-notice-color-state-focus: var(--spectrum-orange-600);\n --spectrum-semantic-positive-color-background: var(--spectrum-positive-background-color-default);\n --spectrum-semantic-positive-color-default: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-dark: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-border: var(--spectrum-green-800);\n --spectrum-semantic-positive-color-icon: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-status: var(--spectrum-positive-visual-color);\n --spectrum-semantic-positive-color-text-large: var(--spectrum-green-900);\n --spectrum-semantic-positive-color-text-small: var(--spectrum-green-1000);\n --spectrum-semantic-positive-color-state-down: var(--spectrum-green-1100);\n --spectrum-semantic-positive-color-state-focus: var(--spectrum-green-800);\n --spectrum-semantic-informative-color-background: var(--spectrum-informative-background-color-default);\n --spectrum-semantic-informative-color-default: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-dark: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-border: var(--spectrum-blue-800);\n --spectrum-semantic-informative-color-icon: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-status: var(--spectrum-informative-visual-color);\n --spectrum-semantic-informative-color-text-large: var(--spectrum-blue-900);\n --spectrum-semantic-informative-color-text-small: var(--spectrum-blue-1000);\n --spectrum-semantic-informative-color-state-down: var(--spectrum-blue-1100);\n --spectrum-semantic-informative-color-state-focus: var(--spectrum-blue-800);\n --spectrum-semantic-cta-color-background-default: var(--spectrum-accent-background-color-default);\n --spectrum-semantic-cta-color-background-hover: var(--spectrum-accent-background-color-hover);\n --spectrum-semantic-cta-color-background-down: var(--spectrum-accent-background-color-down);\n --spectrum-semantic-cta-color-background-key-focus: var(--spectrum-accent-background-color-key-focus);\n --spectrum-semantic-background-color-key-focus: var(--spectrum-global-color-static-blue-600);\n --spectrum-semantic-neutral-color-background: var(--spectrum-neutral-subdued-background-color-default);\n --spectrum-semantic-presence-color-1: var(--spectrum-global-color-static-red-500);\n --spectrum-semantic-presence-color-2: var(--spectrum-global-color-static-orange-400);\n --spectrum-semantic-presence-color-3: var(--spectrum-global-color-static-yellow-400);\n --spectrum-semantic-presence-color-4: rgb(75, 204, 162);\n --spectrum-semantic-presence-color-5: rgb(0, 199, 255);\n --spectrum-semantic-presence-color-6: rgb(0, 140, 184);\n --spectrum-semantic-presence-color-7: rgb(126, 75, 243);\n --spectrum-semantic-presence-color-8: var(--spectrum-global-color-static-fuchsia-600);\n\n\n /* spectrum-dimensionGlobals.css */\n --spectrum-global-dimension-static-size-0: 0px;\n --spectrum-global-dimension-static-size-10: 1px;\n --spectrum-global-dimension-static-size-25: 2px;\n --spectrum-global-dimension-static-size-50: 4px;\n --spectrum-global-dimension-static-size-40: 3px;\n --spectrum-global-dimension-static-size-65: 5px;\n --spectrum-global-dimension-static-size-100: 8px;\n --spectrum-global-dimension-static-size-115: 9px;\n --spectrum-global-dimension-static-size-125: 10px;\n --spectrum-global-dimension-static-size-130: 11px;\n --spectrum-global-dimension-static-size-150: 12px;\n --spectrum-global-dimension-static-size-160: 13px;\n --spectrum-global-dimension-static-size-175: 14px;\n --spectrum-global-dimension-static-size-200: 16px;\n --spectrum-global-dimension-static-size-225: 18px;\n --spectrum-global-dimension-static-size-250: 20px;\n --spectrum-global-dimension-static-size-300: 24px;\n --spectrum-global-dimension-static-size-400: 32px;\n --spectrum-global-dimension-static-size-450: 36px;\n --spectrum-global-dimension-static-size-500: 40px;\n --spectrum-global-dimension-static-size-550: 44px;\n --spectrum-global-dimension-static-size-600: 48px;\n --spectrum-global-dimension-static-size-700: 56px;\n --spectrum-global-dimension-static-size-800: 64px;\n --spectrum-global-dimension-static-size-900: 72px;\n --spectrum-global-dimension-static-size-1000: 80px;\n --spectrum-global-dimension-static-size-1200: 96px;\n --spectrum-global-dimension-static-size-1700: 136px;\n --spectrum-global-dimension-static-size-2400: 192px;\n --spectrum-global-dimension-static-size-2600: 208px;\n --spectrum-global-dimension-static-size-3400: 272px;\n --spectrum-global-dimension-static-size-3600: 288px;\n --spectrum-global-dimension-static-size-4600: 368px;\n --spectrum-global-dimension-static-size-5000: 400px;\n --spectrum-global-dimension-static-size-6000: 480px;\n --spectrum-global-dimension-static-font-size-50: 11px;\n --spectrum-global-dimension-static-font-size-75: 12px;\n --spectrum-global-dimension-static-font-size-100: 14px;\n --spectrum-global-dimension-static-font-size-150: 15px;\n --spectrum-global-dimension-static-font-size-200: 16px;\n --spectrum-global-dimension-static-font-size-300: 18px;\n --spectrum-global-dimension-static-font-size-400: 20px;\n --spectrum-global-dimension-static-font-size-500: 22px;\n --spectrum-global-dimension-static-font-size-600: 25px;\n --spectrum-global-dimension-static-font-size-700: 28px;\n --spectrum-global-dimension-static-font-size-800: 32px;\n --spectrum-global-dimension-static-font-size-900: 36px;\n --spectrum-global-dimension-static-font-size-1000: 40px;\n --spectrum-global-dimension-static-percent-50: 50%;\n --spectrum-global-dimension-static-percent-100: 100%;\n --spectrum-global-dimension-static-breakpoint-xsmall: 304px;\n --spectrum-global-dimension-static-breakpoint-small: 768px;\n --spectrum-global-dimension-static-breakpoint-medium: 1280px;\n --spectrum-global-dimension-static-breakpoint-large: 1768px;\n --spectrum-global-dimension-static-breakpoint-xlarge: 2160px;\n --spectrum-global-dimension-static-grid-columns: 12;\n --spectrum-global-dimension-static-grid-fluid-width: 100%;\n --spectrum-global-dimension-static-grid-fixed-max-width: 1280px;\n\n\n /* spectrum-fontGlobals.css */\n --spectrum-global-font-family-base: adobe-clean, 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Trebuchet MS', 'Lucida Grande', sans-serif;\n --spectrum-global-font-family-serif: adobe-clean-serif, 'Source Serif Pro', Georgia, serif;\n --spectrum-global-font-family-code: 'Source Code Pro', Monaco, monospace;\n --spectrum-global-font-weight-thin: 100;\n --spectrum-global-font-weight-ultra-light: 200;\n --spectrum-global-font-weight-light: 300;\n --spectrum-global-font-weight-regular: 400;\n --spectrum-global-font-weight-medium: 500;\n --spectrum-global-font-weight-semi-bold: 600;\n --spectrum-global-font-weight-bold: 700;\n --spectrum-global-font-weight-extra-bold: 800;\n --spectrum-global-font-weight-black: 900;\n --spectrum-global-font-style-regular: normal;\n --spectrum-global-font-style-italic: italic;\n --spectrum-global-font-letter-spacing-none: 0;\n --spectrum-global-font-letter-spacing-small: 0.0125em;\n --spectrum-global-font-letter-spacing-han: 0.05em;\n --spectrum-global-font-letter-spacing-medium: 0.06em;\n --spectrum-global-font-line-height-large: 1.7;\n --spectrum-global-font-line-height-medium: 1.5;\n --spectrum-global-font-line-height-small: 1.3;\n --spectrum-global-font-multiplier-25: 0.25em;\n --spectrum-global-font-multiplier-75: 0.75em;\n\n\n /* spectrum-staticAliases.css */\n --spectrum-alias-border-size-thin: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-size-thick: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-size-thicker: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-size-thickest: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-input-border-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-border-offset-thin: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-border-offset-thick: var(--spectrum-global-dimension-static-size-50);\n --spectrum-alias-border-offset-thicker: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-border-offset-thickest: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-baseline: var(--spectrum-global-dimension-static-size-100);\n --spectrum-alias-grid-gutter-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-gutter-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-gutter-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-gutter-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-gutter-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-margin-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-margin-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-margin-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-margin-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-margin-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-grid-layout-region-margin-bottom-xsmall: var(--spectrum-global-dimension-static-size-200);\n --spectrum-alias-grid-layout-region-margin-bottom-small: var(--spectrum-global-dimension-static-size-300);\n --spectrum-alias-grid-layout-region-margin-bottom-medium: var(--spectrum-global-dimension-static-size-400);\n --spectrum-alias-grid-layout-region-margin-bottom-large: var(--spectrum-global-dimension-static-size-500);\n --spectrum-alias-grid-layout-region-margin-bottom-xlarge: var(--spectrum-global-dimension-static-size-600);\n --spectrum-alias-radial-reaction-size-default: var(--spectrum-global-dimension-static-size-550);\n --spectrum-alias-font-family-ar: var(--spectrum-global-font-font-family-ar);\n --spectrum-alias-font-family-he: var(--spectrum-global-font-font-family-he);\n --spectrum-alias-font-family-zh: var(--spectrum-global-font-font-family-zh);\n --spectrum-alias-font-family-zhhans: var(--spectrum-global-font-font-family-zhhans);\n --spectrum-alias-font-family-ko: var(--spectrum-global-font-font-family-ko);\n --spectrum-alias-font-family-ja: var(--spectrum-global-font-font-family-ja);\n --spectrum-alias-font-family-condensed: var(--spectrum-global-font-font-family-condensed);\n --spectrum-alias-line-height-body: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-line-height-title: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-body-han-text-line-height: var(--spectrum-global-font-line-height-large);\n --spectrum-alias-body-text-font-family: var(--spectrum-global-font-family-base);\n --spectrum-alias-body-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-body-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-button-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-han-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-text-line-height: var(--spectrum-global-font-line-height-small);\n --spectrum-alias-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-detail-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-detail-text-font-weight-light: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-serif-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-text-font-family: var(--spectrum-global-font-family-serif);\n --spectrum-alias-article-body-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-article-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-article-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-article-detail-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-font-family: var(--spectrum-global-font-family-code);\n --spectrum-alias-han-heading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-heading-text-font-weight-regular-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-quiet: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-quiet-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-quiet-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-light: var(--spectrum-global-font-weight-light);\n --spectrum-alias-han-heading-text-font-weight-light-emphasis: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-heading-text-font-weight-light-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-heading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-strong-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-emphasis: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-heading-text-font-weight-heavy-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-body-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-body-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-body-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-subheading-text-font-weight-regular: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-subheading-text-font-weight-emphasis: var(--spectrum-global-font-weight-extra-bold);\n --spectrum-alias-han-subheading-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-han-detail-text-font-weight: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-han-detail-text-font-weight-emphasis: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-han-detail-text-font-weight-strong: var(--spectrum-global-font-weight-black);\n --spectrum-alias-code-text-font-weight-regular: var(--spectrum-global-font-weight-regular);\n --spectrum-alias-code-text-font-weight-strong: var(--spectrum-global-font-weight-bold);\n --spectrum-alias-code-text-line-height: var(--spectrum-global-font-line-height-medium);\n --spectrum-alias-heading-margin-bottom: var(--spectrum-global-font-multiplier-25);\n --spectrum-alias-body-margin-bottom: var(--spectrum-global-font-multiplier-75);\n --spectrum-alias-focus-ring-gap: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-gap: var(--spectrum-global-dimension-static-size-0);\n --spectrum-alias-focus-ring-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-alias-input-focusring-size: var(--spectrum-global-dimension-static-size-10);\n --spectrum-alias-loupe-entry-animation-duration: var(--spectrum-global-animation-duration-300);\n --spectrum-alias-loupe-exit-animation-duration: var(--spectrum-global-animation-duration-300);\n}\n\n.spectrum--medium,\n.spectrum--large {\n /* spectrum-dimensionAliases.css */\n --spectrum-alias-dropshadow-blur: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-dropshadow-offset-y: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-font-size-default: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-line-height-small: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-line-height-medium: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-line-height-large: var(--spectrum-global-dimension-size-300);\n --spectrum-alias-line-height-xlarge: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-line-height-xxlarge: var(--spectrum-global-dimension-size-600);\n --spectrum-alias-layout-label-gap-size: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-pill-button-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-pill-button-text-baseline: var(--spectrum-global-dimension-static-size-150);\n --spectrum-alias-border-radius-xsmall: var(--spectrum-global-dimension-size-10);\n --spectrum-alias-border-radius-small: var(--spectrum-global-dimension-size-25);\n --spectrum-alias-border-radius-regular: var(--spectrum-global-dimension-size-50);\n --spectrum-alias-border-radius-medium: var(--spectrum-global-dimension-size-100);\n --spectrum-alias-border-radius-large: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-single-line-height: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-single-line-width: var(--spectrum-global-dimension-size-2400);\n --spectrum-alias-workflow-icon-size: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-heading-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-xxxl-text-size: var(--spectrum-global-dimension-font-size-1300);\n --spectrum-alias-heading-han-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-han-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display1-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-xxxl-margin-top: var(--spectrum-global-dimension-font-size-1200);\n --spectrum-alias-heading-display2-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-xxl-text-size: var(--spectrum-global-dimension-font-size-1100);\n --spectrum-alias-heading-display2-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xxl-margin-top: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-xxl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-han-display2-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xxl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading-xl-text-size: var(--spectrum-global-dimension-font-size-900);\n --spectrum-alias-heading1-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-xl-margin-top: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading-han-xl-text-size: var(--spectrum-global-dimension-font-size-800);\n --spectrum-alias-heading1-han-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-han-xl-margin-top: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading-l-text-size: var(--spectrum-global-dimension-font-size-700);\n --spectrum-alias-heading2-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-l-margin-top: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading-han-l-text-size: var(--spectrum-global-dimension-font-size-600);\n --spectrum-alias-heading2-han-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-han-l-margin-top: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading-m-text-size: var(--spectrum-global-dimension-font-size-500);\n --spectrum-alias-heading3-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-m-margin-top: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading-han-m-text-size: var(--spectrum-global-dimension-font-size-400);\n --spectrum-alias-heading3-han-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-han-m-margin-top: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading-s-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-alias-heading4-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-s-margin-top: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading-xs-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-alias-heading5-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xs-margin-top: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading-xxs-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-alias-heading6-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-heading-xxs-margin-top: var(--spectrum-global-dimension-font-size-75);\n --spectrum-alias-avatar-size-50: var(--spectrum-global-dimension-size-200);\n --spectrum-alias-avatar-size-75: var(--spectrum-global-dimension-size-225);\n --spectrum-alias-avatar-size-200: var(--spectrum-global-dimension-size-275);\n --spectrum-alias-avatar-size-300: var(--spectrum-global-dimension-size-325);\n --spectrum-alias-avatar-size-500: var(--spectrum-global-dimension-size-400);\n --spectrum-alias-avatar-size-700: var(--spectrum-global-dimension-size-500);\n}\n\n.spectrum--darkest,\n.spectrum--dark,\n.spectrum--light,\n.spectrum--lightest {\n /* spectrum-colorAliases.css */\n --spectrum-alias-background-color-default: var(--spectrum-gray-100);\n --spectrum-alias-background-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-background-color-transparent: transparent;\n --spectrum-alias-background-color-label-gray: rgb(112, 112, 112);\n --spectrum-alias-background-color-quickactions-overlay: rgba(0,0,0,0.2);\n --spectrum-alias-placeholder-text-color: var(--spectrum-gray-800);\n --spectrum-alias-placeholder-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-placeholder-text-color-selected: var(--spectrum-gray-800);\n --spectrum-alias-label-text-color: var(--spectrum-gray-700);\n --spectrum-alias-text-color: var(--spectrum-gray-800);\n --spectrum-alias-text-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-text-color-down: var(--spectrum-gray-900);\n --spectrum-alias-text-color-key-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-mouse-focus: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-text-color-invalid: var(--spectrum-red-900);\n --spectrum-alias-text-color-selected: var(--spectrum-blue-1000);\n --spectrum-alias-text-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-title-text-color: var(--spectrum-gray-900);\n --spectrum-alias-heading-text-color: var(--spectrum-gray-900);\n --spectrum-alias-border-color: var(--spectrum-gray-500);\n --spectrum-alias-border-color-hover: var(--spectrum-gray-600);\n --spectrum-alias-border-color-down: var(--spectrum-gray-600);\n --spectrum-alias-border-color-focus: var(--spectrum-blue-800);\n --spectrum-alias-input-border-color-key-focus: var(--spectrum-alias-border-color-focus);\n --spectrum-alias-border-color-mouse-focus: var(--spectrum-blue-900);\n --spectrum-alias-border-color-disabled: var(--spectrum-gray-200);\n --spectrum-alias-border-color-extralight: var(--spectrum-gray-100);\n --spectrum-alias-border-color-light: var(--spectrum-gray-200);\n --spectrum-alias-border-color-mid: var(--spectrum-gray-300);\n --spectrum-alias-border-color-dark: var(--spectrum-gray-400);\n --spectrum-alias-border-color-transparent: transparent;\n --spectrum-alias-border-color-translucent-dark: rgba(0,0,0,0.05);\n --spectrum-alias-border-color-translucent-darker: rgba(0,0,0,0.1);\n --spectrum-alias-focus-color: var(--spectrum-blue-800);\n --spectrum-alias-focus-ring-color: var(--spectrum-alias-focus-color);\n --spectrum-alias-track-color-default: var(--spectrum-gray-300);\n --spectrum-alias-track-color-disabled: var(--spectrum-gray-300);\n --spectrum-alias-track-color-over-background: rgba(255,255,255,0.2);\n --spectrum-alias-icon-color: var(--spectrum-gray-700);\n --spectrum-alias-icon-color-over-background: var(--spectrum-global-color-static-white);\n --spectrum-alias-icon-color-hover: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-down: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-focus: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-disabled: var(--spectrum-gray-400);\n --spectrum-alias-icon-color-selected-neutral: var(--spectrum-gray-900);\n --spectrum-alias-icon-color-selected: var(--spectrum-blue-900);\n --spectrum-alias-icon-color-selected-hover: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-selected-down: var(--spectrum-blue-1100);\n --spectrum-alias-icon-color-selected-focus: var(--spectrum-blue-1000);\n --spectrum-alias-icon-color-error: var(--spectrum-red-800);\n --spectrum-alias-toolbar-background-color: var(--spectrum-gray-100);\n --spectrum-alias-colorhandle-outer-border-color: rgba(0,0,0,0.42);\n --spectrum-alias-categorical-color-1: var(--spectrum-global-color-static-seafoam-200);\n --spectrum-alias-categorical-color-2: var(--spectrum-global-color-static-indigo-700);\n --spectrum-alias-categorical-color-3: var(--spectrum-global-color-static-orange-500);\n --spectrum-alias-categorical-color-4: var(--spectrum-global-color-static-magenta-500);\n --spectrum-alias-categorical-color-5: var(--spectrum-global-color-static-indigo-200);\n --spectrum-alias-categorical-color-6: var(--spectrum-global-color-static-celery-200);\n --spectrum-alias-categorical-color-7: var(--spectrum-global-color-static-blue-500);\n --spectrum-alias-categorical-color-8: var(--spectrum-global-color-static-purple-800);\n --spectrum-alias-categorical-color-9: var(--spectrum-global-color-static-yellow-500);\n --spectrum-alias-categorical-color-10: var(--spectrum-global-color-static-orange-700);\n --spectrum-alias-categorical-color-11: var(--spectrum-global-color-static-green-600);\n --spectrum-alias-categorical-color-12: var(--spectrum-global-color-static-chartreuse-300);\n --spectrum-alias-categorical-color-13: var(--spectrum-global-color-static-blue-200);\n --spectrum-alias-categorical-color-14: var(--spectrum-global-color-static-fuchsia-500);\n --spectrum-alias-categorical-color-15: var(--spectrum-global-color-static-magenta-200);\n --spectrum-alias-categorical-color-16: var(--spectrum-global-color-static-yellow-200);\n\n --spectrum-alias-toggle-color-default: var(--spectrum-gray-600);\n --spectrum-alias-toggle-color-hover: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-key-focus: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected: var(--spectrum-gray-700);\n --spectrum-alias-toggle-color-selected-hover: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-key-focus: var(--spectrum-gray-800);\n --spectrum-alias-toggle-color-selected-down: var(--spectrum-gray-900);\n\n --spectrum-actionbutton-background-color-disabled: transparent;\n --spectrum-actionbutton-border-color-disabled: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-quiet-background-color-hover: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-key-focus: var(--spectrum-gray-200);\n --spectrum-actionbutton-quiet-background-color-down: var(--spectrum-gray-300);\n\n --spectrum-actionbutton-static-black-border-color: rgba(0, 0, 0, 0.4);\n --spectrum-actionbutton-static-black-border-color-hover: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-key-focus: rgba(0, 0, 0, 0.55);\n --spectrum-actionbutton-static-black-border-color-down: rgba(0, 0, 0, 0.7);\n --spectrum-actionbutton-static-black-border-color-disabled: rgba(0, 0, 0, 0.25);\n --spectrum-actionbutton-static-black-border-color-selected-disabled: rgba(0, 0, 0, 0.1);\n --spectrum-actionbutton-static-black-background-color: transparent;\n --spectrum-actionbutton-static-black-background-color-disabled: transparent;\n\n --spectrum-actionbutton-static-white-border-color: rgba(255, 255, 255, 0.4);\n --spectrum-actionbutton-static-white-border-color-hover: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-key-focus: rgba(255, 255, 255, 0.55);\n --spectrum-actionbutton-static-white-border-color-down: rgba(255, 255, 255, 0.7);\n --spectrum-actionbutton-static-white-border-color-disabled: rgba(255, 255, 255, 0.25);\n --spectrum-actionbutton-static-white-border-color-selected-disabled: rgba(255, 255, 255, 0.1);\n --spectrum-actionbutton-static-white-background-color: transparent;\n --spectrum-actionbutton-static-white-background-color-disabled: transparent;\n\n --spectrum-combobox-fieldbutton-inset: 0;\n --spectrum-combobox-fieldbutton-border-left-width: var(--spectrum-alias-input-border-size);\n --spectrum-combobox-fieldbutton-focus-ring-border-radius: var(--spectrum-combobox-fieldbutton-border-top-left-radius);\n --spectrum-combobox-fieldbutton-start-border-radius: 0;\n --spectrum-combobox-fieldbutton-end-border-radius: var(--spectrum-alias-border-radius-regular);\n\n --spectrum-actiongroup-compact-button-gap: calc(-1 * var(--spectrum-actionbutton-border-size));\n\n --spectrum-tooltip-background-color: var(--spectrum-neutral-subdued-background-color-default);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--large {\n --spectrum-global-dimension-scale-factor: 1.25;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 4px;\n --spectrum-global-dimension-size-50: 5px;\n --spectrum-global-dimension-size-65: 6px;\n --spectrum-global-dimension-size-75: 8px;\n --spectrum-global-dimension-size-85: 9px;\n --spectrum-global-dimension-size-100: 10px;\n --spectrum-global-dimension-size-115: 11px;\n --spectrum-global-dimension-size-125: 13px;\n --spectrum-global-dimension-size-130: 14px;\n --spectrum-global-dimension-size-150: 15px;\n --spectrum-global-dimension-size-160: 16px;\n --spectrum-global-dimension-size-175: 18px;\n --spectrum-global-dimension-size-200: 20px;\n --spectrum-global-dimension-size-225: 22px;\n --spectrum-global-dimension-size-250: 25px;\n --spectrum-global-dimension-size-275: 28px;\n --spectrum-global-dimension-size-300: 30px;\n --spectrum-global-dimension-size-325: 32px;\n --spectrum-global-dimension-size-350: 35px;\n --spectrum-global-dimension-size-400: 40px;\n --spectrum-global-dimension-size-450: 45px;\n --spectrum-global-dimension-size-500: 50px;\n --spectrum-global-dimension-size-550: 56px;\n --spectrum-global-dimension-size-600: 60px;\n --spectrum-global-dimension-size-675: 68px;\n --spectrum-global-dimension-size-700: 70px;\n --spectrum-global-dimension-size-800: 80px;\n --spectrum-global-dimension-size-900: 90px;\n --spectrum-global-dimension-size-1000: 100px;\n --spectrum-global-dimension-size-1200: 120px;\n --spectrum-global-dimension-size-1250: 125px;\n --spectrum-global-dimension-size-1600: 160px;\n --spectrum-global-dimension-size-1700: 170px;\n --spectrum-global-dimension-size-2000: 200px;\n --spectrum-global-dimension-size-2400: 240px;\n --spectrum-global-dimension-size-3000: 300px;\n --spectrum-global-dimension-size-3400: 340px;\n --spectrum-global-dimension-size-3600: 360px;\n --spectrum-global-dimension-size-4600: 460px;\n --spectrum-global-dimension-size-5000: 500px;\n --spectrum-global-dimension-size-6000: 600px;\n --spectrum-global-dimension-font-size-25: 12px;\n --spectrum-global-dimension-font-size-50: 13px;\n --spectrum-global-dimension-font-size-75: 15px;\n --spectrum-global-dimension-font-size-100: 17px;\n --spectrum-global-dimension-font-size-150: 18px;\n --spectrum-global-dimension-font-size-200: 19px;\n --spectrum-global-dimension-font-size-300: 22px;\n --spectrum-global-dimension-font-size-400: 24px;\n --spectrum-global-dimension-font-size-500: 27px;\n --spectrum-global-dimension-font-size-600: 31px;\n --spectrum-global-dimension-font-size-700: 34px;\n --spectrum-global-dimension-font-size-800: 39px;\n --spectrum-global-dimension-font-size-900: 44px;\n --spectrum-global-dimension-font-size-1000: 49px;\n --spectrum-global-dimension-font-size-1100: 55px;\n --spectrum-global-dimension-font-size-1200: 62px;\n --spectrum-global-dimension-font-size-1300: 70px;\n --spectrum-alias-avatar-size-100: 26px;\n --spectrum-alias-avatar-size-400: 36px;\n --spectrum-alias-avatar-size-600: 46px;\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-barloader-large-border-radius: 4px;\n --spectrum-barloader-large-indeterminate-border-radius: 4px;\n --spectrum-barloader-large-over-background-border-radius: 4px;\n --spectrum-barloader-small-border-radius: 3px;\n --spectrum-barloader-small-indeterminate-border-radius: 3px;\n --spectrum-barloader-small-over-background-border-radius: 3px;\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-cta-min-width: 90px;\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-over-background-min-width: 90px;\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-primary-min-width: 90px;\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-over-background-min-width: 90px;\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-primary-min-width: 90px;\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-secondary-min-width: 90px;\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-quiet-warning-min-width: 90px;\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-250);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-secondary-min-width: 90px;\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-100);\n --spectrum-button-warning-min-width: 90px;\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-circleloader-small-border-size: 3px;\n --spectrum-circleloader-small-over-background-border-size: 3px;\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-100);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-85);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-static-size-2600);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-85);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-85);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-5000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-200);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-75);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-300);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-icon-arrow-down-small-height: 12px;\n --spectrum-icon-arrow-left-medium-height: 12px;\n --spectrum-icon-checkmark-medium-width: 16px;\n --spectrum-icon-checkmark-medium-height: 16px;\n --spectrum-icon-checkmark-small-width: 12px;\n --spectrum-icon-checkmark-small-height: 12px;\n --spectrum-icon-chevron-down-medium-width: 12px;\n --spectrum-icon-chevron-left-large-width: 16px;\n --spectrum-icon-chevron-left-medium-height: 12px;\n --spectrum-icon-chevron-right-large-width: 16px;\n --spectrum-icon-chevron-right-medium-height: 12px;\n --spectrum-icon-cross-large-width: 16px;\n --spectrum-icon-cross-large-height: 16px;\n --spectrum-icon-dash-small-width: 12px;\n --spectrum-icon-dash-small-height: 12px;\n --spectrum-icon-skip-left-width: 10px;\n --spectrum-icon-skip-left-height: 12px;\n --spectrum-icon-skip-right-width: 10px;\n --spectrum-icon-skip-right-height: 12px;\n --spectrum-icon-triplegripper-width: 12px;\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-600);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-50);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-600);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin).\n */\n --spectrum-selectlist-option-padding-height: var(--spectrum-global-dimension-static-size-160);\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-loader-bar-large-border-radius: 4px;\n --spectrum-loader-bar-large-over-background-border-radius: 4px;\n --spectrum-loader-bar-small-border-radius: 3px;\n --spectrum-loader-bar-small-over-background-border-radius: 3px;\n --spectrum-loader-circle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-loader-circle-small-border-size: 3px;\n --spectrum-loader-circle-small-over-background-border-size: 3px;\n --spectrum-meter-large-border-radius: 4px;\n --spectrum-meter-small-border-radius: 3px;\n --spectrum-pagination-page-button-line-height: 32px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 8px;\n --spectrum-overlay-negative-transform-distance: -8px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-200);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progressbar-large-border-radius: 4px;\n --spectrum-progressbar-large-indeterminate-border-radius: 4px;\n --spectrum-progressbar-large-over-background-border-radius: 4px;\n --spectrum-progressbar-small-border-radius: 3px;\n --spectrum-progressbar-small-indeterminate-border-radius: 3px;\n --spectrum-progressbar-small-over-background-border-radius: 3px;\n --spectrum-progresscircle-medium-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-medium-over-background-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-progresscircle-small-border-size: 3px;\n --spectrum-progresscircle-small-indeterminate-border-size: 3px;\n --spectrum-progresscircle-small-over-background-border-size: 3px;\n --spectrum-progresscircle-medium-indeterminate-border-size: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-emphasized-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-radio-quiet-margin-bottom: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-icon-width: 30px;\n --spectrum-rating-indicator-width: 20px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-emphasized-icon-width: 30px;\n --spectrum-rating-emphasized-indicator-width: 20px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-rating-quiet-icon-width: 30px;\n --spectrum-rating-quiet-indicator-width: 20px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-sidenav-item-touch-hit-bottom: 3px;\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: 3px;\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-175);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-175);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-handle-border-radius: 9px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 18px;\n --spectrum-switch-handle-transform-x-rtl: -18px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-emphasized-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-emphasized-handle-border-radius: 9px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-160);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-150);\n --spectrum-switch-quiet-track-width: var(--spectrum-global-dimension-static-size-450);\n --spectrum-switch-quiet-handle-border-radius: 9px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tabs-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-margin-left: -11px;\n --spectrum-tabs-compact-margin-right: -11px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-focus-ring-border-radius: 6px;\n --spectrum-tabs-margin-left: -11px;\n --spectrum-tabs-margin-right: -11px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-emphasized-margin-left: -11px;\n --spectrum-tabs-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-margin-left: -11px;\n --spectrum-tabs-quiet-margin-right: -11px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-margin-left: -11px;\n --spectrum-tabs-quiet-compact-margin-right: -11px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-emphasized-margin-left: -11px;\n --spectrum-tabs-quiet-emphasized-margin-right: -11px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 6px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 6px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-250);\n --spectrum-tabs-vertical-focus-ring-border-radius: 6px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-500);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-50);\n --spectrum-tooltip-padding-bottom: 6px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 6px;\n --spectrum-tooltip-info-content-max-width: 126px;\n --spectrum-tooltip-negative-padding-bottom: 6px;\n --spectrum-tooltip-negative-content-max-width: 126px;\n --spectrum-tooltip-positive-padding-bottom: 6px;\n --spectrum-tooltip-positive-content-max-width: 126px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--light {\n --spectrum-global-color-status: Verified;\n --spectrum-global-color-version: 5.1.0;\n --spectrum-gray-50: rgb(255, 255, 255);\n --spectrum-gray-75: rgb(253, 253, 253);\n --spectrum-gray-100: rgb(248, 248, 248);\n --spectrum-gray-200: rgb(230, 230, 230);\n --spectrum-gray-300: rgb(213, 213, 213);\n --spectrum-gray-400: rgb(177, 177, 177);\n --spectrum-gray-500: rgb(144, 144, 144);\n --spectrum-gray-600: rgb(109, 109, 109);\n --spectrum-gray-700: rgb(70, 70, 70);\n --spectrum-gray-800: rgb(34, 34, 34);\n --spectrum-gray-900: rgb(0, 0, 0);\n --spectrum-red-100: rgb(255, 235, 231);\n --spectrum-red-200: rgb(255, 221, 214);\n --spectrum-red-300: rgb(255, 205, 195);\n --spectrum-red-400: rgb(255, 183, 169);\n --spectrum-red-500: rgb(255, 155, 136);\n --spectrum-red-600: rgb(255, 124, 101);\n --spectrum-red-700: rgb(247, 92, 70);\n --spectrum-red-800: rgb(234, 56, 41);\n --spectrum-red-900: rgb(211, 21, 16);\n --spectrum-red-1000: rgb(180, 0, 0);\n --spectrum-red-1100: rgb(147, 0, 0);\n --spectrum-red-1200: rgb(116, 0, 0);\n --spectrum-red-1300: rgb(89, 0, 0);\n --spectrum-red-1400: rgb(67, 0, 0);\n --spectrum-orange-100: rgb(255, 236, 204);\n --spectrum-orange-200: rgb(255, 223, 173);\n --spectrum-orange-300: rgb(253, 210, 145);\n --spectrum-orange-400: rgb(255, 187, 99);\n --spectrum-orange-500: rgb(255, 160, 55);\n --spectrum-orange-600: rgb(246, 133, 17);\n --spectrum-orange-700: rgb(228, 111, 0);\n --spectrum-orange-800: rgb(203, 93, 0);\n --spectrum-orange-900: rgb(177, 76, 0);\n --spectrum-orange-1000: rgb(149, 61, 0);\n --spectrum-orange-1100: rgb(122, 47, 0);\n --spectrum-orange-1200: rgb(97, 35, 0);\n --spectrum-orange-1300: rgb(73, 25, 1);\n --spectrum-orange-1400: rgb(53, 18, 1);\n --spectrum-yellow-100: rgb(251, 241, 152);\n --spectrum-yellow-200: rgb(248, 231, 80);\n --spectrum-yellow-300: rgb(248, 217, 4);\n --spectrum-yellow-400: rgb(232, 198, 0);\n --spectrum-yellow-500: rgb(215, 179, 0);\n --spectrum-yellow-600: rgb(196, 159, 0);\n --spectrum-yellow-700: rgb(176, 140, 0);\n --spectrum-yellow-800: rgb(155, 120, 0);\n --spectrum-yellow-900: rgb(133, 102, 0);\n --spectrum-yellow-1000: rgb(112, 83, 0);\n --spectrum-yellow-1100: rgb(91, 67, 0);\n --spectrum-yellow-1200: rgb(72, 51, 0);\n --spectrum-yellow-1300: rgb(54, 37, 0);\n --spectrum-yellow-1400: rgb(40, 26, 0);\n --spectrum-chartreuse-100: rgb(219, 252, 110);\n --spectrum-chartreuse-200: rgb(203, 244, 67);\n --spectrum-chartreuse-300: rgb(188, 233, 42);\n --spectrum-chartreuse-400: rgb(170, 216, 22);\n --spectrum-chartreuse-500: rgb(152, 197, 10);\n --spectrum-chartreuse-600: rgb(135, 177, 3);\n --spectrum-chartreuse-700: rgb(118, 156, 0);\n --spectrum-chartreuse-800: rgb(103, 136, 0);\n --spectrum-chartreuse-900: rgb(87, 116, 0);\n --spectrum-chartreuse-1000: rgb(72, 96, 0);\n --spectrum-chartreuse-1100: rgb(58, 77, 0);\n --spectrum-chartreuse-1200: rgb(44, 59, 0);\n --spectrum-chartreuse-1300: rgb(33, 44, 0);\n --spectrum-chartreuse-1400: rgb(24, 31, 0);\n --spectrum-celery-100: rgb(205, 252, 191);\n --spectrum-celery-200: rgb(174, 246, 157);\n --spectrum-celery-300: rgb(150, 238, 133);\n --spectrum-celery-400: rgb(114, 224, 106);\n --spectrum-celery-500: rgb(78, 207, 80);\n --spectrum-celery-600: rgb(39, 187, 54);\n --spectrum-celery-700: rgb(7, 167, 33);\n --spectrum-celery-800: rgb(0, 145, 18);\n --spectrum-celery-900: rgb(0, 124, 15);\n --spectrum-celery-1000: rgb(0, 103, 15);\n --spectrum-celery-1100: rgb(0, 83, 13);\n --spectrum-celery-1200: rgb(0, 64, 10);\n --spectrum-celery-1300: rgb(0, 48, 7);\n --spectrum-celery-1400: rgb(0, 34, 5);\n --spectrum-green-100: rgb(206, 248, 224);\n --spectrum-green-200: rgb(173, 244, 206);\n --spectrum-green-300: rgb(137, 236, 188);\n --spectrum-green-400: rgb(103, 222, 168);\n --spectrum-green-500: rgb(73, 204, 147);\n --spectrum-green-600: rgb(47, 184, 128);\n --spectrum-green-700: rgb(21, 164, 110);\n --spectrum-green-800: rgb(0, 143, 93);\n --spectrum-green-900: rgb(0, 122, 77);\n --spectrum-green-1000: rgb(0, 101, 62);\n --spectrum-green-1100: rgb(0, 81, 50);\n --spectrum-green-1200: rgb(5, 63, 39);\n --spectrum-green-1300: rgb(10, 46, 29);\n --spectrum-green-1400: rgb(10, 32, 21);\n --spectrum-seafoam-100: rgb(206, 247, 243);\n --spectrum-seafoam-200: rgb(170, 241, 234);\n --spectrum-seafoam-300: rgb(140, 233, 226);\n --spectrum-seafoam-400: rgb(101, 218, 210);\n --spectrum-seafoam-500: rgb(63, 201, 193);\n --spectrum-seafoam-600: rgb(15, 181, 174);\n --spectrum-seafoam-700: rgb(0, 161, 154);\n --spectrum-seafoam-800: rgb(0, 140, 135);\n --spectrum-seafoam-900: rgb(0, 119, 114);\n --spectrum-seafoam-1000: rgb(0, 99, 95);\n --spectrum-seafoam-1100: rgb(12, 79, 76);\n --spectrum-seafoam-1200: rgb(18, 60, 58);\n --spectrum-seafoam-1300: rgb(18, 44, 43);\n --spectrum-seafoam-1400: rgb(15, 31, 30);\n --spectrum-cyan-100: rgb(197, 248, 255);\n --spectrum-cyan-200: rgb(164, 240, 255);\n --spectrum-cyan-300: rgb(136, 231, 250);\n --spectrum-cyan-400: rgb(96, 216, 243);\n --spectrum-cyan-500: rgb(51, 197, 232);\n --spectrum-cyan-600: rgb(18, 176, 218);\n --spectrum-cyan-700: rgb(1, 156, 200);\n --spectrum-cyan-800: rgb(0, 134, 180);\n --spectrum-cyan-900: rgb(0, 113, 159);\n --spectrum-cyan-1000: rgb(0, 93, 137);\n --spectrum-cyan-1100: rgb(0, 74, 115);\n --spectrum-cyan-1200: rgb(0, 57, 93);\n --spectrum-cyan-1300: rgb(0, 42, 70);\n --spectrum-cyan-1400: rgb(0, 30, 51);\n --spectrum-blue-100: rgb(224, 242, 255);\n --spectrum-blue-200: rgb(202, 232, 255);\n --spectrum-blue-300: rgb(181, 222, 255);\n --spectrum-blue-400: rgb(150, 206, 253);\n --spectrum-blue-500: rgb(120, 187, 250);\n --spectrum-blue-600: rgb(89, 167, 246);\n --spectrum-blue-700: rgb(56, 146, 243);\n --spectrum-blue-800: rgb(20, 122, 243);\n --spectrum-blue-900: rgb(2, 101, 220);\n --spectrum-blue-1000: rgb(0, 84, 182);\n --spectrum-blue-1100: rgb(0, 68, 145);\n --spectrum-blue-1200: rgb(0, 53, 113);\n --spectrum-blue-1300: rgb(0, 39, 84);\n --spectrum-blue-1400: rgb(0, 28, 60);\n --spectrum-indigo-100: rgb(237, 238, 255);\n --spectrum-indigo-200: rgb(224, 226, 255);\n --spectrum-indigo-300: rgb(211, 213, 255);\n --spectrum-indigo-400: rgb(193, 196, 255);\n --spectrum-indigo-500: rgb(172, 175, 255);\n --spectrum-indigo-600: rgb(149, 153, 255);\n --spectrum-indigo-700: rgb(126, 132, 252);\n --spectrum-indigo-800: rgb(104, 109, 244);\n --spectrum-indigo-900: rgb(82, 88, 228);\n --spectrum-indigo-1000: rgb(64, 70, 202);\n --spectrum-indigo-1100: rgb(50, 54, 168);\n --spectrum-indigo-1200: rgb(38, 41, 134);\n --spectrum-indigo-1300: rgb(27, 30, 100);\n --spectrum-indigo-1400: rgb(20, 22, 72);\n --spectrum-purple-100: rgb(246, 235, 255);\n --spectrum-purple-200: rgb(238, 221, 255);\n --spectrum-purple-300: rgb(230, 208, 255);\n --spectrum-purple-400: rgb(219, 187, 254);\n --spectrum-purple-500: rgb(204, 164, 253);\n --spectrum-purple-600: rgb(189, 139, 252);\n --spectrum-purple-700: rgb(174, 114, 249);\n --spectrum-purple-800: rgb(157, 87, 244);\n --spectrum-purple-900: rgb(137, 61, 231);\n --spectrum-purple-1000: rgb(115, 38, 211);\n --spectrum-purple-1100: rgb(93, 19, 183);\n --spectrum-purple-1200: rgb(71, 12, 148);\n --spectrum-purple-1300: rgb(51, 16, 106);\n --spectrum-purple-1400: rgb(35, 15, 73);\n --spectrum-fuchsia-100: rgb(255, 233, 252);\n --spectrum-fuchsia-200: rgb(255, 218, 250);\n --spectrum-fuchsia-300: rgb(254, 199, 248);\n --spectrum-fuchsia-400: rgb(251, 174, 246);\n --spectrum-fuchsia-500: rgb(245, 146, 243);\n --spectrum-fuchsia-600: rgb(237, 116, 237);\n --spectrum-fuchsia-700: rgb(224, 85, 226);\n --spectrum-fuchsia-800: rgb(205, 58, 206);\n --spectrum-fuchsia-900: rgb(182, 34, 183);\n --spectrum-fuchsia-1000: rgb(157, 3, 158);\n --spectrum-fuchsia-1100: rgb(128, 0, 129);\n --spectrum-fuchsia-1200: rgb(100, 6, 100);\n --spectrum-fuchsia-1300: rgb(71, 14, 70);\n --spectrum-fuchsia-1400: rgb(50, 13, 49);\n --spectrum-magenta-100: rgb(255, 234, 241);\n --spectrum-magenta-200: rgb(255, 220, 232);\n --spectrum-magenta-300: rgb(255, 202, 221);\n --spectrum-magenta-400: rgb(255, 178, 206);\n --spectrum-magenta-500: rgb(255, 149, 189);\n --spectrum-magenta-600: rgb(250, 119, 170);\n --spectrum-magenta-700: rgb(239, 90, 152);\n --spectrum-magenta-800: rgb(222, 61, 130);\n --spectrum-magenta-900: rgb(200, 34, 105);\n --spectrum-magenta-1000: rgb(173, 9, 85);\n --spectrum-magenta-1100: rgb(142, 0, 69);\n --spectrum-magenta-1200: rgb(112, 0, 55);\n --spectrum-magenta-1300: rgb(84, 3, 42);\n --spectrum-magenta-1400: rgb(60, 6, 29);\n --spectrum-alias-background-color-modal-overlay: rgba(0,0,0,0.4);\n --spectrum-alias-dropshadow-color: rgba(0,0,0,0.15);\n --spectrum-alias-background-color-hover-overlay: rgba(0,0,0,0.04);\n --spectrum-alias-highlight-hover: rgba(0,0,0,0.06);\n --spectrum-alias-highlight-active: rgba(44,44,44,0.1);\n --spectrum-alias-highlight-selected: rgba(2,101,220,0.1);\n --spectrum-alias-highlight-selected-hover: rgba(2,101,220,0.2);\n --spectrum-alias-highlight-invalid: rgba(211, 21, 16, 0.15); /* matches red-900 */\n --spectrum-alias-text-highlight-color: rgba(2,101,220,0.2);\n --spectrum-alias-background-color-quickactions: rgba(248,248,248,0.9);\n --spectrum-alias-radial-reaction-color-default: rgba(34,34,34,0.6);\n --spectrum-alias-pasteboard-background-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-border-color: var(--spectrum-global-color-gray-300);\n --spectrum-alias-appframe-separator-color: var(--spectrum-global-color-gray-300);\n --spectrum-colorarea-border-color: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorarea-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorslider-vertical-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-hover: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-down: rgba(44,44,44,0.1);\n --spectrum-colorwheel-border-color-key-focus: rgba(44,44,44,0.1);\n --spectrum-miller-column-item-background-color-selected: rgba(20,115,230,0.1);\n --spectrum-miller-column-item-background-color-selected-hover: rgba(20,115,230,0.2);\n --spectrum-tabs-compact-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-compact-vertical-emphasized-rule-color: var(--spectrum-global-color-gray-200);\n --spectrum-tabs-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-compact-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-tabs-quiet-vertical-emphasized-selection-indicator-color: var(--spectrum-global-color-blue-500);\n --spectrum-well-background-color: rgba(34,34,34,0.02);\n --spectrum-well-border-color: rgba(0,0,0,0.05);\n --spectrum-tray-background-color: var(--spectrum-global-color-gray-50);\n /* react spectrum additions */\n --react-spectrum-datepicker-placeholder-color: rgb(118, 118, 118); /* 4.54:1 contrast ratio */\n\n --spectrum-accent-background-color-default: var(--spectrum-accent-color-900);\n --spectrum-accent-background-color-hover: var(--spectrum-accent-color-1000);\n --spectrum-accent-background-color-down: var(--spectrum-accent-color-1100);\n --spectrum-accent-background-color-key-focus: var(--spectrum-accent-color-1000);\n\n --spectrum-neutral-background-color-default: var(--spectrum-gray-800);\n --spectrum-neutral-background-color-hover: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-down: var(--spectrum-gray-900);\n --spectrum-neutral-background-color-key-focus: var(--spectrum-gray-900);\n\n --spectrum-neutral-subdued-background-color-default: var(--spectrum-gray-600);\n --spectrum-neutral-subdued-background-color-hover: var(--spectrum-gray-700);\n --spectrum-neutral-subdued-background-color-down: var(--spectrum-gray-800);\n --spectrum-neutral-subdued-background-color-key-focus: var(--spectrum-gray-700);\n\n --spectrum-negative-background-color-default: var(--spectrum-red-900);\n --spectrum-negative-background-color-hover: var(--spectrum-red-1000);\n --spectrum-negative-background-color-down: var(--spectrum-red-1100);\n --spectrum-negative-background-color-key-focus: var(--spectrum-red-1000);\n\n --spectrum-positive-background-color-default: var(--spectrum-green-900);\n --spectrum-positive-background-color-hover: var(--spectrum-green-1000);\n --spectrum-positive-background-color-down: var(--spectrum-green-1100);\n --spectrum-positive-background-color-key-focus: var(--spectrum-green-1000);\n\n --spectrum-informative-background-color-default: var(--spectrum-blue-900);\n --spectrum-informative-background-color-hover: var(--spectrum-blue-1000);\n --spectrum-informative-background-color-down: var(--spectrum-blue-1100);\n --spectrum-informative-background-color-key-focus: var(--spectrum-blue-1000);\n\n --spectrum-gray-background-color-default: var(--spectrum-gray-700);\n --spectrum-red-background-color-default: var(--spectrum-red-600);\n --spectrum-orange-background-color-default: var(--spectrum-orange-600);\n --spectrum-yellow-background-color-default: var(--spectrum-yellow-400);\n --spectrum-chartreuse-background-color-default: var(--spectrum-chartreuse-500);\n --spectrum-celery-background-color-default: var(--spectrum-celery-600);\n --spectrum-green-background-color-default: var(--spectrum-green-900);\n --spectrum-seafoam-background-color-default: var(--spectrum-seafoam-900);\n --spectrum-cyan-background-color-default: var(--spectrum-cyan-900);\n --spectrum-blue-background-color-default: var(--spectrum-blue-900);\n --spectrum-indigo-background-color-default: var(--spectrum-indigo-900);\n --spectrum-purple-background-color-default: var(--spectrum-purple-900);\n --spectrum-fuchsia-background-color-default: var(--spectrum-fuchsia-900);\n --spectrum-magenta-background-color-default: var(--spectrum-magenta-900);\n\n --spectrum-negative-visual-color: var(--spectrum-red-800);\n --spectrum-positive-visual-color: var(--spectrum-green-700);\n --spectrum-notice-visual-color: var(--spectrum-orange-700);\n --spectrum-informative-visual-color: var(--spectrum-blue-800);\n\n --spectrum-gray-visual-color: var(--spectrum-gray-500);\n --spectrum-red-visual-color: var(--spectrum-red-800);\n --spectrum-orange-visual-color: var(--spectrum-orange-700);\n --spectrum-yellow-visual-color: var(--spectrum-yellow-600);\n --spectrum-chartreuse-visual-color: var(--spectrum-chartreuse-600);\n --spectrum-celery-visual-color: var(--spectrum-celery-700);\n --spectrum-green-visual-color: var(--spectrum-green-700);\n --spectrum-seafoam-visual-color: var(--spectrum-seafoam-700);\n --spectrum-cyan-visual-color: var(--spectrum-cyan-600);\n --spectrum-blue-visual-color: var(--spectrum-blue-800);\n --spectrum-indigo-visual-color: var(--spectrum-indigo-800);\n --spectrum-purple-visual-color: var(--spectrum-purple-800);\n --spectrum-fuchsia-visual-color: var(--spectrum-fuchsia-800);\n --spectrum-magenta-visual-color: var(--spectrum-magenta-800);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n.spectrum--medium {\n --spectrum-global-dimension-scale-factor: 1;\n --spectrum-global-dimension-size-0: 0px;\n --spectrum-global-dimension-size-10: 1px;\n --spectrum-global-dimension-size-25: 2px;\n --spectrum-global-dimension-size-40: 3px;\n --spectrum-global-dimension-size-50: 4px;\n --spectrum-global-dimension-size-65: 5px;\n --spectrum-global-dimension-size-75: 6px;\n --spectrum-global-dimension-size-85: 7px;\n --spectrum-global-dimension-size-100: 8px;\n --spectrum-global-dimension-size-115: 9px;\n --spectrum-global-dimension-size-125: 10px;\n --spectrum-global-dimension-size-130: 11px;\n --spectrum-global-dimension-size-150: 12px;\n --spectrum-global-dimension-size-160: 13px;\n --spectrum-global-dimension-size-175: 14px;\n --spectrum-global-dimension-size-200: 16px;\n --spectrum-global-dimension-size-225: 18px;\n --spectrum-global-dimension-size-250: 20px;\n --spectrum-global-dimension-size-275: 22px;\n --spectrum-global-dimension-size-300: 24px;\n --spectrum-global-dimension-size-325: 26px;\n --spectrum-global-dimension-size-350: 28px;\n --spectrum-global-dimension-size-400: 32px;\n --spectrum-global-dimension-size-450: 36px;\n --spectrum-global-dimension-size-500: 40px;\n --spectrum-global-dimension-size-550: 44px;\n --spectrum-global-dimension-size-600: 48px;\n --spectrum-global-dimension-size-675: 54px;\n --spectrum-global-dimension-size-700: 56px;\n --spectrum-global-dimension-size-800: 64px;\n --spectrum-global-dimension-size-900: 72px;\n --spectrum-global-dimension-size-1000: 80px;\n --spectrum-global-dimension-size-1200: 96px;\n --spectrum-global-dimension-size-1250: 100px;\n --spectrum-global-dimension-size-1600: 128px;\n --spectrum-global-dimension-size-1700: 136px;\n --spectrum-global-dimension-size-2000: 160px;\n --spectrum-global-dimension-size-2400: 192px;\n --spectrum-global-dimension-size-3000: 240px;\n --spectrum-global-dimension-size-3400: 272px;\n --spectrum-global-dimension-size-3600: 288px;\n --spectrum-global-dimension-size-4600: 368px;\n --spectrum-global-dimension-size-5000: 400px;\n --spectrum-global-dimension-size-6000: 480px;\n --spectrum-global-dimension-font-size-25: 10px;\n --spectrum-global-dimension-font-size-50: 11px;\n --spectrum-global-dimension-font-size-75: 12px;\n --spectrum-global-dimension-font-size-100: 14px;\n --spectrum-global-dimension-font-size-150: 15px;\n --spectrum-global-dimension-font-size-200: 16px;\n --spectrum-global-dimension-font-size-300: 18px;\n --spectrum-global-dimension-font-size-400: 20px;\n --spectrum-global-dimension-font-size-500: 22px;\n --spectrum-global-dimension-font-size-600: 25px;\n --spectrum-global-dimension-font-size-700: 28px;\n --spectrum-global-dimension-font-size-800: 32px;\n --spectrum-global-dimension-font-size-900: 36px;\n --spectrum-global-dimension-font-size-1000: 40px;\n --spectrum-global-dimension-font-size-1100: 45px;\n --spectrum-global-dimension-font-size-1200: 50px;\n --spectrum-global-dimension-font-size-1300: 60px;\n --spectrum-alias-avatar-size-100: var(--spectrum-global-dimension-size-250);\n --spectrum-alias-avatar-size-400: var(--spectrum-global-dimension-size-350);\n --spectrum-alias-avatar-size-600: var(--spectrum-global-dimension-size-450);\n --spectrum-actionbutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-actionbutton-quiet-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-barloader-large-border-radius: 3px;\n --spectrum-barloader-large-indeterminate-border-radius: 3px;\n --spectrum-barloader-large-over-background-border-radius: 3px;\n --spectrum-barloader-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-barloader-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-breadcrumb-compact-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-compact-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-item-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-breadcrumb-multiline-button-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-cta-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-cta-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-cta-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-over-background-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-over-background-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-over-background-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-over-background-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-primary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-primary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-primary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-primary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-secondary-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-quiet-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-quiet-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-quiet-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-quiet-warning-cursor-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-button-secondary-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-secondary-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-secondary-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-secondary-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-text-padding-bottom: var(--spectrum-global-dimension-size-85);\n --spectrum-button-warning-min-width: var(--spectrum-global-dimension-size-900);\n --spectrum-button-warning-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-button-warning-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-checkbox-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-text-gap-error-indeterminate-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-checkbox-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-circleloader-medium-border-size: 3px;\n --spectrum-circleloader-medium-over-background-border-size: 3px;\n --spectrum-circleloader-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-circleloader-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-colorhandle-loupe-margin: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorloupe-colorhandle-gap: var(--spectrum-global-dimension-static-size-125);\n --spectrum-colorslider-touch-hit-y: var(--spectrum-global-dimension-size-150);\n --spectrum-colorslider-vertical-touch-hit-x: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-min-size: var(--spectrum-global-dimension-size-2400);\n --spectrum-colorwheel-touch-hit-outer: var(--spectrum-global-dimension-size-150);\n --spectrum-colorwheel-touch-hit-inner: var(--spectrum-global-dimension-size-150);\n --spectrum-cyclebutton-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-cyclebutton-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dialog-confirm-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-confirm-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-confirm-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-confirm-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-confirm-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-content-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-content-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-destructive-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-destructive-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-destructive-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-destructive-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-destructive-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-error-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-error-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-error-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-error-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-error-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dialog-info-max-width: var(--spectrum-global-dimension-static-size-6000);\n --spectrum-dialog-info-title-text-size: var(--spectrum-global-dimension-font-size-300);\n --spectrum-dialog-info-description-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-dialog-info-padding: var(--spectrum-global-dimension-static-size-500);\n --spectrum-dialog-info-description-margin-bottom: var(--spectrum-global-dimension-static-size-600);\n --spectrum-dropdown-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-dropdown-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-dropdown-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-fieldbutton-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-icon-arrow-down-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-arrow-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-medium-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-medium-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-checkmark-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-checkmark-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-down-medium-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-left-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-left-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-chevron-right-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-chevron-right-medium-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-cross-large-width: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-cross-large-height: var(--spectrum-global-dimension-size-150);\n --spectrum-icon-dash-small-width: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-dash-small-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-left-width: 9px;\n --spectrum-icon-skip-left-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-skip-right-width: 9px;\n --spectrum-icon-skip-right-height: var(--spectrum-global-dimension-size-125);\n --spectrum-icon-triplegripper-width: var(--spectrum-global-dimension-size-125);\n --spectrum-listitem-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-listitem-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-option-height: var(--spectrum-global-dimension-static-size-400);\n --spectrum-listitem-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-listitem-thumbnail-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-listitem-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-thumbnail-small-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-thumbnail-small-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-size: var(--spectrum-global-dimension-static-size-150);\n --spectrum-selectlist-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-selectlist-option-icon-margin-top: var(--spectrum-global-dimension-static-size-65);\n --spectrum-selectlist-option-height: var(--spectrum-global-dimension-static-size-400);\n /* BEGIN RSP PATCH */\n /*\n This is not correct in DNA. Renamed from padding-y to padding-height to fix docs issue where fallback var replaced this value\n (due to old spectrum-css postcss-custom-properties-custom-mapping plugin). Replaced var(--spectrum-global-dimension-static-size-85) with\n static 7px value since a fallback isn't generated anymore due to the rename.\n */\n --spectrum-selectlist-option-padding-height: 7px;\n /* END RSP PATCH */\n --spectrum-selectlist-thumbnail-option-icon-padding-y: var(--spectrum-global-dimension-static-size-125);\n --spectrum-loader-bar-large-border-radius: 3px;\n --spectrum-loader-bar-large-over-background-border-radius: 3px;\n --spectrum-loader-bar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-bar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-medium-border-size: 3px;\n --spectrum-loader-circle-medium-over-background-border-size: 3px;\n --spectrum-loader-circle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-loader-circle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-meter-large-border-radius: 3px;\n --spectrum-meter-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-pagination-page-button-line-height: 26px;\n /* BEGIN RSP PATCH */\n /* fix popover in edge https://github.com/adobe/react-spectrum/pull/402 */\n --spectrum-overlay-positive-transform-distance: 6px;\n --spectrum-overlay-negative-transform-distance: -6px;\n /* END RSP PATCH */\n --spectrum-picker-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-quiet-min-width: var(--spectrum-global-dimension-size-225);\n --spectrum-picker-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-400);\n --spectrum-picker-thumbnail-small-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-picker-thumbnail-small-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-progressbar-large-border-radius: 3px;\n --spectrum-progressbar-large-indeterminate-border-radius: 3px;\n --spectrum-progressbar-large-over-background-border-radius: 3px;\n --spectrum-progressbar-small-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-indeterminate-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progressbar-small-over-background-border-radius: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-border-size: 3px;\n --spectrum-progresscircle-medium-over-background-border-size: 3px;\n --spectrum-progresscircle-small-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-indeterminate-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-small-over-background-border-size: var(--spectrum-global-dimension-static-size-25);\n --spectrum-progresscircle-medium-indeterminate-border-size: 3px;\n --spectrum-radio-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-margin-bottom: 0px;\n --spectrum-radio-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-emphasized-margin-bottom: 0px;\n --spectrum-radio-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-radio-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-radio-quiet-margin-bottom: 0px;\n --spectrum-radio-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-icon-width: 24px;\n --spectrum-rating-indicator-width: 16px;\n --spectrum-rating-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-emphasized-icon-width: 24px;\n --spectrum-rating-emphasized-indicator-width: 16px;\n --spectrum-rating-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-rating-quiet-icon-width: 24px;\n --spectrum-rating-quiet-indicator-width: 16px;\n --spectrum-rating-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-search-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-search-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-sidenav-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-sidenav-multilevel-item-touch-hit-bottom: var(--spectrum-global-dimension-static-size-25);\n --spectrum-slider-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-editable-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-editable-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-track-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-slider-fill-handle-touch-hit-x: var(--spectrum-global-dimension-static-size-200);\n --spectrum-slider-fill-handle-touch-hit-y: var(--spectrum-global-dimension-static-size-200);\n --spectrum-switch-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-track-width: 26px;\n --spectrum-switch-handle-border-radius: 7px;\n /* BEGIN RSP PATCH */\n /* fix switch in edge: https://github.com/adobe/react-spectrum/pull/90 */\n --spectrum-switch-handle-transform-x-ltr: 12px;\n --spectrum-switch-handle-transform-x-rtl: -12px;\n /* END RSP PATCH */\n --spectrum-switch-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-emphasized-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-emphasized-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-emphasized-track-width: 26px;\n --spectrum-switch-emphasized-handle-border-radius: 7px;\n --spectrum-switch-emphasized-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-switch-quiet-focus-ring-border-radius-key-focus: var(--spectrum-global-dimension-static-size-130);\n --spectrum-switch-quiet-text-gap-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-text-gap-error-selected-key-focus: var(--spectrum-global-dimension-static-size-115);\n --spectrum-switch-quiet-track-width: 26px;\n --spectrum-switch-quiet-handle-border-radius: 7px;\n --spectrum-switch-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tabs-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-margin-left: -8px;\n --spectrum-tabs-compact-margin-right: -8px;\n --spectrum-tabs-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-focus-ring-border-radius: 5px;\n --spectrum-tabs-margin-left: -8px;\n --spectrum-tabs-margin-right: -8px;\n --spectrum-tabs-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-emphasized-margin-left: -8px;\n --spectrum-tabs-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-margin-left: -8px;\n --spectrum-tabs-quiet-margin-right: -8px;\n --spectrum-tabs-quiet-compact-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-margin-left: -8px;\n --spectrum-tabs-quiet-compact-margin-right: -8px;\n --spectrum-tabs-quiet-compact-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-compact-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-compact-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-compact-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-emphasized-margin-left: -8px;\n --spectrum-tabs-quiet-emphasized-margin-right: -8px;\n --spectrum-tabs-quiet-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-focus-ring-border-radius: 5px;\n --spectrum-tabs-quiet-vertical-emphasized-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-quiet-vertical-emphasized-focus-ring-border-radius: 5px;\n --spectrum-tabs-vertical-baseline: var(--spectrum-global-dimension-size-225);\n --spectrum-tabs-vertical-focus-ring-border-radius: 5px;\n --spectrum-textarea-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textarea-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textarea-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-textfield-quiet-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-textfield-quiet-icon-frame: var(--spectrum-global-dimension-static-size-400);\n --spectrum-tool-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-x: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tool-high-emphasis-touch-hit-y: var(--spectrum-global-dimension-static-size-100);\n --spectrum-tooltip-padding-bottom: 5px;\n /* BEGIN RSP PATCH */\n /* Old value is deprecated, bumping to new value for now: https://git.corp.adobe.com/Spectrum/spectrum-dna/blob/53f6efb0d81ec6829048a53a9e8389b450f46dee/data/elements/tooltip/TooltipBase.mjs#L36 */\n --spectrum-tooltip-content-max-width: var(--spectrum-global-dimension-size-2000);\n /* END RSP PATCH */\n --spectrum-tooltip-info-padding-bottom: 5px;\n --spectrum-tooltip-info-content-max-width: 101px;\n --spectrum-tooltip-negative-padding-bottom: 5px;\n --spectrum-tooltip-negative-content-max-width: 101px;\n --spectrum-tooltip-positive-padding-bottom: 5px;\n --spectrum-tooltip-positive-content-max-width: 101px;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/// \n\nimport darkest from '@adobe/spectrum-css-temp/vars/spectrum-darkest.css';\nimport global from '@adobe/spectrum-css-temp/vars/spectrum-global.css';\nimport large from '@adobe/spectrum-css-temp/vars/spectrum-large.css';\nimport light from '@adobe/spectrum-css-temp/vars/spectrum-light.css';\nimport medium from '@adobe/spectrum-css-temp/vars/spectrum-medium.css';\nimport {Theme} from '@react-types/provider';\n\nexport let theme: Theme = {\n global,\n light,\n dark: darkest,\n medium,\n large\n};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, useDOMRef, useSlotProps, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React from 'react';\nimport {SpectrumImageProps} from '@react-types/image';\nimport styles from '@adobe/spectrum-css-temp/components/image/vars.css';\nimport {useProviderProps} from '@react-spectrum/provider';\n\n// incomplete component for show right now\n\nfunction Image(props: SpectrumImageProps, ref: DOMRef) {\n /* Slots should be able to pass an alt for default behavior, but in Images, the child may know better. */\n let userProvidedAlt = props.alt;\n props = useSlotProps(props, 'image');\n props = useProviderProps(props);\n let {\n objectFit,\n src,\n alt,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let domRef = useDOMRef(ref);\n\n if (alt == null) {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n return (\n \n \n
    \n );\n}\n\n/**\n * Image is used to insert and display an image within a component.\n */\nconst _Image = React.forwardRef(Image);\nexport {_Image as Image};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {InvalidationContext} from './types';\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\n// import {Point} from './Point';\nimport {Rect} from './Rect';\nimport {Size} from './Size';\nimport {Virtualizer} from './Virtualizer';\n// import { DragTarget, DropTarget } from '@react-types/shared';\n\n/**\n * [CollectionView]{@link CollectionView} supports arbitrary layout objects, which compute what views are visible, and how\n * to position and style them. However, layouts do not create the views themselves directly. Instead,\n * layouts produce lightweight {@link LayoutInfo} objects which describe various properties of a view,\n * such as its position and size. The {@link CollectionView} is then responsible for creating the actual\n * views as needed, based on this layout information.\n *\n * Every layout extends from the {@link Layout} abstract base class. Layouts must implement a minimum of the\n * two methods listed below. All other methods can be optionally overridden to implement custom behavior.\n *\n * @see {@link getVisibleLayoutInfos}\n * @see {@link getLayoutInfo}\n */\nexport abstract class Layout {\n /** The CollectionView the layout is currently attached to. */\n virtualizer: Virtualizer;\n\n /**\n * Returns whether the layout should invalidate in response to\n * visible rectangle changes. By default, it only invalidates\n * when the collection view's size changes. Return true always\n * to make the layout invalidate while scrolling (e.g. sticky headers).\n */\n shouldInvalidate(newRect: Rect, oldRect: Rect): boolean {\n // By default, invalidate when the size changes\n return newRect.width !== oldRect.width\n || newRect.height !== oldRect.height;\n }\n\n /**\n * This method allows the layout to perform any pre-computation\n * it needs to in order to prepare {@link LayoutInfo}s for retrieval.\n * Called by the collection view before {@link getVisibleLayoutInfos}\n * or {@link getLayoutInfo} are called.\n */\n validate(invalidationContext: InvalidationContext) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * Returns an array of {@link LayoutInfo} objects which are inside the given rectangle.\n * Should be implemented by subclasses.\n * @param rect The rectangle that should contain the returned LayoutInfo objects.\n */\n abstract getVisibleLayoutInfos(rect: Rect): LayoutInfo[];\n\n /**\n * Returns a {@link LayoutInfo} for the given key.\n * Should be implemented by subclasses.\n * @param key The key of the LayoutInfo to retrieve.\n */\n abstract getLayoutInfo(key: Key): LayoutInfo;\n\n /**\n * Returns size of the content. By default, it returns collectionView's size.\n */\n abstract getContentSize(): Size;\n\n /**\n * Returns a {@link DragTarget} describing a view at the given point to be dragged.\n * Return `null` to cancel the drag. The default implementation returns the view at the given point.\n * @param point The point at which the drag occurred.\n */\n // getDragTarget(point: Point): DragTarget | null {\n // let target = this.virtualizer.keyAtPoint(point);\n // if (!target) {\n // return null;\n // }\n\n // return {\n // type: 'item',\n // key: target\n // };\n // }\n\n /**\n * Returns a {@link DragTarget} object describing where a drop should occur. Return `null`\n * to reject the drop. The dropped items will be inserted before the resulting target.\n * @param point The point at which the drop occurred.\n */\n // getDropTarget(point: Point): DropTarget | null {\n // return null;\n // }\n\n /**\n * Returns the starting attributes for an animated insertion.\n * The view is animated from this {@link LayoutInfo} to the one returned by {@link getLayoutInfo}.\n * The default implementation just returns its input.\n *\n * @param layoutInfo The proposed LayoutInfo for this view.\n */\n getInitialLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n\n /**\n * Returns the ending attributes for an animated removal.\n * The view is animated from the {@link LayoutInfo} returned by {@link getLayoutInfo}\n * to the one returned by this method. The default implementation returns its input.\n *\n * @param layoutInfo The original LayoutInfo for this view.\n */\n getFinalLayoutInfo(layoutInfo: LayoutInfo): LayoutInfo {\n return layoutInfo;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {Rect} from './Rect';\n\n/**\n * Instances of this lightweight class are created by {@link Layout} subclasses\n * to represent each view in the {@link CollectionView}. LayoutInfo objects describe\n * various properties of a view, such as its position and size, and style information.\n * The collection view uses this information when creating actual views to display.\n */\nexport class LayoutInfo {\n /**\n * A string representing the view type. Should be `'item'` for item views.\n * Other types are used by supplementary views.\n */\n type: string;\n\n /**\n * A unique key for this view. For item views, it should match the content key.\n */\n key: Key;\n\n /**\n * The key for a parent layout info, if any.\n */\n parentKey: Key | null;\n\n /**\n * The rectangle describing the size and position of this view.\n */\n rect: Rect;\n\n /**\n * Whether the size is estimated. `false` by default.\n */\n estimatedSize: boolean;\n\n /**\n * Whether the layout info sticks to the viewport when scrolling.\n */\n isSticky: boolean;\n\n /**\n * The view's opacity. 1 by default.\n */\n opacity: number;\n\n /**\n * A CSS transform string to apply to the view. `null` by default.\n */\n transform: string | null;\n\n /**\n * The z-index of the view. 0 by default.\n */\n zIndex: number;\n\n /**\n * Whether the layout info allows its contents to overflow its container.\n * @default false\n */\n allowOverflow: boolean;\n\n /**\n * @param type A string representing the view type. Should be `'item'` for item views.\n Other types are used by supplementary views.\n * @param key The unique key for this view.\n * @param rect The rectangle describing the size and position of this view.\n */\n constructor(type: string, key: Key, rect: Rect) {\n this.type = type;\n this.key = key;\n this.parentKey = null;\n this.rect = rect;\n this.estimatedSize = false;\n this.isSticky = false;\n this.opacity = 1;\n this.transform = null;\n this.zIndex = 0;\n this.allowOverflow = false;\n }\n\n /**\n * Returns a copy of the LayoutInfo.\n */\n copy(): LayoutInfo {\n let res = new LayoutInfo(this.type, this.key, this.rect.copy());\n res.estimatedSize = this.estimatedSize;\n res.opacity = this.opacity;\n res.transform = this.transform;\n res.parentKey = this.parentKey;\n res.isSticky = this.isSticky;\n res.zIndex = this.zIndex;\n res.allowOverflow = this.allowOverflow;\n return res;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Point {\n /** The x-coordinate of the point. */\n x: number;\n\n /** The y-coordinate of the point. */\n y: number;\n\n constructor(x = 0, y = 0) {\n this.x = x;\n this.y = y;\n }\n\n /**\n * Returns a copy of this point.\n */\n copy(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * Checks if two points are equal.\n */\n equals(point: Point): boolean {\n return this.x === point.x && this.y === point.y;\n }\n\n /**\n * Returns true if this point is the origin.\n */\n isOrigin(): boolean {\n return this.x === 0 && this.y === 0;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Size} from './Size';\n\nexport type RectCorner = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\n\n/**\n * Represents a rectangle.\n */\nexport class Rect {\n /** The x-coordinate of the rectangle. */\n x: number;\n\n /** The y-coordinate of the rectangle. */\n y: number;\n\n /** The width of the rectangle. */\n width: number;\n\n /** The height of the rectangle. */\n height: number;\n\n constructor(x = 0, y = 0, width = 0, height = 0) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n /**\n * The maximum x-coordinate in the rectangle.\n */\n get maxX(): number {\n return this.x + this.width;\n }\n\n /**\n * The maximum y-coordinate in the rectangle.\n */\n get maxY(): number {\n return this.y + this.height;\n }\n\n /**\n * The area of the rectangle.\n */\n get area(): number {\n return this.width * this.height;\n }\n\n /**\n * The top left corner of the rectangle.\n */\n get topLeft(): Point {\n return new Point(this.x, this.y);\n }\n\n /**\n * The top right corner of the rectangle.\n */\n get topRight(): Point {\n return new Point(this.maxX, this.y);\n }\n\n /**\n * The bottom left corner of the rectangle.\n */\n get bottomLeft(): Point {\n return new Point(this.x, this.maxY);\n }\n\n /**\n * The bottom right corner of the rectangle.\n */\n get bottomRight(): Point {\n return new Point(this.maxX, this.maxY);\n }\n\n /**\n * Returns whether this rectangle intersects another rectangle.\n * @param rect - The rectangle to check.\n */\n intersects(rect: Rect): boolean {\n return this.x <= rect.x + rect.width\n && rect.x <= this.x + this.width\n && this.y <= rect.y + rect.height\n && rect.y <= this.y + this.height;\n }\n\n /**\n * Returns whether this rectangle fully contains another rectangle.\n * @param rect - The rectangle to check.\n */\n containsRect(rect: Rect): boolean {\n return this.x <= rect.x\n && this.y <= rect.y\n && this.maxX >= rect.maxX\n && this.maxY >= rect.maxY;\n }\n\n /**\n * Returns whether the rectangle contains the given point.\n * @param point - The point to check.\n */\n containsPoint(point: Point): boolean {\n return this.x <= point.x\n && this.y <= point.y\n && this.maxX >= point.x\n && this.maxY >= point.y;\n }\n\n /**\n * Returns the first corner of this rectangle (from top to bottom, left to right)\n * that is contained in the given rectangle, or null of the rectangles do not intersect.\n * @param rect - The rectangle to check.\n */\n getCornerInRect(rect: Rect): RectCorner | null {\n for (let key of ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']) {\n if (rect.containsPoint(this[key])) {\n return key as RectCorner;\n }\n }\n\n return null;\n }\n\n equals(rect: Rect) {\n return rect.x === this.x\n && rect.y === this.y\n && rect.width === this.width\n && rect.height === this.height;\n }\n\n pointEquals(point: Point | Rect) {\n return this.x === point.x\n && this.y === point.y;\n }\n\n sizeEquals(size: Size | Rect) {\n return this.width === size.width\n && this.height === size.height;\n }\n\n /**\n * Returns the union of this Rect and another.\n */\n union(other: Rect) {\n let x = Math.min(this.x, other.x);\n let y = Math.min(this.y, other.y);\n let width = Math.max(this.maxX, other.maxX) - x;\n let height = Math.max(this.maxY, other.maxY) - y;\n return new Rect(x, y, width, height);\n }\n\n /**\n * Returns the intersection of this Rect with another.\n * If the rectangles do not intersect, an all zero Rect is returned.\n */\n intersection(other: Rect): Rect {\n if (!this.intersects(other)) {\n return new Rect(0, 0, 0, 0);\n }\n\n let x = Math.max(this.x, other.x);\n let y = Math.max(this.y, other.y);\n return new Rect(\n x,\n y,\n Math.min(this.maxX, other.maxX) - x,\n Math.min(this.maxY, other.maxY) - y\n );\n }\n\n /**\n * Returns a copy of this rectangle.\n */\n copy(): Rect {\n return new Rect(this.x, this.y, this.width, this.height);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport class Size {\n width: number;\n height: number;\n\n constructor(width = 0, height = 0) {\n this.width = width;\n this.height = height;\n }\n\n /**\n * Returns a copy of this size.\n */\n copy(): Size {\n return new Size(this.width, this.height);\n }\n\n /**\n * Returns whether this size is equal to another one.\n */\n equals(other: Size): boolean {\n return this.width === other.width\n && this.height === other.height;\n }\n\n /**\n * The total area of the Size.\n */\n get area() {\n return this.width * this.height;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {Virtualizer} from './Virtualizer';\n\nlet KEY = 0;\n\n/**\n * [CollectionView]{@link CollectionView} creates instances of the [ReusableView]{@link ReusableView} class to\n * represent views currently being displayed. ReusableViews manage a DOM node, handle\n * applying {@link LayoutInfo} objects to the view, and render content\n * as needed. Subclasses must implement the {@link render} method at a\n * minimum. Other methods can be overridden to customize behavior.\n */\nexport class ReusableView {\n /** The CollectionVirtualizer this view is a part of. */\n virtualizer: Virtualizer;\n\n /** The LayoutInfo this view is currently representing. */\n layoutInfo: LayoutInfo | null;\n\n /** The content currently being displayed by this view, set by the collection view. */\n content: T;\n\n rendered: V;\n\n viewType: string;\n key: Key;\n\n constructor(virtualizer: Virtualizer) {\n this.virtualizer = virtualizer;\n this.key = ++KEY;\n }\n\n /**\n * Prepares the view for reuse. Called just before the view is removed from the DOM.\n */\n prepareForReuse() {\n this.content = null;\n this.rendered = null;\n this.layoutInfo = null;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\n\n// use high res timer if available\nlet perf = typeof window !== 'undefined' ? window.performance : null;\n// @ts-ignore\nlet perfNow = perf && (perf.now || perf.webkitNow || perf.msNow || perf.mozNow);\nlet getTime = perfNow ? perfNow.bind(perf) : function () {\n return Date.now ? Date.now() : new Date().getTime();\n};\n\nlet fixTs: boolean;\n\nexport interface CancelablePromise extends Promise {\n cancel(): void\n}\n\nexport function tween(begin, end, duration, ease, fn): CancelablePromise {\n let canceled = false;\n let raf_id: number;\n\n let promise = new Promise(resolve => {\n let start = getTime();\n let diffX = end.x - begin.x;\n let diffY = end.y - begin.y;\n\n raf_id = requestAnimationFrame(function run(t) {\n // if we're using a high res timer, make sure timestamp is not the old epoch-based value.\n // http://updates.html5rocks.com/2012/05/requestAnimationFrame-API-now-with-sub-millisecond-precision\n if (fixTs == null) {\n fixTs = t > 1e12 !== getTime() > 1e12;\n }\n\n if (fixTs) {\n t = getTime();\n }\n\n // check if we're done\n let delta = t - start;\n if (delta > duration) {\n fn(end);\n resolve();\n } else {\n // call frame callback after computing eased time and get the next frame\n let proceed = fn(new Point(\n begin.x + diffX * ease(delta / duration),\n begin.y + diffY * ease(delta / duration)\n ));\n\n if (proceed !== false && !canceled) {\n raf_id = requestAnimationFrame(run);\n }\n }\n });\n }) as CancelablePromise;\n\n promise.cancel = function () {\n canceled = true;\n cancelAnimationFrame(raf_id);\n };\n\n return promise;\n}\n\n// easing functions\nexport function linearEasing(t) {\n return t;\n}\n\nexport function easeOut(t) {\n return Math.sin(t * Math.PI / 2);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function keyDiff(a: Map, b: Map): Set {\n let res = new Set();\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n\n/**\n * Returns the key difference between two maps. Returns a set of\n * keys to add to and remove from a to make it equal to b.\n * @private\n */\nexport function difference(a: Map, b: Map) {\n let toRemove = keyDiff(a, b);\n let toAdd = keyDiff(b, a);\n let toUpdate = new Set;\n for (let key of a.keys()) {\n if (b.has(key)) {\n toUpdate.add(key);\n }\n }\n return {toRemove, toAdd, toUpdate};\n}\n\n/**\n * Returns an iterator that yields the items in all of the given iterators.\n * @private\n */\nexport function* concatIterators(...iterators: Iterable[]) {\n for (let iterator of iterators) {\n yield* iterator;\n }\n}\n\n/**\n * Inverts the keys and values of an object.\n * @private\n */\nexport function invert(object) {\n let res = {};\n for (let key in object) {\n res[object[key]] = key;\n }\n\n return res;\n}\n\n/** Returns whether two sets are equal. */\nexport function isSetEqual(a: Set, b: Set): boolean {\n if (a === b) {\n return true;\n }\n\n if (a.size !== b.size) {\n return false;\n }\n\n for (let key of a) {\n if (!b.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Point} from './Point';\nimport {Rect} from './Rect';\n\nclass RollingAverage {\n private count: number = 0;\n value: number = 0;\n \n addSample(sample: number) {\n this.count++;\n this.value += (sample - this.value) / this.count;\n }\n}\n\nexport class OverscanManager {\n private startTime = 0;\n private averagePerf = new RollingAverage();\n private averageTime = new RollingAverage();\n private velocity = new Point(5, 5);\n private overscanX = new RollingAverage();\n private overscanY = new RollingAverage();\n private visibleRect = new Rect();\n \n setVisibleRect(rect: Rect) {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averageTime.addSample(time);\n\n if (rect.x !== this.visibleRect.x && time > 0) {\n this.velocity.x = (rect.x - this.visibleRect.x) / time;\n }\n\n if (rect.y !== this.visibleRect.y && time > 0) {\n this.velocity.y = (rect.y - this.visibleRect.y) / time;\n }\n }\n\n this.startTime = performance.now();\n this.visibleRect = rect;\n }\n\n collectMetrics() {\n let time = performance.now() - this.startTime;\n if (time < 500) {\n this.averagePerf.addSample(time);\n }\n\n if (this.visibleRect.height > 0) {\n let o = Math.abs(this.velocity.y * (this.averageTime.value + this.averagePerf.value)); \n this.overscanY.addSample(o);\n }\n\n if (this.visibleRect.width > 0) {\n let o = Math.abs(this.velocity.x * (this.averageTime.value + this.averagePerf.value)); \n this.overscanX.addSample(o);\n }\n }\n\n getOverscannedRect() {\n let overscanned = this.visibleRect.copy();\n\n let overscanY = Math.round(Math.min(this.visibleRect.height * 2, this.overscanY.value) / 100) * 100;\n if (this.velocity.y > 0) {\n overscanned.y -= overscanY * 0.2;\n overscanned.height += overscanY + overscanY * 0.2;\n } else {\n overscanned.y -= overscanY;\n overscanned.height += overscanY + overscanY * 0.2;\n }\n\n let overscanX = Math.round(Math.min(this.visibleRect.width * 2, this.overscanX.value) / 100) * 100;\n if (this.velocity.x > 0) {\n overscanned.x -= overscanX * 0.2;\n overscanned.width += overscanX + overscanX * 0.2;\n } else {\n overscanned.x -= overscanX;\n overscanned.width += overscanX + overscanX * 0.2;\n }\n\n return overscanned;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport {LayoutInfo} from './LayoutInfo';\nimport {ReusableView} from './ReusableView';\n\ntype LayoutInfoMap = Map;\nexport class Transaction {\n level = 0;\n actions: (() => void)[] = [];\n animated = true;\n initialMap: LayoutInfoMap = new Map();\n finalMap: LayoutInfoMap = new Map();\n initialLayoutInfo: LayoutInfoMap = new Map();\n finalLayoutInfo: LayoutInfoMap = new Map();\n removed: Map> = new Map();\n toRemove: Map> = new Map();\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CancelablePromise, easeOut, tween} from './tween';\nimport {Collection} from '@react-types/shared';\nimport {concatIterators, difference, isSetEqual} from './utils';\nimport {\n InvalidationContext,\n ScrollAnchor,\n ScrollToItemOptions,\n VirtualizerDelegate,\n VirtualizerOptions\n} from './types';\nimport {Key} from 'react';\nimport {Layout} from './Layout';\nimport {LayoutInfo} from './LayoutInfo';\nimport {OverscanManager} from './OverscanManager';\nimport {Point} from './Point';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {Transaction} from './Transaction';\n\n/**\n * The CollectionView class renders a scrollable collection of data using customizable layouts,\n * and manages animated updates to the data over time. It supports very large collections by\n * only rendering visible views to the DOM, reusing them as you scroll. Collection views can\n * present any type of view, including non-item views such as section headers and footers.\n * Optionally, the {@link EditableCollectionView} subclass can be used to enable user interaction\n * with the collection, including drag and drop, multiple selection, and keyboard interacton.\n *\n * Collection views get their data from a {@link DataSource} object that you provide. Items are\n * grouped into sections by the data source, and the collection view calls its methods to retrieve\n * the data. When data changes, the data source emits change events, and the collection view\n * updates as appropriate, optionally with an animated transition. There is one built-in data source\n * implementation, {@link ArrayDataSource}, which renders content from a 2d array.\n *\n * Collection views use {@link Layout} objects to compute what views should be visible, and how\n * to position and style them. This means that collection views can have their items arranged in\n * a stack, a grid, a circle, or any other layout you can think of. The layout can be changed\n * dynamically at runtime as well, optionally with an animated transition between the layouts.\n *\n * Layouts produce information on what views should appear in the collection view, but do not create\n * the views themselves directly. It is the responsibility of the {@link CollectionViewDelegate} object\n * to create instances of {@link ReusableView} subclasses which render the items into DOM nodes.\n * The delegate determines what type of view to display for each item, and creates instances of\n * views as needed by the collection view. Those views are then reused by the collection view as\n * the user scrolls through the content.\n */\nexport class Virtualizer {\n /**\n * The collection view delegate. The delegate is used by the collection view\n * to create and configure views.\n */\n delegate: VirtualizerDelegate;\n\n /** The duration of animated layout changes, in milliseconds. Default is 500ms. */\n transitionDuration: number;\n\n /**\n * Whether to enable scroll anchoring. This will attempt to restore the scroll position\n * after layout changes outside the viewport. Default is off.\n */\n anchorScrollPosition: boolean;\n\n /** Whether to anchor the scroll position when at the top of the content. Default is off. */\n anchorScrollPositionAtTop: boolean;\n\n /**\n * Whether to overscan the visible area to pre-render items slightly outside and\n * improve performance. Default is on.\n */\n shouldOverscan: boolean;\n\n private _collection: Collection;\n private _layout: Layout;\n private _contentSize: Size;\n private _visibleRect: Rect;\n private _visibleLayoutInfos: Map;\n private _reusableViews: {[type: string]: ReusableView[]};\n private _visibleViews: Map>;\n private _renderedContent: WeakMap;\n private _children: Set>;\n private _invalidationContext: InvalidationContext | null;\n private _overscanManager: OverscanManager;\n private _persistedKeys: Set;\n private _relayoutRaf: number | null;\n private _scrollAnimation: CancelablePromise | null;\n private _isScrolling: boolean;\n private _sizeUpdateQueue: Map;\n private _animatedContentOffset: Point;\n private _transaction: Transaction | null;\n private _nextTransaction: Transaction | null;\n private _transactionQueue: Transaction[];\n\n constructor(options: VirtualizerOptions = {}) {\n this._contentSize = new Size;\n this._visibleRect = new Rect;\n\n this._reusableViews = {};\n this._visibleLayoutInfos = new Map();\n this._visibleViews = new Map();\n this._renderedContent = new WeakMap();\n this._children = new Set();\n this._invalidationContext = null;\n this._overscanManager = new OverscanManager();\n this._persistedKeys = new Set();\n\n this._scrollAnimation = null;\n this._isScrolling = false;\n this._sizeUpdateQueue = new Map();\n this._animatedContentOffset = new Point(0, 0);\n\n this._transaction = null;\n this._nextTransaction = null;\n this._transactionQueue = [];\n\n // Set options from passed object if given\n this.transitionDuration = options.transitionDuration ?? 500;\n this.anchorScrollPosition = options.anchorScrollPosition || false;\n this.anchorScrollPositionAtTop = options.anchorScrollPositionAtTop || false;\n this.shouldOverscan = options.shouldOverscan !== false;\n for (let key of ['delegate', 'size', 'layout', 'collection']) {\n if (options[key]) {\n this[key] = options[key];\n }\n }\n }\n\n _setContentSize(size: Size) {\n this._contentSize = size;\n this.delegate.setContentSize(size);\n }\n\n _setContentOffset(offset: Point) {\n let rect = new Rect(offset.x, offset.y, this._visibleRect.width, this._visibleRect.height);\n this.delegate.setVisibleRect(rect);\n }\n\n /**\n * Get the size of the scrollable content.\n */\n get contentSize(): Size {\n return this._contentSize;\n }\n\n /**\n * Get the collection view's currently visible rectangle.\n */\n get visibleRect(): Rect {\n return this._visibleRect;\n }\n\n /**\n * Set the collection view's currently visible rectangle.\n */\n set visibleRect(rect: Rect) {\n this._setVisibleRect(rect);\n }\n\n _setVisibleRect(rect: Rect, forceUpdate = false) {\n let current = this._visibleRect;\n\n // Ignore if the rects are equal\n if (rect.equals(current)) {\n return;\n }\n\n if (this.shouldOverscan) {\n this._overscanManager.setVisibleRect(rect);\n }\n\n let shouldInvalidate = this.layout && this.layout.shouldInvalidate(rect, this._visibleRect);\n\n this._resetAnimatedContentOffset();\n this._visibleRect = rect;\n\n if (shouldInvalidate) {\n this.relayout({\n offsetChanged: !rect.pointEquals(current),\n sizeChanged: !rect.sizeEquals(current)\n });\n } else {\n this.updateSubviews(forceUpdate);\n }\n }\n\n get collection(): Collection {\n return this._collection;\n }\n\n set collection(data: Collection) {\n this._setData(data);\n }\n\n private _setData(data: Collection) {\n if (data === this._collection) {\n return;\n }\n\n if (this._collection) {\n this._runTransaction(() => {\n this._collection = data;\n }, this.transitionDuration > 0);\n } else {\n this._collection = data;\n this.reloadData();\n }\n }\n\n /**\n * Reloads the data from the data source and relayouts the collection view.\n * Does not animate any changes. Equivalent to re-assigning the same data source\n * to the collection view.\n */\n reloadData() {\n this.relayout({\n contentChanged: true\n });\n }\n\n /**\n * Returns the item with the given key.\n */\n getItem(key: Key) {\n return this._collection ? this._collection.getItem(key) : null;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n get persistedKeys(): Set {\n return this._persistedKeys;\n }\n\n /** The set of persisted keys are always present in the DOM, even if not currently in view. */\n set persistedKeys(persistedKeys: Set) {\n if (!isSetEqual(persistedKeys, this._persistedKeys)) {\n this._persistedKeys = persistedKeys;\n this.updateSubviews();\n }\n }\n\n /** Returns whether the given key, or an ancestor, is persisted. */\n isPersistedKey(key: Key) {\n // Quick check if the key is directly in the set of persisted keys.\n if (this._persistedKeys.has(key)) {\n return true;\n }\n\n // If not, check if the key is an ancestor of any of the persisted keys.\n for (let k of this._persistedKeys) {\n while (k != null) {\n let layoutInfo = this.layout.getLayoutInfo(k);\n if (!layoutInfo) {\n break;\n }\n\n k = layoutInfo.parentKey;\n\n if (k === key) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Get the collection view's layout.\n */\n get layout(): Layout {\n return this._layout;\n }\n\n /**\n * Set the collection view's layout.\n */\n set layout(layout: Layout) {\n this.setLayout(layout);\n }\n\n /**\n * Sets the collection view's layout, optionally with an animated transition\n * from the current layout to the new layout.\n * @param layout The layout to switch to.\n * @param animated Whether to animate the layout change.\n */\n setLayout(layout: Layout, animated = false) {\n if (layout === this._layout) {\n return;\n }\n\n let applyLayout = () => {\n if (this._layout) {\n // @ts-ignore\n this._layout.virtualizer = null;\n }\n\n layout.virtualizer = this;\n this._layout = layout;\n };\n\n if (animated) {\n // Animated layout transitions are really simple, thanks to our transaction support.\n // We just set the layout inside a transaction action, which runs after the initial\n // layout infos for the animation are retrieved from the previous layout. Then, the\n // final layout infos are retrieved from the new layout, and animations occur.\n this._runTransaction(applyLayout);\n } else {\n applyLayout();\n this.relayout();\n }\n }\n\n private _getReuseType(layoutInfo: LayoutInfo, content: T | null) {\n if (layoutInfo.type === 'item' && content) {\n let type = this.delegate.getType ? this.delegate.getType(content) : 'item';\n let reuseType = type === 'item' ? 'item' : layoutInfo.type + '_' + type;\n return {type, reuseType};\n }\n\n return {\n type: layoutInfo.type,\n reuseType: layoutInfo.type\n };\n }\n\n getReusableView(layoutInfo: LayoutInfo): ReusableView {\n let content = this.getItem(layoutInfo.key);\n let {reuseType} = this._getReuseType(layoutInfo, content);\n\n if (!this._reusableViews[reuseType]) {\n this._reusableViews[reuseType] = [];\n }\n\n let reusable = this._reusableViews[reuseType];\n let view = reusable.length > 0\n ? reusable.pop()\n : new ReusableView(this);\n\n view.viewType = reuseType;\n\n if (!this._animatedContentOffset.isOrigin()) {\n layoutInfo = layoutInfo.copy();\n layoutInfo.rect.x += this._animatedContentOffset.x;\n layoutInfo.rect.y += this._animatedContentOffset.y;\n }\n\n view.layoutInfo = layoutInfo;\n\n this._renderView(view);\n return view;\n }\n\n private _renderView(reusableView: ReusableView) {\n let {type, key} = reusableView.layoutInfo;\n reusableView.content = this.getItem(key);\n reusableView.rendered = this._renderContent(type, reusableView.content);\n }\n\n private _renderContent(type: string, content: T) {\n let cached = this._renderedContent.get(content);\n if (cached != null) {\n return cached;\n }\n\n let rendered = this.delegate.renderView(type, content);\n if (content) {\n this._renderedContent.set(content, rendered);\n }\n return rendered;\n }\n\n /**\n * Returns an array of all currently visible views, including both\n * item views and supplementary views.\n */\n get visibleViews(): ReusableView[] {\n return Array.from(this._visibleViews.values());\n }\n\n /**\n * Gets the visible view for the given type and key. Returns null if\n * the view is not currently visible.\n *\n * @param key The key of the view to retrieve.\n */\n getView(key: Key): ReusableView | null {\n return this._visibleViews.get(key) || null;\n }\n\n /**\n * Returns an array of visible views matching the given type.\n * @param type The view type to find.\n */\n getViewsOfType(type: string): ReusableView[] {\n return this.visibleViews.filter(v => v.layoutInfo && v.layoutInfo.type === type);\n }\n\n /**\n * Returns the key for the given view. Returns null\n * if the view is not currently visible.\n */\n keyForView(view: ReusableView): Key | null {\n if (view && view.layoutInfo) {\n return view.layoutInfo.key;\n }\n\n return null;\n }\n\n /**\n * Returns the key for the item view currently at the given point.\n */\n keyAtPoint(point: Point): Key | null {\n let rect = new Rect(point.x, point.y, 1, 1);\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n\n // Layout may return multiple layout infos in the case of\n // persisted keys, so find the first one that actually intersects.\n for (let layoutInfo of layoutInfos) {\n if (layoutInfo.rect.intersects(rect)) {\n return layoutInfo.key;\n }\n }\n\n return null;\n }\n\n /**\n * Cleanup for when the Virtualizer will be unmounted.\n */\n willUnmount() {\n cancelAnimationFrame(this._relayoutRaf);\n }\n\n /**\n * Triggers a layout invalidation, and updates the visible subviews.\n */\n relayout(context: InvalidationContext = {}) {\n // Ignore relayouts while animating the scroll position\n if (this._scrollAnimation || typeof requestAnimationFrame === 'undefined') {\n return;\n }\n\n // If we already scheduled a relayout, extend the invalidation\n // context so we coalesce multiple relayouts in the same frame.\n if (this._invalidationContext) {\n Object.assign(this._invalidationContext, context);\n return;\n }\n\n this._invalidationContext = context;\n this._relayoutRaf = requestAnimationFrame(() => {\n this._relayoutRaf = null;\n this.relayoutNow();\n });\n }\n\n /**\n * Performs a relayout immediately. Prefer {@link relayout} over this method\n * where possible, since it coalesces multiple layout passes in the same tick.\n */\n relayoutNow(context: InvalidationContext = this._invalidationContext || {}) {\n // Cancel the scheduled relayout, since we're doing it now.\n if (this._relayoutRaf) {\n cancelAnimationFrame(this._relayoutRaf);\n this._relayoutRaf = null;\n // Update the provided context with the current invalidationContext since we are cancelling\n // a scheduled relayoutNow call that has this._invalidationContext set as its default context arg (relayoutNow() in relayout)\n context = {...this._invalidationContext, ...context};\n }\n\n // Reset the invalidation context\n this._invalidationContext = null;\n\n // Do nothing if we don't have a layout or content, or we are\n // in the middle of an animated scroll transition.\n if (!this.layout || !this._collection || this._scrollAnimation) {\n return;\n }\n\n let scrollAnchor = this._getScrollAnchor();\n\n // Trigger the beforeLayout hook, if provided\n if (typeof context.beforeLayout === 'function') {\n context.beforeLayout();\n }\n\n // Validate the layout\n this.layout.validate(context);\n this._setContentSize(this.layout.getContentSize());\n\n // Trigger the afterLayout hook, if provided\n if (typeof context.afterLayout === 'function') {\n context.afterLayout();\n }\n\n // Adjust scroll position based on scroll anchor, and constrain.\n // If the content changed, scroll to the top.\n let visibleRect = this.getVisibleRect();\n let restoredScrollAnchor = this._restoreScrollAnchor(scrollAnchor, context);\n let contentOffsetX = context.contentChanged ? 0 : restoredScrollAnchor.x;\n let contentOffsetY = context.contentChanged ? 0 : restoredScrollAnchor.y;\n contentOffsetX = Math.max(0, Math.min(this.contentSize.width - visibleRect.width, contentOffsetX));\n contentOffsetY = Math.max(0, Math.min(this.contentSize.height - visibleRect.height, contentOffsetY));\n\n let hasLayoutUpdates = false;\n if (contentOffsetX !== visibleRect.x || contentOffsetY !== visibleRect.y) {\n // If this is an animated relayout, we do not immediately scroll because it would be jittery.\n // Save the difference between the current and new content offsets, and apply it to the\n // individual content items instead. At the end of the animation, we'll reset and set the\n // scroll offset for real. This ensures jitter-free animation since we don't need to sync\n // the scroll animation and the content animation.\n if (context.animated || !this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset.x += visibleRect.x - contentOffsetX;\n this._animatedContentOffset.y += visibleRect.y - contentOffsetY;\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n } else {\n this._setContentOffset(new Point(contentOffsetX, contentOffsetY));\n }\n } else {\n hasLayoutUpdates = this.updateSubviews(context.contentChanged);\n }\n\n // Apply layout infos, unless this is coming from an animated transaction\n if (!(context.transaction && context.animated)) {\n this._applyLayoutInfos();\n }\n\n // Wait for animations, and apply the afterAnimation hook, if provided\n if (context.animated && hasLayoutUpdates) {\n this._enableTransitions();\n\n let done = () => {\n this._disableTransitions();\n\n // Reset scroll position after animations (see above comment).\n if (!this._animatedContentOffset.isOrigin()) {\n // Get the content offset to scroll to, taking _animatedContentOffset into account.\n let {x, y} = this.getVisibleRect();\n this._resetAnimatedContentOffset();\n this._setContentOffset(new Point(x, y));\n }\n\n if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n };\n\n // Sometimes the animation takes slightly longer than expected.\n setTimeout(done, this.transitionDuration + 100);\n return;\n } else if (typeof context.afterAnimation === 'function') {\n context.afterAnimation();\n }\n }\n\n /**\n * Corrects DOM order of visible views to match item order of collection.\n */\n private _correctItemOrder() {\n // Defer until after scrolling and animated transactions are complete\n if (this._isScrolling || this._transaction) {\n return;\n }\n\n for (let key of this._visibleLayoutInfos.keys()) {\n let view = this._visibleViews.get(key);\n this._children.delete(view);\n this._children.add(view);\n }\n }\n\n private _enableTransitions() {\n this.delegate.beginAnimations();\n }\n\n private _disableTransitions() {\n this.delegate.endAnimations();\n }\n\n private _getScrollAnchor(): ScrollAnchor | null {\n if (!this.anchorScrollPosition) {\n return null;\n }\n\n let visibleRect = this.getVisibleRect();\n\n // Ask the delegate to provide a scroll anchor, if possible\n if (this.delegate.getScrollAnchor) {\n let key = this.delegate.getScrollAnchor(visibleRect);\n if (key != null) {\n let layoutInfo = this.layout.getLayoutInfo(key);\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n if (corner) {\n let key = layoutInfo.key;\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n return {key, layoutInfo, corner, offset};\n }\n }\n }\n\n // No need to anchor the scroll position if it is at the top\n if (visibleRect.y === 0 && !this.anchorScrollPositionAtTop) {\n return null;\n }\n\n // Find a view with a visible corner that has the smallest distance to the top of the collection view\n let cornerAnchor: ScrollAnchor | null = null;\n\n for (let [key, view] of this._visibleViews) {\n let layoutInfo = view.layoutInfo;\n if (layoutInfo && layoutInfo.rect.area > 0) {\n let corner = layoutInfo.rect.getCornerInRect(visibleRect);\n\n if (corner) {\n let offset = layoutInfo.rect[corner].y - visibleRect.y;\n if (!cornerAnchor || (offset < cornerAnchor.offset)) {\n cornerAnchor = {key, layoutInfo, corner, offset};\n }\n }\n }\n }\n\n return cornerAnchor;\n }\n\n private _restoreScrollAnchor(scrollAnchor: ScrollAnchor | null, context: InvalidationContext) {\n let contentOffset = this.getVisibleRect();\n\n if (scrollAnchor) {\n let finalAnchor = context.transaction?.animated\n ? context.transaction.finalMap.get(scrollAnchor.key)\n : this.layout.getLayoutInfo(scrollAnchor.layoutInfo.key);\n\n if (finalAnchor) {\n let adjustment = (finalAnchor.rect[scrollAnchor.corner].y - contentOffset.y) - scrollAnchor.offset;\n contentOffset.y += adjustment;\n }\n }\n\n return contentOffset;\n }\n\n getVisibleRect(): Rect {\n let v = this.visibleRect;\n let x = v.x - this._animatedContentOffset.x;\n let y = v.y - this._animatedContentOffset.y;\n return new Rect(x, y, v.width, v.height);\n }\n\n getVisibleLayoutInfos() {\n let rect = this.shouldOverscan ? this._overscanManager.getOverscannedRect() : this.getVisibleRect();\n this._visibleLayoutInfos = this._getLayoutInfoMap(rect);\n return this._visibleLayoutInfos;\n }\n\n private _getLayoutInfoMap(rect: Rect, copy = false) {\n let layoutInfos = this.layout.getVisibleLayoutInfos(rect);\n let map = new Map;\n\n for (let layoutInfo of layoutInfos) {\n if (copy) {\n layoutInfo = layoutInfo.copy();\n }\n\n map.set(layoutInfo.key, layoutInfo);\n }\n\n return map;\n }\n\n updateSubviews(forceUpdate = false) {\n if (!this._collection) {\n return;\n }\n\n let visibleLayoutInfos = this.getVisibleLayoutInfos();\n let currentlyVisible = this._visibleViews;\n let toAdd, toRemove, toUpdate;\n\n // If this is a force update, remove and re-add all views.\n // Otherwise, find and update the diff.\n if (forceUpdate) {\n toAdd = visibleLayoutInfos;\n toRemove = currentlyVisible;\n toUpdate = new Set();\n } else {\n ({toAdd, toRemove, toUpdate} = difference(currentlyVisible, visibleLayoutInfos));\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key);\n if (!view || !view.layoutInfo) {\n continue;\n }\n\n let item = this.getItem(visibleLayoutInfos.get(key).key);\n if (view.content === item) {\n toUpdate.delete(key);\n } else {\n // If the view type changes, delete and recreate the view instead of updating\n let {reuseType} = this._getReuseType(view.layoutInfo, item);\n if (view.viewType !== reuseType) {\n toUpdate.delete(key);\n toAdd.add(key);\n toRemove.add(key);\n }\n }\n }\n\n // We are done if the sets are equal\n if (toAdd.size === 0 && toRemove.size === 0 && toUpdate.size === 0) {\n if (this._transaction) {\n this._applyLayoutInfos();\n }\n\n return;\n }\n }\n\n // Track views that should be removed. They are not removed from\n // the DOM immediately, since we may reuse and need to re-insert\n // them back into the DOM anyway.\n let removed = new Set>();\n\n for (let key of toRemove.keys()) {\n let view = this._visibleViews.get(key);\n if (view) {\n removed.add(view);\n this._visibleViews.delete(key);\n\n // If we are in the middle of a transaction, wait until the end\n // of the animations to remove the views from the DOM. Also means\n // we can't reuse those views immediately.\n if (this._transaction) {\n this._transaction.toRemove.set(key, view);\n } else {\n this.reuseView(view);\n }\n }\n }\n\n for (let key of toAdd.keys()) {\n let layoutInfo = visibleLayoutInfos.get(key);\n let view: ReusableView | void;\n\n // If we're in a transaction, and a layout change happens\n // during the animations such that a view that was going\n // to be removed is now not, we don't create a new view\n // since the old one is still in the DOM, marked as toRemove.\n if (this._transaction) {\n // if transaction, get initial layout attributes for the animation\n if (this._transaction.initialLayoutInfo.has(key)) {\n layoutInfo = this._transaction.initialLayoutInfo.get(key);\n }\n\n view = this._transaction.toRemove.get(key);\n if (view) {\n this._transaction.toRemove.delete(key);\n this._applyLayoutInfo(view, layoutInfo);\n }\n }\n\n if (!view) {\n // Create or reuse a view for this row\n view = this.getReusableView(layoutInfo);\n\n // Add the view to the DOM if needed\n if (!removed.has(view)) {\n this._children.add(view);\n }\n }\n\n this._visibleViews.set(key, view);\n removed.delete(view);\n }\n\n for (let key of toUpdate) {\n let view = currentlyVisible.get(key) as ReusableView;\n this._renderedContent.delete(key);\n this._renderView(view);\n }\n\n // Remove the remaining rows to delete from the DOM\n if (!this._transaction) {\n this.removeViews(removed);\n }\n\n this._correctItemOrder();\n this._flushVisibleViews();\n\n let hasLayoutUpdates = this._transaction && (toAdd.size > 0 || toRemove.size > 0 || this._hasLayoutUpdates());\n if (hasLayoutUpdates) {\n requestAnimationFrame(() => {\n // If we're in a transaction, apply animations to visible views\n // and \"to be removed\" views, which animate off screen.\n if (this._transaction) {\n requestAnimationFrame(() => this._applyLayoutInfos());\n }\n });\n }\n\n return hasLayoutUpdates;\n }\n\n afterRender() {\n if (this.shouldOverscan) {\n this._overscanManager.collectMetrics();\n }\n }\n\n private _flushVisibleViews() {\n // CollectionVirtualizer deals with a flattened set of LayoutInfos, but they can represent heirarchy\n // by referencing a parentKey. Just before rendering the visible views, we rebuild this heirarchy\n // by creating a mapping of views by parent key and recursively calling the delegate's renderWrapper\n // method to build the final tree.\n let viewsByParentKey = new Map([[null, []]]);\n for (let view of this._children) {\n if (view.layoutInfo?.parentKey != null && !viewsByParentKey.has(view.layoutInfo.parentKey)) {\n viewsByParentKey.set(view.layoutInfo.parentKey, []);\n }\n\n viewsByParentKey.get(view.layoutInfo?.parentKey)?.push(view);\n if (!viewsByParentKey.has(view.layoutInfo?.key)) {\n viewsByParentKey.set(view.layoutInfo?.key, []);\n }\n }\n\n let buildTree = (parent: ReusableView, views: ReusableView[]): W[] => views.map(view => {\n let children = viewsByParentKey.get(view.layoutInfo.key);\n return this.delegate.renderWrapper(\n parent,\n view,\n children,\n (childViews) => buildTree(view, childViews)\n );\n });\n\n let children = buildTree(null, viewsByParentKey.get(null));\n this.delegate.setVisibleViews(children);\n }\n\n private _applyLayoutInfo(view: ReusableView, layoutInfo: LayoutInfo) {\n if (view.layoutInfo === layoutInfo) {\n return false;\n }\n\n view.layoutInfo = layoutInfo;\n return true;\n }\n\n private _applyLayoutInfos() {\n let updated = false;\n\n // Apply layout infos to visible views\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n // Apply final layout infos for views that will be removed\n if (this._transaction) {\n for (let view of this._transaction.toRemove.values()) {\n let cur = view.layoutInfo;\n if (cur?.key != null) {\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n for (let view of this._transaction.removed.values()) {\n let cur = view.layoutInfo;\n let layoutInfo = this._transaction.finalLayoutInfo.get(cur.key) || cur;\n layoutInfo = this.layout.getFinalLayoutInfo(layoutInfo.copy());\n if (this._applyLayoutInfo(view, layoutInfo)) {\n updated = true;\n }\n }\n }\n\n if (updated) {\n this._flushVisibleViews();\n }\n }\n\n private _hasLayoutUpdates() {\n if (!this._transaction) {\n return false;\n }\n\n for (let view of this._visibleViews.values()) {\n let cur = view.layoutInfo;\n if (!cur) {\n return true;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(cur.key);\n if (\n // Uses equals rather than pointEquals so that width/height changes are taken into account\n !cur.rect.equals(layoutInfo.rect) ||\n cur.opacity !== layoutInfo.opacity ||\n cur.transform !== layoutInfo.transform\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n reuseView(view: ReusableView) {\n view.prepareForReuse();\n this._reusableViews[view.viewType].push(view);\n }\n\n removeViews(toRemove: Set>) {\n for (let view of toRemove) {\n this._children.delete(view);\n }\n }\n\n updateItemSize(key: Key, size: Size) {\n // TODO: we should be able to invalidate a single index path\n // @ts-ignore\n if (!this.layout.updateItemSize) {\n return;\n }\n\n // If the scroll position is currently animating, add the update\n // to a queue to be processed after the animation is complete.\n if (this._scrollAnimation) {\n this._sizeUpdateQueue.set(key, size);\n return;\n }\n\n // @ts-ignore\n let changed = this.layout.updateItemSize(key, size);\n if (changed) {\n this.relayout();\n }\n }\n\n startScrolling() {\n this._isScrolling = true;\n }\n\n endScrolling() {\n this._isScrolling = false;\n this._correctItemOrder();\n this._flushVisibleViews();\n }\n\n private _resetAnimatedContentOffset() {\n // Reset the animated content offset of subviews. See comment in relayoutNow for details.\n if (!this._animatedContentOffset.isOrigin()) {\n this._animatedContentOffset = new Point(0, 0);\n this._applyLayoutInfos();\n }\n }\n\n /**\n * Scrolls the item with the given key into view, optionally with an animation.\n * @param key The key of the item to scroll into view.\n * @param duration The duration of the scroll animation.\n */\n scrollToItem(key: Key, options?: ScrollToItemOptions) {\n // key can be 0, so check if null or undefined\n if (key == null) {\n return;\n }\n\n let layoutInfo = this.layout.getLayoutInfo(key);\n if (!layoutInfo) {\n return;\n }\n\n let {\n duration = 300,\n shouldScrollX = true,\n shouldScrollY = true,\n offsetX = 0,\n offsetY = 0\n } = options;\n\n let x = this.visibleRect.x;\n let y = this.visibleRect.y;\n let minX = layoutInfo.rect.x - offsetX;\n let minY = layoutInfo.rect.y - offsetY;\n let maxX = x + this.visibleRect.width;\n let maxY = y + this.visibleRect.height;\n\n if (shouldScrollX) {\n if (minX <= x || maxX === 0) {\n x = minX;\n } else if (layoutInfo.rect.maxX > maxX) {\n x += layoutInfo.rect.maxX - maxX;\n }\n }\n\n if (shouldScrollY) {\n if (minY <= y || maxY === 0) {\n y = minY;\n } else if (layoutInfo.rect.maxY > maxY) {\n y += layoutInfo.rect.maxY - maxY;\n }\n }\n\n return this.scrollTo(new Point(x, y), duration);\n }\n\n /**\n * Performs an animated scroll to the given offset.\n * @param offset - The offset to scroll to.\n * @param duration The duration of the animation.\n * @returns A promise that resolves when the animation is complete.\n */\n scrollTo(offset: Point, duration: number = 300): Promise {\n // Cancel the current scroll animation\n if (this._scrollAnimation) {\n this._scrollAnimation.cancel();\n this._scrollAnimation = null;\n }\n\n // Set the content offset synchronously if the duration is zero\n if (duration <= 0 || this.visibleRect.pointEquals(offset)) {\n this._setContentOffset(offset);\n return Promise.resolve();\n }\n\n this.startScrolling();\n\n this._scrollAnimation = tween(this.visibleRect, offset, duration, easeOut, offset => {this._setContentOffset(offset);});\n this._scrollAnimation.then(() => {\n this._scrollAnimation = null;\n\n // Process view size updates that occurred during the animation.\n // Only views that are still visible will be actually updated.\n for (let [key, size] of this._sizeUpdateQueue) {\n this.updateItemSize(key, size);\n }\n\n this._sizeUpdateQueue.clear();\n this.relayout();\n this._processTransactionQueue();\n this.endScrolling();\n });\n\n return this._scrollAnimation;\n }\n\n private _runTransaction(action: () => void, animated?: boolean) {\n this._startTransaction();\n if (this._nextTransaction) {\n this._nextTransaction.actions.push(action);\n }\n this._endTransaction(animated);\n }\n\n private _startTransaction() {\n if (!this._nextTransaction) {\n this._nextTransaction = new Transaction;\n }\n\n this._nextTransaction.level++;\n }\n\n private _endTransaction(animated?: boolean) {\n if (!this._nextTransaction) {\n return false;\n }\n\n // Save whether the transaction should be animated.\n if (animated != null) {\n this._nextTransaction.animated = animated;\n }\n\n // If we haven't reached level 0, we are still in a\n // nested transaction. Wait for the parent to end.\n if (--this._nextTransaction.level > 0) {\n return false;\n }\n\n // Do nothing for empty transactions\n if (this._nextTransaction.actions.length === 0) {\n this._nextTransaction = null;\n return false;\n }\n\n // Default animations to true\n if (this._nextTransaction.animated == null) {\n this._nextTransaction.animated = true;\n }\n\n // Enqueue the transaction\n this._transactionQueue.push(this._nextTransaction);\n this._nextTransaction = null;\n\n this._processTransactionQueue();\n return true;\n }\n\n private _processTransactionQueue() {\n // If the current transaction is animating, wait until the end\n // to process the next transaction.\n if (this._transaction || this._scrollAnimation) {\n return;\n }\n\n let next = this._transactionQueue.shift();\n if (next) {\n this._performTransaction(next);\n }\n }\n\n private _getContentRect(): Rect {\n return new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n }\n\n private _performTransaction(transaction: Transaction) {\n this._transaction = transaction;\n\n this.relayoutNow({\n transaction: transaction,\n animated: transaction.animated,\n\n beforeLayout: () => {\n // Get the initial layout infos for all views before the updates\n // so we can figure out which views to add and remove.\n if (transaction.animated) {\n transaction.initialMap = this._getLayoutInfoMap(this._getContentRect(), true);\n }\n\n // Apply the actions that occurred during this transaction\n for (let action of transaction.actions) {\n action();\n }\n },\n\n afterLayout: () => {\n // Get the final layout infos after the updates\n if (transaction.animated) {\n transaction.finalMap = this._getLayoutInfoMap(this._getContentRect());\n this._setupTransactionAnimations(transaction);\n } else {\n this._transaction = null;\n }\n },\n\n afterAnimation: () => {\n // Remove and reuse views when animations are done\n if (transaction.toRemove.size > 0 || transaction.removed.size > 0) {\n for (let view of concatIterators(transaction.toRemove.values(), transaction.removed.values())) {\n this._children.delete(view);\n this.reuseView(view);\n }\n }\n\n this._transaction = null;\n\n // Ensure DOM order is correct for accessibility after animations are complete\n this._correctItemOrder();\n this._flushVisibleViews();\n\n this._processTransactionQueue();\n }\n });\n }\n\n private _setupTransactionAnimations(transaction: Transaction) {\n let {initialMap, finalMap} = transaction;\n\n // Store initial and final layout infos for animations\n for (let [key, layoutInfo] of initialMap) {\n if (finalMap.has(key)) {\n // Store the initial layout info for use during animations.\n transaction.initialLayoutInfo.set(key, layoutInfo);\n } else {\n // This view was removed. Store the layout info for use\n // in Layout#getFinalLayoutInfo during animations.\n transaction.finalLayoutInfo.set(layoutInfo.key, layoutInfo);\n }\n }\n\n // Get initial layout infos for views that were added\n for (let [key, layoutInfo] of finalMap) {\n if (!initialMap.has(key)) {\n let initialLayoutInfo = this.layout.getInitialLayoutInfo(layoutInfo.copy());\n transaction.initialLayoutInfo.set(key, initialLayoutInfo);\n }\n }\n\n // Figure out which views were removed.\n for (let [key, view] of this._visibleViews) {\n // If an item has a width of 0, there is no need to remove it from the _visibleViews.\n // Removing an item with width of 0 can cause a loop where the item gets added, removed,\n // added, removed... etc in a loop.\n if (!finalMap.has(key) && view.layoutInfo.rect.width > 0) {\n transaction.removed.set(key, view);\n this._visibleViews.delete(key);\n\n // In case something weird happened, where we have a view but no\n // initial layout info, use the one attached to the view.\n if (view.layoutInfo) {\n if (!transaction.finalLayoutInfo.has(view.layoutInfo.key)) {\n transaction.finalLayoutInfo.set(view.layoutInfo.key, view.layoutInfo);\n }\n }\n }\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection} from '@react-types/shared';\nimport {Key, useCallback, useEffect, useMemo, useState} from 'react';\nimport {Layout} from './Layout';\nimport {Rect} from './Rect';\nimport {ReusableView} from './ReusableView';\nimport {Size} from './Size';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {Virtualizer} from './Virtualizer';\n\ninterface VirtualizerProps {\n renderView(type: string, content: T): V,\n renderWrapper(\n parent: ReusableView | null,\n reusableView: ReusableView,\n children: ReusableView[],\n renderChildren: (views: ReusableView[]) => W[]\n ): W,\n layout: Layout,\n collection: Collection,\n onVisibleRectChange(rect: Rect): void,\n getScrollAnchor?(rect: Rect): Key,\n transitionDuration?: number\n}\n\nexport interface VirtualizerState {\n visibleViews: W[],\n setVisibleRect: (rect: Rect) => void,\n contentSize: Size,\n isAnimating: boolean,\n virtualizer: Virtualizer,\n isScrolling: boolean,\n startScrolling: () => void,\n endScrolling: () => void\n}\n\nexport function useVirtualizerState(opts: VirtualizerProps): VirtualizerState {\n let [visibleViews, setVisibleViews] = useState([]);\n let [contentSize, setContentSize] = useState(new Size());\n let [isAnimating, setAnimating] = useState(false);\n let [isScrolling, setScrolling] = useState(false);\n let virtualizer = useMemo(() => new Virtualizer(), []);\n\n virtualizer.delegate = {\n setVisibleViews,\n setVisibleRect(rect) {\n virtualizer.visibleRect = rect;\n opts.onVisibleRectChange(rect);\n },\n setContentSize,\n renderView: opts.renderView,\n renderWrapper: opts.renderWrapper,\n beginAnimations: () => setAnimating(true),\n endAnimations: () => setAnimating(false),\n getScrollAnchor: opts.getScrollAnchor\n };\n\n virtualizer.layout = opts.layout;\n virtualizer.collection = opts.collection;\n virtualizer.transitionDuration = opts.transitionDuration;\n\n useLayoutEffect(() => {\n virtualizer.afterRender();\n });\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => virtualizer.willUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let setVisibleRect = useCallback((rect) => {\n virtualizer.visibleRect = rect;\n }, [virtualizer]);\n let startScrolling = useCallback(() => {\n virtualizer.startScrolling();\n setScrolling(true);\n }, [virtualizer]);\n let endScrolling = useCallback(() => {\n virtualizer.endScrolling();\n setScrolling(false);\n }, [virtualizer]);\n\n let state = useMemo(() => ({\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n }), [\n virtualizer,\n visibleViews,\n setVisibleRect,\n contentSize,\n isAnimating,\n isScrolling,\n startScrolling,\n endScrolling\n ]);\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ntype Assertiveness = 'assertive' | 'polite';\n\n/* Inspired by https://github.com/AlmeroSteyn/react-aria-live */\nconst LIVEREGION_TIMEOUT_DELAY = 7000;\n\nlet liveAnnouncer: LiveAnnouncer = null;\n\n/**\n * Announces the message using screen reader technology.\n */\nexport function announce(\n message: string,\n assertiveness: Assertiveness = 'assertive',\n timeout = LIVEREGION_TIMEOUT_DELAY\n) {\n if (!liveAnnouncer) {\n liveAnnouncer = new LiveAnnouncer();\n }\n\n liveAnnouncer.announce(message, assertiveness, timeout);\n}\n\n/**\n * Stops all queued announcements.\n */\nexport function clearAnnouncer(assertiveness: Assertiveness) {\n if (liveAnnouncer) {\n liveAnnouncer.clear(assertiveness);\n }\n}\n\n/**\n * Removes the announcer from the DOM.\n */\nexport function destroyAnnouncer() {\n if (liveAnnouncer) {\n liveAnnouncer.destroy();\n liveAnnouncer = null;\n }\n}\n\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass LiveAnnouncer {\n node: HTMLElement;\n assertiveLog: HTMLElement;\n politeLog: HTMLElement;\n\n constructor() {\n this.node = document.createElement('div');\n this.node.dataset.liveAnnouncer = 'true';\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n });\n\n this.assertiveLog = this.createLog('assertive');\n this.node.appendChild(this.assertiveLog);\n\n this.politeLog = this.createLog('polite');\n this.node.appendChild(this.politeLog);\n\n document.body.prepend(this.node);\n }\n\n createLog(ariaLive: string) {\n let node = document.createElement('div');\n node.setAttribute('role', 'log');\n node.setAttribute('aria-live', ariaLive);\n node.setAttribute('aria-relevant', 'additions');\n return node;\n }\n\n destroy() {\n if (!this.node) {\n return;\n }\n\n document.body.removeChild(this.node);\n this.node = null;\n }\n\n announce(message: string, assertiveness = 'assertive', timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) {\n return;\n }\n\n let node = document.createElement('div');\n node.textContent = message;\n\n if (assertiveness === 'assertive') {\n this.assertiveLog.appendChild(node);\n } else {\n this.politeLog.appendChild(node);\n }\n\n if (message !== '') {\n setTimeout(() => {\n node.remove();\n }, timeout);\n }\n }\n\n clear(assertiveness: Assertiveness) {\n if (!this.node) {\n return;\n }\n\n if (!assertiveness || assertiveness === 'assertive') {\n this.assertiveLog.innerHTML = '';\n }\n\n if (!assertiveness || assertiveness === 'polite') {\n this.politeLog.innerHTML = '';\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type {GridCollection} from '@react-types/grid';\nimport type {GridState} from '@react-stately/grid';\nimport {Key} from 'react';\nimport type {KeyboardDelegate} from '@react-types/shared';\n\ninterface GridMapShared {\n keyboardDelegate: KeyboardDelegate,\n actions: {\n onRowAction: (key: Key) => void,\n onCellAction: (key: Key) => void\n }\n}\n\n// Used to share:\n// keyboard delegate between useGrid and useGridCell\n// onRowAction/onCellAction across hooks\nexport const gridMap = new WeakMap>, GridMapShared>();\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '@react-aria/live-announcer';\nimport {Collection, Node, Selection} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key, useRef} from 'react';\nimport {SelectionManager} from '@react-stately/selection';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useUpdateEffect} from '@react-aria/utils';\n\nexport interface GridSelectionAnnouncementProps {\n /**\n * A function that returns the text that should be announced by assistive technology when a row is added or removed from selection.\n * @default (key) => state.collection.getItem(key)?.textValue\n */\n getRowText?: (key: Key) => string\n}\n\ninterface GridSelectionState {\n /** A collection of items in the grid. */\n collection: Collection>,\n /** A set of items that are disabled. */\n disabledKeys: Set,\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\nexport function useGridSelectionAnnouncement(props: GridSelectionAnnouncementProps, state: GridSelectionState) {\n let {\n getRowText = (key) => state.collection.getItem(key)?.textValue\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n // Many screen readers do not announce when items in a grid are selected/deselected.\n // We do this using an ARIA live region.\n let selection = state.selectionManager.rawSelection;\n let lastSelection = useRef(selection);\n useUpdateEffect(() => {\n if (!state.selectionManager.isFocused) {\n lastSelection.current = selection;\n\n return;\n }\n\n let addedKeys = diffSelection(selection, lastSelection.current);\n let removedKeys = diffSelection(lastSelection.current, selection);\n\n // If adding or removing a single row from the selection, announce the name of that item.\n let isReplace = state.selectionManager.selectionBehavior === 'replace';\n let messages = [];\n\n if ((state.selectionManager.selectedKeys.size === 1 && isReplace)) {\n if (state.collection.getItem(state.selectionManager.selectedKeys.keys().next().value)) {\n let currentSelectionText = getRowText(state.selectionManager.selectedKeys.keys().next().value);\n if (currentSelectionText) {\n messages.push(stringFormatter.format('selectedItem', {item: currentSelectionText}));\n }\n }\n } else if (addedKeys.size === 1 && removedKeys.size === 0) {\n let addedText = getRowText(addedKeys.keys().next().value);\n if (addedText) {\n messages.push(stringFormatter.format('selectedItem', {item: addedText}));\n }\n } else if (removedKeys.size === 1 && addedKeys.size === 0) {\n if (state.collection.getItem(removedKeys.keys().next().value)) {\n let removedText = getRowText(removedKeys.keys().next().value);\n if (removedText) {\n messages.push(stringFormatter.format('deselectedItem', {item: removedText}));\n }\n }\n }\n\n // Announce how many items are selected, except when selecting the first item.\n if (state.selectionManager.selectionMode === 'multiple') {\n if (messages.length === 0 || selection === 'all' || selection.size > 1 || lastSelection.current === 'all' || lastSelection.current?.size > 1) {\n messages.push(selection === 'all'\n ? stringFormatter.format('selectedAll')\n : stringFormatter.format('selectedCount', {count: selection.size})\n );\n }\n }\n\n if (messages.length > 0) {\n announce(messages.join(' '));\n }\n\n lastSelection.current = selection;\n }, [selection]);\n}\n\nfunction diffSelection(a: Selection, b: Selection): Set {\n let res = new Set();\n if (a === 'all' || b === 'all') {\n return res;\n }\n\n for (let key of a.keys()) {\n if (!b.has(key)) {\n res.add(key);\n }\n }\n\n return res;\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MultipleSelectionManager} from '@react-stately/selection';\nimport {useDescription} from '@react-aria/utils';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\nexport interface HighlightSelectionDescriptionProps {\n selectionManager: MultipleSelectionManager,\n hasItemActions?: boolean\n}\n\n/**\n * Computes the description for a grid selectable collection.\n * @param props\n */\nexport function useHighlightSelectionDescription(props: HighlightSelectionDescriptionProps): AriaLabelingProps {\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let modality = useInteractionModality();\n // null is the default if the user hasn't interacted with the table at all yet or the rest of the page\n let shouldLongPress = (modality === 'pointer' || modality === 'virtual' || modality == null)\n && typeof window !== 'undefined' && 'ontouchstart' in window;\n\n let interactionDescription = useMemo(() => {\n let selectionMode = props.selectionManager.selectionMode;\n let selectionBehavior = props.selectionManager.selectionBehavior;\n\n let message = undefined;\n if (shouldLongPress) {\n message = stringFormatter.format('longPressToSelect');\n }\n\n return selectionBehavior === 'replace' && selectionMode !== 'none' && props.hasItemActions ? message : undefined;\n }, [props.selectionManager.selectionMode, props.selectionManager.selectionBehavior, props.hasItemActions, stringFormatter, shouldLongPress]);\n\n let descriptionProps = useDescription(interactionDescription);\n return descriptionProps;\n}\n","import {AriaCheckboxProps} from '@react-types/checkbox';\nimport {GridCollection} from '@react-types/grid';\nimport {GridState} from '@react-stately/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {Key} from 'react';\nimport {useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\n\nexport interface AriaGridSelectionCheckboxProps {\n /** A unique key for the checkbox. */\n key: Key\n}\n\nexport interface GridSelectionCheckboxAria {\n /** Props for the row selection checkbox element. */\n checkboxProps: AriaCheckboxProps\n}\n\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid.\n * @param props - Props for the selection checkbox.\n * @param state - State of the grid, as returned by `useGridState`.\n */\nexport function useGridSelectionCheckbox>(props: AriaGridSelectionCheckboxProps, state: GridState): GridSelectionCheckboxAria {\n let {key} = props;\n\n let manager = state.selectionManager;\n let checkboxId = useId();\n let isDisabled = !state.selectionManager.canSelectItem(key);\n let isSelected = state.selectionManager.isSelected(key);\n\n let onChange = () => manager.select(key);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return {\n checkboxProps: {\n id: checkboxId,\n 'aria-label': stringFormatter.format('select'),\n isSelected,\n isDisabled,\n onChange\n }\n };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"deselectedItem\": \"{item} غير المحدد\",\n \"longPressToSelect\": \"اضغط مطولًا للدخول إلى وضع التحديد.\",\n \"select\": \"تحديد\",\n \"selectedAll\": \"جميع العناصر المحددة.\",\n \"selectedCount\": \"{count, plural, =0 {لم يتم تحديد عناصر} one {# عنصر محدد} other {# عنصر محدد}}.\",\n \"selectedItem\": \"{item} المحدد\"\n}\n","{\n \"deselectedItem\": \"{item} не е избран.\",\n \"longPressToSelect\": \"Натиснете и задръжте за да влезете в избирателен режим.\",\n \"select\": \"Изберете\",\n \"selectedAll\": \"Всички елементи са избрани.\",\n \"selectedCount\": \"{count, plural, =0 {Няма избрани елементи} one {# избран елемент} other {# избрани елементи}}.\",\n \"selectedItem\": \"{item} избран.\"\n}\n","{\n \"deselectedItem\": \"Položka {item} není vybrána.\",\n \"longPressToSelect\": \"Dlouhým stisknutím přejdete do režimu výběru.\",\n \"select\": \"Vybrat\",\n \"selectedAll\": \"Vybrány všechny položky.\",\n \"selectedCount\": \"{count, plural, =0 {Nevybrány žádné položky} one {Vybrána # položka} other {Vybráno # položek}}.\",\n \"selectedItem\": \"Vybrána položka {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} ikke valgt.\",\n \"longPressToSelect\": \"Lav et langt tryk for at aktivere valgtilstand.\",\n \"select\": \"Vælg\",\n \"selectedAll\": \"Alle elementer valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer valgt} one {# element valgt} other {# elementer valgt}}.\",\n \"selectedItem\": \"{item} valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} nicht ausgewählt.\",\n \"longPressToSelect\": \"Gedrückt halten, um Auswahlmodus zu öffnen.\",\n \"select\": \"Auswählen\",\n \"selectedAll\": \"Alle Elemente ausgewählt.\",\n \"selectedCount\": \"{count, plural, =0 {Keine Elemente ausgewählt} one {# Element ausgewählt} other {# Elemente ausgewählt}}.\",\n \"selectedItem\": \"{item} ausgewählt.\"\n}\n","{\n \"deselectedItem\": \"Δεν επιλέχθηκε το στοιχείο {item}.\",\n \"longPressToSelect\": \"Πατήστε παρατεταμένα για να μπείτε σε λειτουργία επιλογής.\",\n \"select\": \"Επιλογή\",\n \"selectedAll\": \"Επιλέχθηκαν όλα τα στοιχεία.\",\n \"selectedCount\": \"{count, plural, =0 {Δεν επιλέχθηκαν στοιχεία} one {Επιλέχθηκε # στοιχείο} other {Επιλέχθηκαν # στοιχεία}}.\",\n \"selectedItem\": \"Επιλέχθηκε το στοιχείο {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} not selected.\",\n \"select\": \"Select\",\n \"selectedCount\": \"{count, plural, =0 {No items selected} one {# item selected} other {# items selected}}.\",\n \"selectedAll\": \"All items selected.\",\n \"selectedItem\": \"{item} selected.\",\n \"longPressToSelect\": \"Long press to enter selection mode.\"\n}\n","{\n \"deselectedItem\": \"{item} no seleccionado.\",\n \"longPressToSelect\": \"Mantenga pulsado para abrir el modo de selección.\",\n \"select\": \"Seleccionar\",\n \"selectedAll\": \"Todos los elementos seleccionados.\",\n \"selectedCount\": \"{count, plural, =0 {Ningún elemento seleccionado} one {# elemento seleccionado} other {# elementos seleccionados}}.\",\n \"selectedItem\": \"{item} seleccionado.\"\n}\n","{\n \"deselectedItem\": \"{item} pole valitud.\",\n \"longPressToSelect\": \"Valikurežiimi sisenemiseks vajutage pikalt.\",\n \"select\": \"Vali\",\n \"selectedAll\": \"Kõik üksused valitud.\",\n \"selectedCount\": \"{count, plural, =0 {Üksusi pole valitud} one {# üksus valitud} other {# üksust valitud}}.\",\n \"selectedItem\": \"{item} valitud.\"\n}\n","{\n \"deselectedItem\": \"Kohdetta {item} ei valittu.\",\n \"longPressToSelect\": \"Siirry valintatilaan painamalla pitkään.\",\n \"select\": \"Valitse\",\n \"selectedAll\": \"Kaikki kohteet valittu.\",\n \"selectedCount\": \"{count, plural, =0 {Ei yhtään kohdetta valittu} one {# kohde valittu} other {# kohdetta valittu}}.\",\n \"selectedItem\": \"{item} valittu.\"\n}\n","{\n \"deselectedItem\": \"{item} non sélectionné.\",\n \"longPressToSelect\": \"Appuyez de manière prolongée pour passer en mode de sélection.\",\n \"select\": \"Sélectionner\",\n \"selectedAll\": \"Tous les éléments sélectionnés.\",\n \"selectedCount\": \"{count, plural, =0 {Aucun élément sélectionné} one {# élément sélectionné} other {# éléments sélectionnés}}.\",\n \"selectedItem\": \"{item} sélectionné.\"\n}\n","{\n \"deselectedItem\": \"{item} לא נבחר.\",\n \"longPressToSelect\": \"הקשה ארוכה לכניסה למצב בחירה.\",\n \"select\": \"בחר\",\n \"selectedAll\": \"כל הפריטים נבחרו.\",\n \"selectedCount\": \"{count, plural, =0 {לא נבחרו פריטים} one {פריט # נבחר} other {# פריטים נבחרו}}.\",\n \"selectedItem\": \"{item} נבחר.\"\n}\n","{\n \"deselectedItem\": \"Stavka {item} nije odabrana.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u način odabira.\",\n \"select\": \"Odaberite\",\n \"selectedAll\": \"Odabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije odabrana nijedna stavka} one {Odabrana je # stavka} other {Odabrano je # stavki}}.\",\n \"selectedItem\": \"Stavka {item} je odabrana.\"\n}\n","{\n \"deselectedItem\": \"{item} nincs kijelölve.\",\n \"longPressToSelect\": \"Nyomja hosszan a kijelöléshez.\",\n \"select\": \"Kijelölés\",\n \"selectedAll\": \"Az összes elem kijelölve.\",\n \"selectedCount\": \"{count, plural, =0 {Egy elem sincs kijelölve} one {# elem kijelölve} other {# elem kijelölve}}.\",\n \"selectedItem\": \"{item} kijelölve.\"\n}\n","{\n \"deselectedItem\": \"{item} non selezionato.\",\n \"longPressToSelect\": \"Premi a lungo per passare alla modalità di selezione.\",\n \"select\": \"Seleziona\",\n \"selectedAll\": \"Tutti gli elementi selezionati.\",\n \"selectedCount\": \"{count, plural, =0 {Nessun elemento selezionato} one {# elemento selezionato} other {# elementi selezionati}}.\",\n \"selectedItem\": \"{item} selezionato.\"\n}\n","{\n \"deselectedItem\": \"{item} が選択されていません。\",\n \"longPressToSelect\": \"長押しして選択モードを開きます。\",\n \"select\": \"選択\",\n \"selectedAll\": \"すべての項目を選択しました。\",\n \"selectedCount\": \"{count, plural, =0 {項目が選択されていません} one {# 項目を選択しました} other {# 項目を選択しました}}。\",\n \"selectedItem\": \"{item} を選択しました。\"\n}\n","{\n \"deselectedItem\": \"{item}이(가) 선택되지 않았습니다.\",\n \"longPressToSelect\": \"선택 모드로 들어가려면 길게 누르십시오.\",\n \"select\": \"선택\",\n \"selectedAll\": \"모든 항목이 선택되었습니다.\",\n \"selectedCount\": \"{count, plural, =0 {선택된 항목이 없습니다} one {#개 항목이 선택되었습니다} other {#개 항목이 선택되었습니다}}.\",\n \"selectedItem\": \"{item}이(가) 선택되었습니다.\"\n}\n","{\n \"deselectedItem\": \"{item} nepasirinkta.\",\n \"longPressToSelect\": \"Norėdami įjungti pasirinkimo režimą, paspauskite ir palaikykite.\",\n \"select\": \"Pasirinkti\",\n \"selectedAll\": \"Pasirinkti visi elementai.\",\n \"selectedCount\": \"{count, plural, =0 {Nepasirinktas nė vienas elementas} one {Pasirinktas # elementas} other {Pasirinkta elementų: #}}.\",\n \"selectedItem\": \"Pasirinkta: {item}.\"\n}\n","{\n \"deselectedItem\": \"Vienums {item} nav atlasīts.\",\n \"longPressToSelect\": \"Ilgi turiet nospiestu. lai ieslēgtu atlases režīmu.\",\n \"select\": \"Atlasīt\",\n \"selectedAll\": \"Atlasīti visi vienumi.\",\n \"selectedCount\": \"{count, plural, =0 {Nav atlasīts neviens vienums} one {Atlasīto vienumu skaits: #} other {Atlasīto vienumu skaits: #}}.\",\n \"selectedItem\": \"Atlasīts vienums {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} er ikke valgt.\",\n \"longPressToSelect\": \"Bruk et langt trykk for å gå inn i valgmodus.\",\n \"select\": \"Velg\",\n \"selectedAll\": \"Alle elementer er valgt.\",\n \"selectedCount\": \"{count, plural, =0 {Ingen elementer er valgt} one {# element er valgt} other {# elementer er valgt}}.\",\n \"selectedItem\": \"{item} er valgt.\"\n}\n","{\n \"deselectedItem\": \"{item} niet geselecteerd.\",\n \"longPressToSelect\": \"Druk lang om de selectiemodus te openen.\",\n \"select\": \"Selecteren\",\n \"selectedAll\": \"Alle items geselecteerd.\",\n \"selectedCount\": \"{count, plural, =0 {Geen items geselecteerd} one {# item geselecteerd} other {# items geselecteerd}}.\",\n \"selectedItem\": \"{item} geselecteerd.\"\n}\n","{\n \"deselectedItem\": \"Nie zaznaczono {item}.\",\n \"longPressToSelect\": \"Naciśnij i przytrzymaj, aby wejść do trybu wyboru.\",\n \"select\": \"Zaznacz\",\n \"selectedAll\": \"Wszystkie zaznaczone elementy.\",\n \"selectedCount\": \"{count, plural, =0 {Nie zaznaczono żadnych elementów} one {# zaznaczony element} other {# zaznaczonych elementów}}.\",\n \"selectedItem\": \"Zaznaczono {item}.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Mantenha pressionado para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} não selecionado.\",\n \"longPressToSelect\": \"Prima continuamente para entrar no modo de seleção.\",\n \"select\": \"Selecionar\",\n \"selectedAll\": \"Todos os itens selecionados.\",\n \"selectedCount\": \"{count, plural, =0 {Nenhum item selecionado} one {# item selecionado} other {# itens selecionados}}.\",\n \"selectedItem\": \"{item} selecionado.\"\n}\n","{\n \"deselectedItem\": \"{item} neselectat.\",\n \"longPressToSelect\": \"Apăsați lung pentru a intra în modul de selectare.\",\n \"select\": \"Selectare\",\n \"selectedAll\": \"Toate elementele selectate.\",\n \"selectedCount\": \"{count, plural, =0 {Niciun element selectat} one {# element selectat} other {# elemente selectate}}.\",\n \"selectedItem\": \"{item} selectat.\"\n}\n","{\n \"deselectedItem\": \"{item} не выбрано.\",\n \"longPressToSelect\": \"Нажмите и удерживайте для входа в режим выбора.\",\n \"select\": \"Выбрать\",\n \"selectedAll\": \"Выбраны все элементы.\",\n \"selectedCount\": \"{count, plural, =0 {Нет выбранных элементов} one {# элемент выбран} other {# элементов выбрано}}.\",\n \"selectedItem\": \"{item} выбрано.\"\n}\n","{\n \"deselectedItem\": \"Nevybraté položky: {item}.\",\n \"longPressToSelect\": \"Dlhším stlačením prejdite do režimu výberu.\",\n \"select\": \"Vybrať\",\n \"selectedAll\": \"Všetky vybraté položky.\",\n \"selectedCount\": \"{count, plural, =0 {Žiadne vybraté položky} one {# vybratá položka} other {Počet vybratých položiek:#}}.\",\n \"selectedItem\": \"Vybraté položky: {item}.\"\n}\n","{\n \"deselectedItem\": \"Element {item} ni izbran.\",\n \"longPressToSelect\": \"Za izbirni način pritisnite in dlje časa držite.\",\n \"select\": \"Izberite\",\n \"selectedAll\": \"Vsi elementi so izbrani.\",\n \"selectedCount\": \"{count, plural, =0 {Noben element ni izbran} one {# element je izbran} other {# elementov je izbranih}}.\",\n \"selectedItem\": \"Element {item} je izbran.\"\n}\n","{\n \"deselectedItem\": \"{item} nije izabrano.\",\n \"longPressToSelect\": \"Dugo pritisnite za ulazak u režim biranja.\",\n \"select\": \"Izaberite\",\n \"selectedAll\": \"Izabrane su sve stavke.\",\n \"selectedCount\": \"{count, plural, =0 {Nije izabrana nijedna stavka} one {Izabrana je # stavka} other {Izabrano je # stavki}}.\",\n \"selectedItem\": \"{item} je izabrano.\"\n}\n","{\n \"deselectedItem\": \"{item} ej markerat.\",\n \"longPressToSelect\": \"Tryck länge när du vill öppna väljarläge.\",\n \"select\": \"Markera\",\n \"selectedAll\": \"Alla markerade objekt.\",\n \"selectedCount\": \"{count, plural, =0 {Inga markerade objekt} one {# markerat objekt} other {# markerade objekt}}.\",\n \"selectedItem\": \"{item} markerat.\"\n}\n","{\n \"deselectedItem\": \"{item} seçilmedi.\",\n \"longPressToSelect\": \"Seçim moduna girmek için uzun basın.\",\n \"select\": \"Seç\",\n \"selectedAll\": \"Tüm ögeler seçildi.\",\n \"selectedCount\": \"{count, plural, =0 {Hiçbir öge seçilmedi} one {# öge seçildi} other {# öge seçildi}}.\",\n \"selectedItem\": \"{item} seçildi.\"\n}\n","{\n \"deselectedItem\": \"{item} не вибрано.\",\n \"longPressToSelect\": \"Виконайте довге натиснення, щоб перейти в режим вибору.\",\n \"select\": \"Вибрати\",\n \"selectedAll\": \"Усі елементи вибрано.\",\n \"selectedCount\": \"{count, plural, =0 {Жодних елементів не вибрано} one {# елемент вибрано} other {Вибрано елементів: #}}.\",\n \"selectedItem\": \"{item} вибрано.\"\n}\n","{\n \"deselectedItem\": \"未选择 {item}。\",\n \"longPressToSelect\": \"长按以进入选择模式。\",\n \"select\": \"选择\",\n \"selectedAll\": \"已选择所有项目。\",\n \"selectedCount\": \"{count, plural, =0 {未选择项目} one {已选择 # 个项目} other {已选择 # 个项目}}。\",\n \"selectedItem\": \"已选择 {item}。\"\n}\n","{\n \"deselectedItem\": \"未選取「{item}」。\",\n \"longPressToSelect\": \"長按以進入選擇模式。\",\n \"select\": \"選取\",\n \"selectedAll\": \"已選取所有項目。\",\n \"selectedCount\": \"{count, plural, =0 {未選取任何項目} one {已選取 # 個項目} other {已選取 # 個項目}}。\",\n \"selectedItem\": \"已選取「{item}」。\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Key} from 'react';\nimport type {ListState} from '@react-stately/list';\n\ninterface ListMapShared {\n id: string,\n onAction: (key: Key) => void\n}\n\n// Used to share:\n// id of the list and onAction between useList, useListItem, and useListSelectionCheckbox\nexport const listMap = new WeakMap, ListMapShared>();\n\nexport function getRowId(state: ListState, key: Key) {\n let {id} = listMap.get(state);\n if (!id) {\n throw new Error('Unknown list');\n }\n\n return `${id}-${normalizeKey(key)}`;\n}\n\nexport function normalizeKey(key: Key): string {\n if (typeof key === 'string') {\n return key.replace(/\\s*/g, '');\n }\n\n return '' + key;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n CollectionBase,\n DisabledBehavior,\n DOMAttributes,\n DOMProps,\n KeyboardDelegate,\n MultipleSelection\n} from '@react-types/shared';\nimport {filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {Key, RefObject} from 'react';\nimport {listMap} from './utils';\nimport {ListState} from '@react-stately/list';\nimport {useGridSelectionAnnouncement, useHighlightSelectionDescription} from '@react-aria/grid';\nimport {useSelectableList} from '@react-aria/selection';\n\nexport interface GridListProps extends CollectionBase, MultipleSelection {\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /** Whether `disabledKeys` applies to all interactions, or only selection. */\n disabledBehavior?: DisabledBehavior\n}\n\nexport interface AriaGridListProps extends GridListProps, DOMProps, AriaLabelingProps {}\n\nexport interface AriaGridListOptions extends Omit, 'children'> {\n /** Whether the list uses virtual scrolling. */\n isVirtualized?: boolean,\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface GridListAria {\n /** Props for the grid element. */\n gridProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a list component with interactive children.\n * A grid list displays data in a single column and enables a user to navigate its contents via directional navigation keys.\n * @param props - Props for the list.\n * @param state - State for the list, as returned by `useListState`.\n * @param ref - The ref attached to the list element.\n */\nexport function useGridList(props: AriaGridListOptions, state: ListState, ref: RefObject): GridListAria {\n let {\n isVirtualized,\n keyboardDelegate,\n onAction\n } = props;\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n }\n\n let {listProps} = useSelectableList({\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref,\n keyboardDelegate: keyboardDelegate,\n isVirtualized,\n selectOnFocus: state.selectionManager.selectionBehavior === 'replace'\n });\n\n let id = useId();\n listMap.set(state, {id, onAction});\n\n let descriptionProps = useHighlightSelectionDescription({\n selectionManager: state.selectionManager,\n hasItemActions: !!onAction\n });\n\n let domProps = filterDOMProps(props, {labelable: true});\n let gridProps: DOMAttributes = mergeProps(\n domProps,\n {\n role: 'grid',\n id,\n 'aria-multiselectable': state.selectionManager.selectionMode === 'multiple' ? 'true' : undefined\n },\n state.collection.size === 0 ? {} : listProps,\n descriptionProps\n );\n\n if (isVirtualized) {\n gridProps['aria-rowcount'] = state.collection.size;\n gridProps['aria-colcount'] = 1;\n }\n\n useGridSelectionAnnouncement({}, state);\n\n return {\n gridProps\n };\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableElement, Node as RSNode} from '@react-types/shared';\nimport {focusSafely, getFocusableTreeWalker} from '@react-aria/focus';\nimport {getRowId, listMap} from './utils';\nimport {isFocusVisible} from '@react-aria/interactions';\nimport type {ListState} from '@react-stately/list';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\nimport {KeyboardEvent as ReactKeyboardEvent, RefObject} from 'react';\nimport {SelectableItemStates, useSelectableItem} from '@react-aria/selection';\nimport {useLocale} from '@react-aria/i18n';\n\nexport interface AriaGridListItemOptions {\n /** An object representing the list item. Contains all the relevant information that makes up the list row. */\n node: RSNode,\n /** Whether the list row is contained in a virtual scroller. */\n isVirtualized?: boolean,\n /** Whether selection should occur on press up instead of press down. */\n shouldSelectOnPressUp?: boolean\n}\n\nexport interface GridListItemAria extends SelectableItemStates {\n /** Props for the list row element. */\n rowProps: DOMAttributes,\n /** Props for the grid cell element within the list row. */\n gridCellProps: DOMAttributes,\n /** Props for the list item description element, if any. */\n descriptionProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a row in a grid list.\n * @param props - Props for the row.\n * @param state - State of the parent list, as returned by `useListState`.\n * @param ref - The ref attached to the row element.\n */\nexport function useGridListItem(props: AriaGridListItemOptions, state: ListState, ref: RefObject): GridListItemAria {\n // Copied from useGridCell + some modifications to make it not so grid specific\n let {\n node,\n isVirtualized,\n shouldSelectOnPressUp\n } = props;\n\n let {direction} = useLocale();\n let {onAction} = listMap.get(state);\n let descriptionId = useSlotId();\n let focus = () => {\n // Don't shift focus to the row if the active element is a element within the row already\n // (e.g. clicking on a row button)\n if (!ref.current.contains(document.activeElement)) {\n focusSafely(ref.current);\n }\n };\n\n let {itemProps, ...itemStates} = useSelectableItem({\n selectionManager: state.selectionManager,\n key: node.key,\n ref,\n isVirtualized,\n shouldSelectOnPressUp,\n onAction: onAction ? () => onAction(node.key) : undefined,\n focus\n });\n\n let onKeyDown = (e: ReactKeyboardEvent) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n switch (e.key) {\n case 'ArrowLeft': {\n // Find the next focusable element within the row.\n let focusable = direction === 'rtl'\n ? walker.nextNode() as FocusableElement\n : walker.previousNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n // If there is no next focusable child, then return focus back to the row\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n let focusable = direction === 'rtl'\n ? walker.previousNode() as FocusableElement\n : walker.nextNode() as FocusableElement;\n\n if (focusable) {\n e.preventDefault();\n e.stopPropagation();\n focusSafely(focusable);\n } else {\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'ltr') {\n focusSafely(ref.current);\n } else {\n walker.currentNode = ref.current;\n let lastElement = last(walker);\n if (lastElement) {\n focusSafely(lastElement);\n }\n }\n }\n break;\n }\n case 'ArrowUp':\n case 'ArrowDown':\n // Prevent this event from reaching row children, e.g. menu buttons. We want arrow keys to navigate\n // to the row above/below instead. We need to re-dispatch the event from a higher parent so it still\n // bubbles and gets handled by useSelectableCollection.\n if (!e.altKey && ref.current.contains(e.target as Element)) {\n e.stopPropagation();\n e.preventDefault();\n ref.current.parentElement.dispatchEvent(\n new KeyboardEvent(e.nativeEvent.type, e.nativeEvent)\n );\n }\n break;\n }\n };\n\n let onFocus = (e) => {\n if (e.target !== ref.current) {\n // useSelectableItem only handles setting the focused key when\n // the focused element is the row itself. We also want to\n // set the focused key when a child element receives focus.\n // If focus is currently visible (e.g. the user is navigating with the keyboard),\n // then skip this. We want to restore focus to the previously focused row\n // in that case since the list should act like a single tab stop.\n if (!isFocusVisible()) {\n state.selectionManager.setFocusedKey(node.key);\n }\n return;\n }\n };\n\n let rowProps: DOMAttributes = mergeProps(itemProps, {\n role: 'row',\n onKeyDownCapture: onKeyDown,\n onFocus,\n 'aria-label': node.textValue || undefined,\n 'aria-selected': state.selectionManager.canSelectItem(node.key) ? state.selectionManager.isSelected(node.key) : undefined,\n 'aria-disabled': state.selectionManager.isDisabled(node.key) || undefined,\n 'aria-labelledby': descriptionId && node.textValue ? `${getRowId(state, node.key)} ${descriptionId}` : undefined,\n id: getRowId(state, node.key)\n });\n\n if (isVirtualized) {\n rowProps['aria-rowindex'] = node.index + 1;\n }\n\n let gridCellProps = {\n role: 'gridcell',\n 'aria-colindex': 1\n };\n\n return {\n rowProps,\n gridCellProps,\n descriptionProps: {\n id: descriptionId\n },\n ...itemStates\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridSelectionCheckboxProps, GridSelectionCheckboxAria, useGridSelectionCheckbox} from '@react-aria/grid';\nimport {getRowId} from './utils';\nimport type {ListState} from '@react-stately/list';\n\n/**\n * Provides the behavior and accessibility implementation for a selection checkbox in a grid list.\n * @param props - Props for the selection checkbox.\n * @param state - State of the list, as returned by `useListState`.\n */\nexport function useGridListSelectionCheckbox(props: AriaGridSelectionCheckboxProps, state: ListState): GridSelectionCheckboxAria {\n let {key} = props;\n const {checkboxProps} = useGridSelectionCheckbox(props, state as any);\n\n return {\n checkboxProps: {\n ...checkboxProps,\n 'aria-labelledby': `${checkboxProps.id} ${getRowId(state, key)}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, DropTarget, DropTargetDelegate, KeyboardDelegate, Node} from '@react-types/shared';\nimport {InvalidationContext, Layout, LayoutInfo, Point, Rect, Size} from '@react-stately/virtualizer';\nimport {Key} from 'react';\n// import { DragTarget, DropTarget, DropPosition } from '@react-types/shared';\n\nexport type ListLayoutOptions = {\n /** The height of a row in px. */\n rowHeight?: number,\n estimatedRowHeight?: number,\n headingHeight?: number,\n estimatedHeadingHeight?: number,\n padding?: number,\n indentationForItem?: (collection: Collection>, key: Key) => number,\n collator?: Intl.Collator,\n loaderHeight?: number,\n placeholderHeight?: number,\n allowDisabledKeyFocus?: boolean\n};\n\n// A wrapper around LayoutInfo that supports hierarchy\nexport interface LayoutNode {\n node?: Node,\n layoutInfo: LayoutInfo,\n header?: LayoutInfo,\n children?: LayoutNode[],\n validRect: Rect\n}\n\nconst DEFAULT_HEIGHT = 48;\n\n/**\n * The ListLayout class is an implementation of a collection view {@link Layout}\n * it is used for creating lists and lists with indented sub-lists.\n *\n * To configure a ListLayout, you can use the properties to define the\n * layouts and/or use the method for defining indentation.\n * The {@link ListKeyboardDelegate} extends the existing collection view\n * delegate with an additional method to do this (it uses the same delegate object as\n * the collection view itself).\n */\nexport class ListLayout extends Layout> implements KeyboardDelegate, DropTargetDelegate {\n protected rowHeight: number;\n protected estimatedRowHeight: number;\n protected headingHeight: number;\n protected estimatedHeadingHeight: number;\n protected padding: number;\n protected indentationForItem?: (collection: Collection>, key: Key) => number;\n protected layoutInfos: Map;\n protected layoutNodes: Map;\n protected contentSize: Size;\n collection: Collection>;\n disabledKeys: Set = new Set();\n allowDisabledKeyFocus: boolean = false;\n isLoading: boolean;\n protected lastWidth: number;\n protected lastCollection: Collection>;\n protected rootNodes: LayoutNode[];\n protected collator: Intl.Collator;\n protected invalidateEverything: boolean;\n protected loaderHeight: number;\n protected placeholderHeight: number;\n protected lastValidRect: Rect;\n protected validRect: Rect;\n\n /**\n * Creates a new ListLayout with options. See the list of properties below for a description\n * of the options that can be provided.\n */\n constructor(options: ListLayoutOptions = {}) {\n super();\n this.rowHeight = options.rowHeight;\n this.estimatedRowHeight = options.estimatedRowHeight;\n this.headingHeight = options.headingHeight;\n this.estimatedHeadingHeight = options.estimatedHeadingHeight;\n this.padding = options.padding || 0;\n this.indentationForItem = options.indentationForItem;\n this.collator = options.collator;\n this.loaderHeight = options.loaderHeight;\n this.placeholderHeight = options.placeholderHeight;\n this.layoutInfos = new Map();\n this.layoutNodes = new Map();\n this.rootNodes = [];\n this.lastWidth = 0;\n this.lastCollection = null;\n this.allowDisabledKeyFocus = options.allowDisabledKeyFocus;\n this.lastValidRect = new Rect();\n this.validRect = new Rect();\n this.contentSize = new Size();\n }\n\n getLayoutInfo(key: Key) {\n let res = this.layoutInfos.get(key);\n\n // If the layout info wasn't found, it might be outside the bounds of the area that we've\n // computed layout for so far. This can happen when accessing a random key, e.g pressing Home/End.\n // Compute the full layout and try again.\n if (!res && this.validRect.area < this.contentSize.area && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = new Rect(0, 0, Infinity, Infinity);\n this.rootNodes = this.buildCollection();\n this.validRect = new Rect(0, 0, this.contentSize.width, this.contentSize.height);\n res = this.layoutInfos.get(key);\n }\n\n return res;\n }\n\n getVisibleLayoutInfos(rect: Rect) {\n // If layout hasn't yet been done for the requested rect, union the\n // new rect with the existing valid rect, and recompute.\n if (!this.validRect.containsRect(rect) && this.lastCollection) {\n this.lastValidRect = this.validRect;\n this.validRect = this.validRect.union(rect);\n this.rootNodes = this.buildCollection();\n }\n\n let res: LayoutInfo[] = [];\n\n let addNodes = (nodes: LayoutNode[]) => {\n for (let node of nodes) {\n if (this.isVisible(node, rect)) {\n res.push(node.layoutInfo);\n if (node.header) {\n res.push(node.header);\n }\n\n if (node.children) {\n addNodes(node.children);\n }\n }\n }\n };\n\n addNodes(this.rootNodes);\n return res;\n }\n\n isVisible(node: LayoutNode, rect: Rect) {\n return node.layoutInfo.rect.intersects(rect) || node.layoutInfo.isSticky || this.virtualizer.isPersistedKey(node.layoutInfo.key);\n }\n\n protected shouldInvalidateEverything(invalidationContext: InvalidationContext, unknown>) {\n // Invalidate cache if the size of the collection changed.\n // In this case, we need to recalculate the entire layout.\n return invalidationContext.sizeChanged;\n }\n\n validate(invalidationContext: InvalidationContext, unknown>) {\n this.collection = this.virtualizer.collection;\n\n // Reset valid rect if we will have to invalidate everything.\n // Otherwise we can reuse cached layout infos outside the current visible rect.\n this.invalidateEverything = this.shouldInvalidateEverything(invalidationContext);\n if (this.invalidateEverything) {\n this.lastValidRect = this.validRect;\n this.validRect = this.virtualizer.getVisibleRect();\n }\n\n this.rootNodes = this.buildCollection();\n\n // Remove deleted layout nodes\n if (this.lastCollection && this.collection !== this.lastCollection) {\n for (let key of this.lastCollection.getKeys()) {\n if (!this.collection.getItem(key)) {\n let layoutNode = this.layoutNodes.get(key);\n if (layoutNode) {\n this.layoutInfos.delete(layoutNode.layoutInfo.key);\n this.layoutInfos.delete(layoutNode.header?.key);\n this.layoutNodes.delete(key);\n }\n }\n }\n }\n\n this.lastWidth = this.virtualizer.visibleRect.width;\n this.lastCollection = this.collection;\n this.invalidateEverything = false;\n }\n\n buildCollection(): LayoutNode[] {\n let y = this.padding;\n let skipped = 0;\n let nodes = [];\n for (let node of this.collection) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (node.type === 'item' && y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(node, 0, y);\n y = layoutNode.layoutInfo.rect.maxY;\n nodes.push(layoutNode);\n\n if (node.type === 'item' && y > this.validRect.maxY) {\n y += (this.collection.size - (nodes.length + skipped)) * rowHeight;\n break;\n }\n }\n\n if (this.isLoading) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.loaderHeight ?? this.virtualizer.visibleRect.height);\n let loader = new LayoutInfo('loader', 'loader', rect);\n this.layoutInfos.set('loader', loader);\n nodes.push({layoutInfo: loader});\n y = loader.rect.maxY;\n }\n\n if (nodes.length === 0) {\n let rect = new Rect(0, y, this.virtualizer.visibleRect.width,\n this.placeholderHeight ?? this.virtualizer.visibleRect.height);\n let placeholder = new LayoutInfo('placeholder', 'placeholder', rect);\n this.layoutInfos.set('placeholder', placeholder);\n nodes.push({layoutInfo: placeholder});\n y = placeholder.rect.maxY;\n }\n\n this.contentSize = new Size(this.virtualizer.visibleRect.width, y + this.padding);\n return nodes;\n }\n\n isValid(node: Node, y: number) {\n let cached = this.layoutNodes.get(node.key);\n return (\n !this.invalidateEverything &&\n cached &&\n cached.node === node &&\n y === (cached.header || cached.layoutInfo).rect.y &&\n cached.layoutInfo.rect.intersects(this.lastValidRect) &&\n cached.validRect.containsRect(cached.layoutInfo.rect.intersection(this.validRect))\n );\n }\n\n buildChild(node: Node, x: number, y: number): LayoutNode {\n if (this.isValid(node, y)) {\n return this.layoutNodes.get(node.key);\n }\n\n let layoutNode = this.buildNode(node, x, y);\n layoutNode.node = node;\n\n layoutNode.layoutInfo.parentKey = node.parentKey ?? null;\n this.layoutInfos.set(layoutNode.layoutInfo.key, layoutNode.layoutInfo);\n if (layoutNode.header) {\n this.layoutInfos.set(layoutNode.header.key, layoutNode.header);\n }\n\n this.layoutNodes.set(node.key, layoutNode);\n return layoutNode;\n }\n\n buildNode(node: Node, x: number, y: number): LayoutNode {\n switch (node.type) {\n case 'section':\n return this.buildSection(node, x, y);\n case 'item':\n return this.buildItem(node, x, y);\n }\n }\n\n buildSection(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.headingHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode && previousLayoutNode.header) {\n let curNode = this.collection.getItem(node.key);\n let lastNode = this.lastCollection ? this.lastCollection.getItem(node.key) : null;\n rectHeight = previousLayoutNode.header.rect.height;\n isEstimated = width !== this.lastWidth || curNode !== lastNode || previousLayoutNode.header.estimatedSize;\n } else {\n rectHeight = (node.rendered ? this.estimatedHeadingHeight : 0);\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n let headerRect = new Rect(0, y, width, rectHeight);\n let header = new LayoutInfo('header', node.key + ':header', headerRect);\n header.estimatedSize = isEstimated;\n header.parentKey = node.key;\n y += header.rect.height;\n\n let rect = new Rect(0, y, width, 0);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n\n let startY = y;\n let skipped = 0;\n let children = [];\n for (let child of node.childNodes) {\n let rowHeight = (this.rowHeight ?? this.estimatedRowHeight);\n\n // Skip rows before the valid rectangle unless they are already cached.\n if (y + rowHeight < this.validRect.y && !this.isValid(node, y)) {\n y += rowHeight;\n skipped++;\n continue;\n }\n\n let layoutNode = this.buildChild(child, x, y);\n y = layoutNode.layoutInfo.rect.maxY;\n children.push(layoutNode);\n\n if (y > this.validRect.maxY) {\n // Estimate the remaining height for rows that we don't need to layout right now.\n y += ([...node.childNodes].length - (children.length + skipped)) * rowHeight;\n break;\n }\n }\n\n rect.height = y - startY;\n\n return {\n header,\n layoutInfo,\n children,\n validRect: layoutInfo.rect.intersection(this.validRect)\n };\n }\n\n buildItem(node: Node, x: number, y: number): LayoutNode {\n let width = this.virtualizer.visibleRect.width;\n let rectHeight = this.rowHeight;\n let isEstimated = false;\n\n // If no explicit height is available, use an estimated height.\n if (rectHeight == null) {\n // If a previous version of this layout info exists, reuse its height.\n // Mark as estimated if the size of the overall collection view changed,\n // or the content of the item changed.\n let previousLayoutNode = this.layoutNodes.get(node.key);\n if (previousLayoutNode) {\n rectHeight = previousLayoutNode.layoutInfo.rect.height;\n isEstimated = width !== this.lastWidth || node !== previousLayoutNode.node || previousLayoutNode.layoutInfo.estimatedSize;\n } else {\n rectHeight = this.estimatedRowHeight;\n isEstimated = true;\n }\n }\n\n if (rectHeight == null) {\n rectHeight = DEFAULT_HEIGHT;\n }\n\n if (typeof this.indentationForItem === 'function') {\n x += this.indentationForItem(this.collection, node.key) || 0;\n }\n\n let rect = new Rect(x, y, width - x, rectHeight);\n let layoutInfo = new LayoutInfo(node.type, node.key, rect);\n // allow overflow so the focus ring/selection ring can extend outside to overlap with the adjacent items borders\n layoutInfo.allowOverflow = true;\n layoutInfo.estimatedSize = isEstimated;\n return {\n layoutInfo,\n validRect: layoutInfo.rect\n };\n }\n\n updateItemSize(key: Key, size: Size) {\n let layoutInfo = this.layoutInfos.get(key);\n // If no layoutInfo, item has been deleted/removed.\n if (!layoutInfo) {\n return false;\n }\n\n layoutInfo.estimatedSize = false;\n if (layoutInfo.rect.height !== size.height) {\n // Copy layout info rather than mutating so that later caches are invalidated.\n let newLayoutInfo = layoutInfo.copy();\n newLayoutInfo.rect.height = size.height;\n this.layoutInfos.set(key, newLayoutInfo);\n\n // Invalidate layout for this layout node and all parents\n this.updateLayoutNode(key, layoutInfo, newLayoutInfo);\n\n let node = this.collection.getItem(layoutInfo.parentKey);\n while (node) {\n this.updateLayoutNode(node.key, layoutInfo, newLayoutInfo);\n node = this.collection.getItem(node.parentKey);\n }\n\n return true;\n }\n\n return false;\n }\n\n updateLayoutNode(key: Key, oldLayoutInfo: LayoutInfo, newLayoutInfo: LayoutInfo) {\n let n = this.layoutNodes.get(key);\n if (n) {\n // Invalidate by reseting validRect.\n n.validRect = new Rect();\n\n // Replace layout info in LayoutNode\n if (n.header === oldLayoutInfo) {\n n.header = newLayoutInfo;\n } else if (n.layoutInfo === oldLayoutInfo) {\n n.layoutInfo = newLayoutInfo;\n }\n }\n }\n\n getContentSize() {\n return this.contentSize;\n }\n\n getKeyAbove(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyBefore(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyBelow(key: Key): Key | null {\n let collection = this.collection;\n\n key = collection.getKeyAfter(key);\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getKeyPageAbove(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key);\n\n if (layoutInfo) {\n let pageY = Math.max(0, layoutInfo.rect.y + layoutInfo.rect.height - this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y > pageY) {\n let keyAbove = this.getKeyAbove(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyAbove);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getFirstKey();\n }\n\n getKeyPageBelow(key: Key): Key | null {\n let layoutInfo = this.getLayoutInfo(key != null ? key : this.getFirstKey());\n\n if (layoutInfo) {\n let pageY = Math.min(this.virtualizer.contentSize.height, layoutInfo.rect.y - layoutInfo.rect.height + this.virtualizer.visibleRect.height);\n while (layoutInfo && layoutInfo.rect.y < pageY) {\n let keyBelow = this.getKeyBelow(layoutInfo.key);\n layoutInfo = this.getLayoutInfo(keyBelow);\n }\n\n if (layoutInfo) {\n return layoutInfo.key;\n }\n }\n\n return this.getLastKey();\n }\n\n getFirstKey(): Key | null {\n let collection = this.collection;\n let key = collection.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyAfter(key);\n }\n }\n\n getLastKey(): Key | null {\n let collection = this.collection;\n let key = collection.getLastKey();\n while (key != null) {\n let item = collection.getItem(key);\n if (item.type === 'item' && (this.allowDisabledKeyFocus || !this.disabledKeys.has(item.key))) {\n return key;\n }\n\n key = collection.getKeyBefore(key);\n }\n }\n\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n if (!this.collator) {\n return null;\n }\n\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while (key != null) {\n let item = collection.getItem(key);\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) {\n return key;\n }\n\n key = this.getKeyBelow(key);\n }\n\n return null;\n }\n\n getInitialLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getFinalLayoutInfo(layoutInfo: LayoutInfo) {\n layoutInfo.opacity = 0;\n layoutInfo.transform = 'scale3d(0.8, 0.8, 0.8)';\n return layoutInfo;\n }\n\n getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget {\n x += this.virtualizer.visibleRect.x;\n y += this.virtualizer.visibleRect.y;\n\n let key = this.virtualizer.keyAtPoint(new Point(x, y));\n if (key == null || this.collection.size === 0) {\n return {type: 'root'};\n }\n\n let layoutInfo = this.getLayoutInfo(key);\n let rect = layoutInfo.rect;\n let target: DropTarget = {\n type: 'item',\n key: layoutInfo.key,\n dropPosition: 'on'\n };\n\n // If dropping on the item isn't accepted, try the target before or after depending on the y position.\n // Otherwise, if dropping on the item is accepted, still try the before/after positions if within 10px\n // of the top or bottom of the item.\n if (!isValidDropTarget(target)) {\n if (y <= rect.y + rect.height / 2 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n } else if (y <= rect.y + 10 && isValidDropTarget({...target, dropPosition: 'before'})) {\n target.dropPosition = 'before';\n } else if (y >= rect.maxY - 10 && isValidDropTarget({...target, dropPosition: 'after'})) {\n target.dropPosition = 'after';\n }\n\n return target;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, Node} from '@react-types/shared';\nimport {Key} from 'react';\n\nexport class ListCollection implements Collection> {\n private keyMap: Map> = new Map();\n private iterable: Iterable>;\n private firstKey: Key;\n private lastKey: Key;\n\n constructor(nodes: Iterable>) {\n this.iterable = nodes;\n\n let visit = (node: Node) => {\n this.keyMap.set(node.key, node);\n\n if (node.childNodes && node.type === 'section') {\n for (let child of node.childNodes) {\n visit(child);\n }\n }\n };\n\n for (let node of nodes) {\n visit(node);\n }\n\n let last: Node;\n let index = 0;\n for (let [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n\n if (node.type === 'item') {\n node.index = index++;\n }\n\n last = node;\n\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n\n this.lastKey = last?.key;\n }\n\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.prevKey : null;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n return node ? node.nextKey : null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n return this.lastKey;\n }\n\n getItem(key: Key) {\n return this.keyMap.get(key);\n }\n\n at(idx: number) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Collection, CollectionBase, Node} from '@react-types/shared';\nimport {Key, useEffect, useMemo} from 'react';\nimport {ListCollection} from './ListCollection';\nimport {MultipleSelectionStateProps, SelectionManager, useMultipleSelectionState} from '@react-stately/selection';\nimport {useCollection} from '@react-stately/collections';\n\nexport interface ListProps extends CollectionBase, MultipleSelectionStateProps {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface ListState {\n /** A collection of items in the list. */\n collection: Collection>,\n\n /** A set of items that are disabled. */\n disabledKeys: Set,\n\n /** A selection manager to read and update multiple selection state. */\n selectionManager: SelectionManager\n}\n\n/**\n * Provides state management for list-like components. Handles building a collection\n * of items from props, and manages multiple selection state.\n */\nexport function useListState(props: ListProps): ListState {\n let {filter} = props;\n\n let selectionState = useMultipleSelectionState(props);\n let disabledKeys = useMemo(() =>\n props.disabledKeys ? new Set(props.disabledKeys) : new Set()\n , [props.disabledKeys]);\n\n let factory = nodes => filter ? new ListCollection(filter(nodes)) : new ListCollection(nodes as Iterable>);\n let context = useMemo(() => ({suppressTextValueWarning: props.suppressTextValueWarning}), [props.suppressTextValueWarning]);\n\n let collection = useCollection(props, factory, context, [filter]);\n\n // Reset focused key if that item is deleted from the collection.\n useEffect(() => {\n if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {\n selectionState.setFocusedKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collection, selectionState.focusedKey]);\n\n return {\n collection,\n disabledKeys,\n selectionManager: new SelectionManager(collection, selectionState)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CollectionBase, SingleSelection} from '@react-types/shared';\nimport {Key, useMemo} from 'react';\nimport {ListState, useListState} from './useListState';\nimport {Node} from '@react-types/shared';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface SingleSelectListProps extends CollectionBase, Omit {\n /** Filter function to generate a filtered list of nodes. */\n filter?: (nodes: Iterable>) => Iterable>,\n /** @private */\n suppressTextValueWarning?: boolean\n}\n\nexport interface SingleSelectListState extends ListState {\n /** The key for the currently selected item. */\n readonly selectedKey: Key,\n\n /** Sets the selected key. */\n setSelectedKey(key: Key): void,\n\n /** The value of the currently selected item. */\n readonly selectedItem: Node\n}\n\n/**\n * Provides state management for list-like components with single selection.\n * Handles building a collection of items from props, and manages selection state.\n */\nexport function useSingleSelectListState(props: SingleSelectListProps): SingleSelectListState {\n let [selectedKey, setSelectedKey] = useControlledState(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange);\n let selectedKeys = useMemo(() => selectedKey != null ? [selectedKey] : [], [selectedKey]);\n let {collection, disabledKeys, selectionManager} = useListState({\n ...props,\n selectionMode: 'single',\n disallowEmptySelection: true,\n allowDuplicateSelectionEvents: true,\n selectedKeys,\n onSelectionChange: (keys: Set) => {\n let key = keys.values().next().value;\n\n // Always fire onSelectionChange, even if the key is the same\n // as the current key (useControlledState does not).\n if (key === selectedKey && props.onSelectionChange) {\n props.onSelectionChange(key);\n }\n\n setSelectedKey(key);\n }\n });\n\n let selectedItem = selectedKey != null\n ? collection.getItem(selectedKey)\n : null;\n\n return {\n collection,\n disabledKeys,\n selectionManager,\n selectedKey,\n setSelectedKey,\n selectedItem\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: DOMAttributes | LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, HelpTextProps, Validation} from '@react-types/shared';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\nexport interface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: DOMAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaProgressBarProps} from '@react-types/progress';\nimport {clamp, filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {useLabel} from '@react-aria/label';\nimport {useNumberFormatter} from '@react-aria/i18n';\n\nexport interface ProgressBarAria {\n /** Props for the progress bar container element. */\n progressBarProps: DOMAttributes,\n /** Props for the progress bar's visual label element (if any). */\n labelProps: DOMAttributes\n}\n\n/**\n * Provides the accessibility implementation for a progress bar component.\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n */\nexport function useProgressBar(props: AriaProgressBarProps): ProgressBarAria {\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n valueLabel,\n isIndeterminate,\n formatOptions = {\n style: 'percent'\n }\n } = props;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Progress bar is not an HTML input element so it\n // shouldn't be labeled by a
    \n );\n}\n\nlet _Label = React.forwardRef(Label);\nexport {_Label as Label};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {classNames, SlotProvider, useStyleProps} from '@react-spectrum/utils';\nimport {Flex} from '@react-spectrum/layout';\nimport {HelpText} from './HelpText';\nimport {Label} from './Label';\nimport {LabelPosition} from '@react-types/shared';\nimport labelStyles from '@adobe/spectrum-css-temp/components/fieldlabel/vars.css';\nimport {mergeProps, useId} from '@react-aria/utils';\nimport React, {RefObject} from 'react';\nimport {SpectrumFieldProps} from '@react-types/label';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction Field(props: SpectrumFieldProps, ref: RefObject) {\n let formProps = useFormProps(props);\n let isInForm = formProps !== props;\n props = formProps;\n let {\n label,\n labelPosition = 'top' as LabelPosition,\n labelAlign,\n isRequired,\n necessityIndicator,\n includeNecessityIndicatorInAccessibilityName,\n validationState,\n description,\n errorMessage,\n isDisabled,\n showErrorIcon,\n contextualHelp,\n children,\n labelProps,\n // Not every component that uses supports help text.\n descriptionProps = {},\n errorMessageProps = {},\n elementType,\n wrapperClassName,\n wrapperProps = {},\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let hasHelpText = !!description || errorMessage && validationState === 'invalid';\n let contextualHelpId = useId();\n\n let labelWrapperClass = classNames(\n labelStyles,\n 'spectrum-Field',\n {\n 'spectrum-Field--positionTop': labelPosition === 'top',\n 'spectrum-Field--positionSide': labelPosition === 'side',\n 'spectrum-Field--alignEnd': labelAlign === 'end',\n 'spectrum-Field--hasContextualHelp': !!props.contextualHelp\n },\n styleProps.className,\n wrapperClassName\n );\n\n children = React.cloneElement(children, mergeProps(children.props, {\n className: classNames(\n labelStyles,\n 'spectrum-Field-field'\n )\n }));\n\n let renderHelpText = () => (\n \n );\n\n let renderChildren = () => {\n if (labelPosition === 'side') {\n return (\n \n {children}\n {hasHelpText && renderHelpText()}\n \n );\n }\n\n return (\n <>\n {children}\n {hasHelpText && renderHelpText()}\n \n );\n };\n\n let labelAndContextualHelp = (\n <>\n {label && (\n \n {label}\n \n )}\n {label && contextualHelp &&\n \n {contextualHelp}\n \n }\n \n );\n\n // Need to add an extra wrapper for the label and contextual help if labelPosition is side,\n // so that the table layout works inside forms.\n if (isInForm && labelPosition === 'side' && label && contextualHelp) {\n labelAndContextualHelp = (\n
    \n
    \n {labelAndContextualHelp}\n
    \n
    \n );\n }\n\n return (\n }\n className={labelWrapperClass}>\n {labelAndContextualHelp}\n {renderChildren()}\n \n );\n}\n\nlet _Field = React.forwardRef(Field);\nexport {_Field as Field};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\nimport {ValidationState} from '@react-types/shared';\n\nexport interface CheckboxGroupState {\n /** Current selected values. */\n readonly value: readonly string[],\n\n /** Whether the checkbox group is disabled. */\n readonly isDisabled: boolean,\n\n /** Whether the checkbox group is read only. */\n readonly isReadOnly: boolean,\n\n /** Returns whether the given value is selected. */\n isSelected(value: string): boolean,\n\n /** Sets the selected values. */\n setValue(value: string[]): void,\n\n /** Adds a value to the set of selected values. */\n addValue(value: string): void,\n\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void,\n\n /** Toggles a value in the set of selected values. */\n toggleValue(value: string): void,\n\n /** The current validation state of the checkbox group. */\n validationState: ValidationState\n}\n\n/**\n * Provides state management for a checkbox group component. Provides a name for the group,\n * and manages selection and focus state.\n */\nexport function useCheckboxGroupState(props: CheckboxGroupProps = {}): CheckboxGroupState {\n let [selectedValues, setValue] = useControlledState(props.value, props.defaultValue || [], props.onChange);\n\n const state: CheckboxGroupState = {\n value: selectedValues,\n setValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n\n setValue(value);\n },\n isDisabled: props.isDisabled || false,\n isReadOnly: props.isReadOnly || false,\n isSelected(value) {\n return selectedValues.includes(value);\n },\n addValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n }\n },\n removeValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n }\n },\n toggleValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n } else {\n setValue(selectedValues.concat(value));\n }\n },\n validationState: props.validationState\n };\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport React from 'react';\n\nexport const CheckboxGroupContext = React.createContext(null);\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport CheckmarkSmall from '@spectrum-icons/ui/CheckmarkSmall';\nimport {classNames, useFocusableRef, useStyleProps} from '@react-spectrum/utils';\nimport DashSmall from '@spectrum-icons/ui/DashSmall';\nimport {FocusableRef} from '@react-types/shared';\nimport {FocusRing} from '@react-aria/focus';\nimport React, {forwardRef, useContext, useRef} from 'react';\nimport {SpectrumCheckboxProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/checkbox/vars.css';\nimport {useCheckbox, useCheckboxGroupItem} from '@react-aria/checkbox';\nimport {useHover} from '@react-aria/interactions';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useToggleState} from '@react-stately/toggle';\n\nfunction Checkbox(props: SpectrumCheckboxProps, ref: FocusableRef) {\n let originalProps = props;\n props = useProviderProps(props);\n let {\n isIndeterminate = false,\n isEmphasized = false,\n isDisabled = false,\n autoFocus,\n children,\n validationState,\n ...otherProps\n } = props;\n let {styleProps} = useStyleProps(otherProps);\n let {hoverProps, isHovered} = useHover({isDisabled});\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n let {inputProps} = groupState\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ? useCheckboxGroupItem({\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires ignore).\n // @ts-ignore\n value: props.value,\n // Only pass isRequired and validationState to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n validationState: originalProps.validationState\n }, groupState, inputRef)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n : useCheckbox(props, useToggleState(props), inputRef);\n\n let markIcon = isIndeterminate\n ? \n : ;\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(`${key} is unsupported on individual elements within a . Please apply these props to the group instead.`);\n }\n }\n if (props.value == null) {\n console.warn('A element within a requires a `value` property.');\n }\n }\n\n return (\n \n \n \n \n {markIcon}\n {children && (\n \n {children}\n \n )}\n \n );\n}\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\nexport {_Checkbox as Checkbox};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupContext} from './context';\nimport {classNames, useDOMRef} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {Provider, useProviderProps} from '@react-spectrum/provider';\nimport React from 'react';\nimport {SpectrumCheckboxGroupProps} from '@react-types/checkbox';\nimport styles from '@adobe/spectrum-css-temp/components/fieldgroup/vars.css';\nimport {useCheckboxGroup} from '@react-aria/checkbox';\nimport {useCheckboxGroupState} from '@react-stately/checkbox';\nimport {useFormProps} from '@react-spectrum/form';\n\nfunction CheckboxGroup(props: SpectrumCheckboxGroupProps, ref: DOMRef) {\n props = useProviderProps(props);\n props = useFormProps(props);\n let {\n isEmphasized,\n children,\n orientation = 'vertical',\n validationState\n } = props;\n let domRef = useDOMRef(ref);\n let state = useCheckboxGroupState(props);\n let {labelProps, groupProps, descriptionProps, errorMessageProps} = useCheckboxGroup(props, state);\n\n return (\n \n \n \n \n {children}\n \n \n \n
    \n );\n}\n\n/**\n * A CheckboxGroup allows users to select one or more items from a list of choices.\n */\nconst _CheckboxGroup = React.forwardRef(CheckboxGroup);\nexport {_CheckboxGroup as CheckboxGroup};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronLeftMedium;\n\nvar _ChevronLeftMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronLeftMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronLeftMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronLeftMedium.ChevronLeftMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronLeftMedium = ChevronLeftMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronLeftMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.197 10.283L2.914 6l4.283-4.283A1 1 0 1 0 5.783.303l-4.99 4.99a1 1 0 0 0 0 1.414l4.99 4.99a1 1 0 1 0 1.414-1.414z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.697 8.283L2.414 5l3.283-3.283A1 1 0 1 0 4.283.303l-3.98 3.99a1 1 0 0 0 0 1.414l3.98 3.99a1 1 0 1 0 1.414-1.414z\"\n }));\n}\n\nChevronLeftMedium.displayName = 'ChevronLeftMedium';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronRightMedium;\n\nvar _ChevronRightMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronRightMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronRightMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.ChevronRightMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronRightMedium = ChevronRightMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronRightMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M7.5 6a.997.997 0 0 0-.293-.707L2.217.303A1 1 0 1 0 .803 1.717L5.086 6 .803 10.283a1 1 0 1 0 1.414 1.414l4.99-4.99A.997.997 0 0 0 7.5 6z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M5.99 5a.997.997 0 0 0-.293-.707L1.717.303A1 1 0 1 0 .303 1.717L3.586 5 .303 8.283a1 1 0 1 0 1.414 1.414l3.98-3.99A.997.997 0 0 0 5.99 5z\"\n }));\n}\n\nChevronRightMedium.displayName = 'ChevronRightMedium';","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ListGripper;\n\nvar _ListGripper = require(\"@adobe/react-spectrum-ui/dist/ListGripper\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ListGripper(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ListGripper.ListGripper, null));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ListGripper = ListGripper;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n@adobe/react-spectrum-ui (c) by Adobe\n\n@adobe/react-spectrum-ui is licensed under a\nCreative Commons Attribution-NoDerivatives 4.0 International License.\n\nYou should have received a copy of the license along with this\nwork. If not, see .\n*/\nfunction ListGripper({\n scale = 'M',\n ...props\n}) {\n return /*#__PURE__*/_react.default.createElement(\"svg\", props, scale === 'L' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"12.625\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"8.875\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"5.125\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"5.375\",\n cy: \"1.375\",\n r: \"1.25\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1.625\",\n cy: \"1.375\",\n r: \"1.25\"\n })), scale === 'M' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"10.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"7.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"4.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"4\",\n cy: \"1.5\",\n r: \"1\"\n }), /*#__PURE__*/_react.default.createElement(\"circle\", {\n cx: \"1\",\n cy: \"1.5\",\n r: \"1\"\n })));\n}\n\nListGripper.displayName = 'ListGripper';","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n*/\n\n:root {\n --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);\n --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-85);\n --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);\n --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin));\n --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular));\n --spectrum-listview-item-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width));\n --spectrum-listview-row-sticky-focus-indicator-width: 3px;\n --spectrum-listview-item-line-height: calc(var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default)) * var(--spectrum-table-cell-text-line-height, var(--spectrum-alias-body-text-line-height)) - 1px);\n --spectrum-listview-item-title-text-color: var(--spectrum-global-color-gray-800);\n --spectrum-listview-item-title-text-size: var(--spectrum-global-dimension-font-size-100);\n --spectrum-listview-item-description-text-color: var(--spectrum-global-color-gray-700);\n --spectrum-listview-item-description-text-size: var(--spectrum-global-dimension-font-size-75);\n}\n\n.react-spectrum-ListView {\n box-sizing: border-box;\n border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));\n border-style: solid;\n position: relative;\n border-width: var(--spectrum-listview-border-width);\n border-radius: var(--spectrum-listview-border-radius);\n overflow: auto;\n vertical-align: var(--spectrum-table-cell-vertical-alignment);\n border-collapse: separate;\n border-spacing: 0;\n transform: translate3d(0, 0, 0);\n padding: 0;\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n outline: 0;\n user-select: none;\n\n .react-spectrum-ListView-row {\n outline: none;\n }\n\n &.react-spectrum-ListView--emphasized {\n &.react-spectrum-ListView--dropTarget {\n .react-spectrum-ListViewItem:not(.is-selected) {\n /* shift bottom border inwards so it doesn't overlap the root drop target */\n &:after {\n inset-inline-start: 1px;\n inset-inline-end: 1px;\n }\n }\n }\n .react-spectrum-ListViewItem {\n /* common pseudoelement for box shadows */\n &:after {\n content: '';\n display: block;\n position: absolute;\n inset-inline-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inset-block-start: 0;\n z-index: 3;\n pointer-events: none;\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-selected);\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-selected-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n\n /* Negative block start causes borders to actually be shared between items. Only works if we allow item overflow to be visible, like card focus rings. */\n &:after {\n inset-block-start: -1px;\n box-shadow: inset 1px 0 0 0 var(--spectrum-global-color-blue-500), inset -1px 0 0 0 var(--spectrum-global-color-blue-500), inset 0 -1px 0 0 var(--spectrum-global-color-blue-500), inset 0 1px 0 0 var(--spectrum-global-color-blue-500);\n }\n }\n\n /* First item in the ListView should not have a border that extends outside of itself to the top, it doesn't need to share a border space. */\n &.react-spectrum-ListViewItem--firstRow {\n &.is-selected {\n &:after {\n inset-block-start: 0px;\n }\n }\n }\n }\n\n &:not(.react-spectrum-ListView--quiet) {\n .react-spectrum-ListViewItem {\n /* Box shadow for bottom border for non-selected rows that aren't immediately above a selected row (grey border bottom). */\n /* Also omit bottom border for last row if the total content height of the ListView is equal or greater than the height of the container. This avoids overlapping bottom borders. */\n &:not(.is-selected):not(.is-next-selected):not(.react-spectrum-ListViewItem--isFlushBottom) {\n &:after {\n box-shadow: inset 0 -1px 0 0 var(--spectrum-table-cell-border-color);\n }\n }\n\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem {\n &.react-spectrum-ListViewItem--firstRow.is-selected {\n &:after {\n border-start-end-radius: 0;\n }\n }\n }\n\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-end-radius: 0;\n }\n }\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n &:not(.react-spectrum-ListView--loadingMore) {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem--isFlushBottom.is-selected {\n &:after {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n }\n }\n }\n }\n &.react-spectrum-ListView--wrap .react-spectrum-ListViewItem {\n & .react-spectrum-ListViewItem-content,\n & .react-spectrum-ListViewItem-description {\n white-space: normal;\n height: auto;\n }\n }\n}\n\n.react-spectrum-ListView-row {\n cursor: default;\n /* Not sticky because listview is a single column. If we want to make sticky, will need a cell wrapper like TableView for display: inline-block */\n &:focus-ring {\n &:before {\n content: '';\n position: absolute;\n inset-block-start: 0;\n inset-block-end: 0;\n inset-inline-start: 0;\n width: var(--spectrum-listview-row-sticky-focus-indicator-width);\n z-index: 4;\n background: var(--spectrum-selectlist-option-focus-indicator-color);\n }\n }\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--quiet {\n background-color: var(--spectrum-alias-background-color-transparent);\n border-width: 0;\n border-radius: 0;\n\n .react-spectrum-ListView-row {\n &.round-tops {\n &:focus-ring {\n &:before {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-start-start-radius: var(--spectrum-listview-item-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n\n &.round-bottoms {\n &:focus-ring {\n &:before {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n & > .react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n\n &:after {\n border-end-start-radius: var(--spectrum-listview-item-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-border-radius);\n }\n }\n }\n }\n}\n\n.react-spectrum-ListViewItem {\n display: grid; /* TODO: define grid areas */\n box-sizing: border-box;\n font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));\n font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));\n line-height: var(--spectrum-listview-item-line-height);\n padding: var(--spectrum-listview-item-regular-padding-y) var(--spectrum-global-dimension-size-160);\n position: relative;\n /*background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));*/\n color: var(--spectrum-table-cell-text-color, var(--spectrum-alias-text-color));\n outline: 0;\n min-height: var(--spectrum-global-dimension-size-500);\n\n &.is-hovered,\n &.is-focused {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-down);\n }\n\n &.is-selected {\n background-color: var(--spectrum-table-row-background-color-hover);\n\n &.is-hovered,\n &.is-active {\n background-color: var(--spectrum-table-row-background-color-hover);\n }\n\n &:focus-ring {\n background-color: var(--spectrum-table-row-background-color-selected-key-focus);\n }\n }\n\n &.is-disabled {\n &, .react-spectrum-ListViewItem-content, .react-spectrum-ListViewItem-description {\n color: var(--spectrum-alias-text-color-disabled);\n }\n }\n\n &.has-checkbox {\n /* have to eliminate vertical padding to allow proper vertical alignment */\n padding-top: 0px;\n padding-bottom: 0px;\n }\n\n .react-spectrum-ListViewItem-grid {\n display: grid;\n grid-template-columns: auto auto auto 1fr auto auto auto;\n grid-template-rows: 1fr auto;\n grid-template-areas:\n \"draghandle checkbox thumbnail content actions actionmenu chevron\"\n \"draghandle checkbox thumbnail description actions actionmenu chevron\";\n align-items: center;\n }\n\n .react-spectrum-ListViewItem-draghandle-container {\n grid-area: draghandle;\n width: var(--spectrum-global-dimension-size-250);\n display: flex;\n align-self: stretch;\n justify-self: stretch;\n justify-content: center;\n padding: var(--spectrum-global-dimension-size-25);\n padding-inline-start: var(--spectrum-global-dimension-size-40);\n\n\n .react-spectrum-ListViewItem-draghandle-button {\n width: var(--spectrum-global-dimension-size-200);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--spectrum-alias-border-radius-regular);\n\n &:focus-ring {\n box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus);\n outline: none;\n }\n }\n }\n\n .react-spectrum-ListViewItem-checkboxWrapper {\n grid-area: checkbox;\n align-items: center;\n justify-items: center;\n transition-duration: 160ms;\n display: flex;\n }\n\n .react-spectrum-ListViewItem-checkbox {\n min-height: 0;\n height: 100%;\n\n > span {\n margin: 0;\n }\n }\n\n .react-spectrum-ListViewItem-thumbnail {\n grid-area: thumbnail;\n justify-items: center;\n padding-inline-end: var(--spectrum-global-dimension-size-100);\n display: flex;\n border-radius: var(--spectrum-global-dimension-size-25);\n width: var(--spectrum-global-dimension-size-400);\n height: var(--spectrum-global-dimension-size-400);\n align-items: center;\n justify-content: center;\n\n > img {\n width: unset;\n height: 100%;\n }\n }\n\n .react-spectrum-ListViewItem-content,\n .react-spectrum-ListViewItem-description {\n flex-grow: 1;\n\n /* truncate text with ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: var(--spectrum-listview-item-line-height);\n }\n\n .react-spectrum-ListViewItem-content {\n grid-area: content;\n color: var(--spectrum-listview-item-title-text-color);\n font-size: var(--spectrum-listview-item-title-text-size);\n }\n\n &:not(.react-spectrum-ListView--hasDescription) {\n .react-spectrum-ListViewItem-content {\n grid-area: content / description;\n }\n }\n\n .react-spectrum-ListViewItem-description {\n grid-area: description;\n color: var(--spectrum-listview-item-description-text-color);\n font-size: var(--spectrum-listview-item-description-text-size);\n }\n\n .react-spectrum-ListViewItem-actions {\n grid-area: actions;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n .react-spectrum-ListViewItem-actionmenu {\n grid-area: actionmenu;\n }\n\n .react-spectrum-ListViewItem-parentIndicator {\n grid-area: chevron;\n padding-inline-start: var(--spectrum-global-dimension-size-75);\n display: none;\n transition: color var(--spectrum-global-animation-duration-100);\n\n &.is-disabled {\n color: var(--spectrum-alias-icon-color-disabled);\n }\n }\n\n &.react-spectrum-ListViewItem-dragPreview {\n width: var(--spectrum-global-dimension-size-2400);\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n\n &.react-spectrum-ListViewItem-dragPreview--compact {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--spacious {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n }\n\n .react-spectrum-ListViewItem-grid {\n grid-template-areas:\n \"thumbnail content . badge\"\n \"thumbnail description . badge\";\n grid-template-columns: auto auto 1fr auto;\n }\n\n .react-spectrum-ListViewItem-badge {\n grid-area: badge;\n color: white;\n background: var(--spectrum-global-color-blue-400);\n padding: 0 8px;\n border-radius: var(--spectrum-alias-border-radius-regular);\n }\n\n &.react-spectrum-ListViewItem-dragPreview--multiple {\n position: relative;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n z-index: -1;\n top: 4px;\n inset-inline-start: 4px;\n width: 100%;\n height: 100%;\n border: 1px solid var(--spectrum-dropzone-border-color-selected-hover);\n border-radius: var(--spectrum-alias-border-radius-regular);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n }\n }\n\n .react-spectrum-ListViewItem-actions,\n .react-spectrum-ListViewItem-actionmenu {\n display: none;\n }\n }\n}\n.react-spectrum-ListView:not(.react-spectrum-ListView--quiet) {\n /* give first and last items border-radius to match listview container */\n\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius);\n border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius);\n }\n\n &.react-spectrum-ListView--isVerticalScrollbarVisible {\n .react-spectrum-ListViewItem--firstRow.react-spectrum-ListViewItem {\n border-start-end-radius: 0;\n }\n\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-end-radius: 0;\n }\n }\n\n &.react-spectrum-ListView--isHorizontalScrollbarVisible {\n .react-spectrum-ListViewItem--lastRow.react-spectrum-ListViewItem {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n }\n}\n\n.react-spectrum-ListView {\n /* When we can use subgrid, get rid of this. */\n &.react-spectrum-ListView--hasAnyChildren {\n .react-spectrum-ListViewItem-parentIndicator {\n display: inline-block;\n visibility: hidden;\n }\n .react-spectrum-ListViewItem-parentIndicator--hasChildItems {\n visibility: visible;\n }\n }\n}\n\n.react-spectrum-ListView--compact .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-compact-padding-y);\n padding-bottom: var(--spectrum-listview-item-compact-padding-y);\n min-height: var(--spectrum-global-dimension-size-400);\n}\n\n.react-spectrum-ListView--spacious .react-spectrum-ListViewItem {\n padding-top: var(--spectrum-listview-item-spacious-padding-y);\n padding-bottom: var(--spectrum-listview-item-spacious-padding-y);\n min-height: var(--spectrum-global-dimension-size-600);\n}\n\n.react-spectrum-ListView--draggable .react-spectrum-ListViewItem {\n padding-inline-start: 0;\n\n .react-spectrum-ListViewItem-checkbox {\n input {\n inset-inline-start: 0;\n }\n }\n}\n\n.react-spectrum-ListViewItem--dropTarget {\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow:\n inset 2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset -2px 0 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 -3px 0 0 var(--spectrum-table-cell-border-color-key-focus),\n inset 0 2px 0 0 var(--spectrum-table-cell-border-color-key-focus);\n}\n\n.react-spectrum-ListView.react-spectrum-ListView--dropTarget {\n border-color: var(--spectrum-global-color-blue-500);\n background-color: var(--spectrum-alias-highlight-selected);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n\n /* Add border to quiet ListView only when it is a drop target */\n &.react-spectrum-ListView--quiet {\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus), 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n\n.react-spectrum-ListView-centeredWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &.react-spectrum-ListView-centeredWrapper--loadingMore {\n padding-top: var(--spectrum-global-dimension-size-50);\n }\n}\n\n.react-spectrum-ListViewInsertionIndicator {\n width: calc(100% - (2 * var(--spectrum-dropindicator-circle-size)));\n inset-inline-start: var(--spectrum-dropindicator-circle-size);\n position: absolute;\n outline: none;\n\n &.react-spectrum-ListViewInsertionIndicator--dropTarget {\n background: var(--spectrum-dropindicator-border-color);\n border-bottom: 2px solid var(--spectrum-dropindicator-border-color);\n\n &:before {\n left: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:after {\n right: calc(var(--spectrum-dropindicator-circle-size) * -1);\n }\n\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: calc(var(--spectrum-dropindicator-circle-size) * -1 / 2 + var(--spectrum-dropindicator-border-size) / 2);\n width: var(--spectrum-dropindicator-circle-size);\n height: var(--spectrum-dropindicator-circle-size);\n border-radius: 50%;\n border: var(--spectrum-dropindicator-border-size) solid;\n box-sizing: border-box;\n border-color: var(--spectrum-dropindicator-circle-border-color);\n background-color: var(--spectrum-table-background-color, var(--spectrum-global-color-gray-50));\n z-index: 5;\n }\n }\n}\n\n.react-spectrum-ListViewItem-checkbox--enter {\n opacity: 0.01;\n max-width: 0px;\n}\n.react-spectrum-ListViewItem-checkbox--enterActive {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exit {\n opacity: 1;\n max-width: 80px;\n}\n.react-spectrum-ListViewItem-checkbox--exitActive {\n opacity: 0.01;\n max-width: 0px;\n}\n\n.react-spectrum-ListView {\n &:focus-ring {\n border-color: var(--spectrum-global-color-blue-500);\n box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus);\n }\n}\n","import {classNames} from '@react-spectrum/utils';\nimport {ItemDropTarget} from '@react-types/shared';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface InsertionIndicatorProps {\n target: ItemDropTarget,\n isPresentationOnly?: boolean\n}\n\nexport default function InsertionIndicator(props: InsertionIndicatorProps) {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n const {target, isPresentationOnly} = props;\n\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator(props, dropState, ref);\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let isDropTarget = dropState.isDropTarget(target);\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n {!isPresentationOnly &&\n
    \n }\n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {Checkbox} from '@react-spectrum/checkbox';\nimport ChevronLeftMedium from '@spectrum-icons/ui/ChevronLeftMedium';\nimport ChevronRightMedium from '@spectrum-icons/ui/ChevronRightMedium';\nimport {classNames, ClearSlots, SlotProvider, useHasChild} from '@react-spectrum/utils';\nimport {CSSTransition} from 'react-transition-group';\nimport type {DraggableItemResult, DropIndicatorAria, DroppableItemResult} from '@react-aria/dnd';\nimport {DropTarget, Node} from '@react-types/shared';\nimport {FocusRing, useFocusRing} from '@react-aria/focus';\nimport {Grid} from '@react-spectrum/layout';\nimport {isFocusVisible as isGlobalFocusVisible, useHover} from '@react-aria/interactions';\nimport ListGripper from '@spectrum-icons/ui/ListGripper';\nimport listStyles from './styles.css';\nimport {ListViewContext} from './ListView';\nimport {mergeProps} from '@react-aria/utils';\nimport {Provider} from '@react-spectrum/provider';\nimport React, {useContext, useRef} from 'react';\nimport {Text} from '@react-spectrum/text';\nimport {useButton} from '@react-aria/button';\nimport {useGridListItem, useGridListSelectionCheckbox} from '@react-aria/gridlist';\nimport {useLocale} from '@react-aria/i18n';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface ListViewItemProps {\n item: Node,\n isEmphasized: boolean,\n hasActions: boolean\n}\n\nexport function ListViewItem(props: ListViewItemProps) {\n let {\n item,\n isEmphasized\n } = props;\n let {\n state,\n dragState,\n dropState,\n isListDraggable,\n isListDroppable,\n layout,\n dragAndDropHooks,\n loadingState\n } = useContext(ListViewContext);\n let {direction} = useLocale();\n let rowRef = useRef();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {isFocusVisible, focusProps} = useFocusRing();\n let {\n rowProps,\n gridCellProps,\n isPressed,\n descriptionProps,\n isSelected,\n isDisabled,\n allowsSelection,\n hasAction\n } = useGridListItem({\n node: item,\n isVirtualized: true,\n shouldSelectOnPressUp: isListDraggable\n }, state, rowRef);\n let isDroppable = isListDroppable && !isDisabled;\n let {hoverProps, isHovered} = useHover({isDisabled: !allowsSelection && !hasAction});\n\n let {checkboxProps} = useGridListSelectionCheckbox({key: item.key}, state);\n let hasDescription = useHasChild(`.${listStyles['react-spectrum-ListViewItem-description']}`, rowRef);\n\n let draggableItem: DraggableItemResult;\n if (isListDraggable) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n draggableItem = dragAndDropHooks.useDraggableItem({key: item.key, hasDragButton: true}, dragState);\n if (isDisabled) {\n draggableItem = null;\n }\n }\n let droppableItem: DroppableItemResult;\n let isDropTarget: boolean;\n let dropIndicator: DropIndicatorAria;\n let dropIndicatorRef = useRef();\n if (isListDroppable) {\n let target = {type: 'item', key: item.key, dropPosition: 'on'} as DropTarget;\n isDropTarget = dropState.isDropTarget(target);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n dropIndicator = dragAndDropHooks.useDropIndicator({target}, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = React.useRef();\n let {buttonProps} = useButton({\n ...draggableItem?.dragButtonProps,\n elementType: 'div'\n }, dragButtonRef);\n\n let chevron = direction === 'ltr'\n ? (\n \n )\n : (\n \n );\n\n let showCheckbox = state.selectionManager.selectionMode !== 'none' && state.selectionManager.selectionBehavior === 'toggle';\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n let dropProps = isDroppable ? droppableItem?.dropProps : {'aria-hidden': droppableItem?.dropProps['aria-hidden']};\n const mergedProps = mergeProps(\n rowProps,\n draggableItem?.dragProps,\n dropProps,\n hoverProps,\n focusWithinProps,\n focusProps,\n // Remove tab index from list row if performing a screenreader drag. This prevents TalkBack from focusing the row,\n // allowing for single swipe navigation between row drop indicator\n dragAndDropHooks?.isVirtualDragging() && {tabIndex: null}\n );\n\n let isFirstRow = item.prevKey == null;\n let isLastRow = item.nextKey == null;\n // Figure out if the ListView content is equal or greater in height to the container. If so, we'll need to round the bottom\n // border corners of the last row when selected and we can get rid of the bottom border if it isn't selected to avoid border overlap\n // with bottom border\n let isFlushWithContainerBottom = false;\n if (isLastRow && loadingState !== 'loadingMore') {\n if (layout.getContentSize()?.height >= layout.virtualizer?.getVisibleRect().height) {\n isFlushWithContainerBottom = true;\n }\n }\n // previous item isn't selected\n // and the previous item isn't focused or, if it is focused, then if focus globally isn't visible or just focus isn't in the listview\n let roundTops = (!state.selectionManager.isSelected(item.prevKey)\n && (state.selectionManager.focusedKey !== item.prevKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n let roundBottoms = (!state.selectionManager.isSelected(item.nextKey)\n && (state.selectionManager.focusedKey !== item.nextKey || !(isGlobalFocusVisible() && state.selectionManager.isFocused)));\n\n let content = typeof item.rendered === 'string' ? {item.rendered} : item.rendered;\n if (isDisabled) {\n content = {content};\n }\n\n return (\n \n \n \n {isListDraggable &&\n
    \n {!isDisabled &&\n \n }\n className={\n classNames(\n listStyles,\n 'react-spectrum-ListViewItem-draghandle-button'\n )\n }\n style={!isFocusVisibleWithin ? {...visuallyHiddenProps.style} : {}}\n ref={dragButtonRef}\n draggable=\"true\">\n \n
    \n \n }\n \n }\n {isListDroppable && !dropIndicator?.isHidden &&\n
    \n }\n \n
    \n \n
    \n \n \n {content}\n \n {chevron}\n \n \n \n
    \n \n );\n}\n","import {ListViewContext} from './ListView';\nimport React, {useContext, useRef} from 'react';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport default function RootDropIndicator() {\n let {dropState, dragAndDropHooks} = useContext(ListViewContext);\n let ref = useRef();\n let {dropIndicatorProps} = dragAndDropHooks.useDropIndicator({\n target: {type: 'root'}\n }, dropState, ref);\n let isDropTarget = dropState.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n
    \n \n
    \n
    \n
    \n );\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {classNames, SlotProvider} from '@react-spectrum/utils';\nimport {Grid} from '@react-spectrum/layout';\nimport {GridNode} from '@react-types/grid';\nimport listStyles from './styles.css';\nimport React from 'react';\nimport type {SpectrumListViewProps} from './ListView';\nimport {Text} from '@react-spectrum/text';\n\ninterface DragPreviewProps {\n item: GridNode,\n itemCount: number,\n itemHeight: number,\n density: SpectrumListViewProps['density']\n}\n\nexport function DragPreview(props: DragPreviewProps) {\n let {\n item,\n itemCount,\n itemHeight,\n density\n } = props;\n\n let isDraggingMultiple = itemCount > 1;\n\n return (\n \n \n \n {typeof item.rendered === 'string' ? {item.rendered} : item.rendered}\n {isDraggingMultiple &&\n
    {itemCount}
    \n }\n \n
    \n \n );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n \"ar-AE\": _temp0,\n \"bg-BG\": _temp1,\n \"cs-CZ\": _temp2,\n \"da-DK\": _temp3,\n \"de-DE\": _temp4,\n \"el-GR\": _temp5,\n \"en-US\": _temp6,\n \"es-ES\": _temp7,\n \"et-EE\": _temp8,\n \"fi-FI\": _temp9,\n \"fr-FR\": _temp10,\n \"he-IL\": _temp11,\n \"hr-HR\": _temp12,\n \"hu-HU\": _temp13,\n \"it-IT\": _temp14,\n \"ja-JP\": _temp15,\n \"ko-KR\": _temp16,\n \"lt-LT\": _temp17,\n \"lv-LV\": _temp18,\n \"nb-NO\": _temp19,\n \"nl-NL\": _temp20,\n \"pl-PL\": _temp21,\n \"pt-BR\": _temp22,\n \"pt-PT\": _temp23,\n \"ro-RO\": _temp24,\n \"ru-RU\": _temp25,\n \"sk-SK\": _temp26,\n \"sl-SI\": _temp27,\n \"sr-SP\": _temp28,\n \"sv-SE\": _temp29,\n \"tr-TR\": _temp30,\n \"uk-UA\": _temp31,\n \"zh-CN\": _temp32,\n \"zh-TW\": _temp33\n}","{\n \"loading\": \"جارٍ التحميل...\",\n \"loadingMore\": \"جارٍ تحميل المزيد...\"\n}\n","{\n \"loading\": \"Зареждане...\",\n \"loadingMore\": \"Зареждане на още...\"\n}\n","{\n \"loading\": \"Načítání...\",\n \"loadingMore\": \"Načítání dalších...\"\n}\n","{\n \"loading\": \"Indlæser...\",\n \"loadingMore\": \"Indlæser flere...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Mehr laden ...\"\n}\n","{\n \"loading\": \"Φόρτωση...\",\n \"loadingMore\": \"Φόρτωση περισσότερων...\"\n}\n","{\n \"loading\": \"Loading…\",\n \"loadingMore\": \"Loading more…\"\n}\n","{\n \"loading\": \"Cargando…\",\n \"loadingMore\": \"Cargando más…\"\n}\n","{\n \"loading\": \"Laadimine...\",\n \"loadingMore\": \"Laadi rohkem...\"\n}\n","{\n \"loading\": \"Ladataan…\",\n \"loadingMore\": \"Ladataan lisää…\"\n}\n","{\n \"loading\": \"Chargement...\",\n \"loadingMore\": \"Chargement supplémentaire...\"\n}\n","{\n \"loading\": \"טוען...\",\n \"loadingMore\": \"טוען עוד...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Betöltés folyamatban…\",\n \"loadingMore\": \"Továbbiak betöltése folyamatban…\"\n}\n","{\n \"loading\": \"Caricamento...\",\n \"loadingMore\": \"Caricamento altri...\"\n}\n","{\n \"loading\": \"読み込み中...\",\n \"loadingMore\": \"さらに読み込み中...\"\n}\n","{\n \"loading\": \"로드 중…\",\n \"loadingMore\": \"추가 로드 중…\"\n}\n","{\n \"loading\": \"Įkeliama...\",\n \"loadingMore\": \"Įkeliama daugiau...\"\n}\n","{\n \"loading\": \"Notiek ielāde...\",\n \"loadingMore\": \"Tiek ielādēts vēl...\"\n}\n","{\n \"loading\": \"Laster inn ...\",\n \"loadingMore\": \"Laster inn flere ...\"\n}\n","{\n \"loading\": \"Laden...\",\n \"loadingMore\": \"Meer laden...\"\n}\n","{\n \"loading\": \"Ładowanie...\",\n \"loadingMore\": \"Wczytywanie większej liczby...\"\n}\n","{\n \"loading\": \"Carregando...\",\n \"loadingMore\": \"Carregando mais...\"\n}\n","{\n \"loading\": \"A carregar...\",\n \"loadingMore\": \"A carregar mais...\"\n}\n","{\n \"loading\": \"Se încarcă...\",\n \"loadingMore\": \"Se încarcă mai multe...\"\n}\n","{\n \"loading\": \"Загрузка...\",\n \"loadingMore\": \"Дополнительная загрузка...\"\n}\n","{\n \"loading\": \"Načítava sa...\",\n \"loadingMore\": \"Načítava sa viac...\"\n}\n","{\n \"loading\": \"Nalaganje ...\",\n \"loadingMore\": \"Nalaganje več vsebine ...\"\n}\n","{\n \"loading\": \"Učitavam...\",\n \"loadingMore\": \"Učitavam još...\"\n}\n","{\n \"loading\": \"Läser in...\",\n \"loadingMore\": \"Läser in mer...\"\n}\n","{\n \"loading\": \"Yükleniyor...\",\n \"loadingMore\": \"Daha fazla yükleniyor...\"\n}\n","{\n \"loading\": \"Завантаження…\",\n \"loadingMore\": \"Завантаження інших об’єктів...\"\n}\n","{\n \"loading\": \"正在加载...\",\n \"loadingMore\": \"正在加载更多...\"\n}\n","{\n \"loading\": \"載入中…\",\n \"loadingMore\": \"正在載入更多…\"\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaGridListProps, useGridList} from '@react-aria/gridlist';\nimport {AsyncLoadable, DOMRef, LoadingState, SpectrumSelectionProps, StyleProps} from '@react-types/shared';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport type {DragAndDropHooks} from '@react-spectrum/dnd';\nimport type {DraggableCollectionState, DroppableCollectionState} from '@react-stately/dnd';\nimport type {DroppableCollectionResult} from '@react-aria/dnd';\nimport {filterDOMProps, mergeProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing, FocusScope} from '@react-aria/focus';\nimport InsertionIndicator from './InsertionIndicator';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListLayout} from '@react-stately/layout';\nimport {ListState, useListState} from '@react-stately/list';\nimport listStyles from './styles.css';\nimport {ListViewItem} from './ListViewItem';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {Key, ReactElement, useContext, useMemo, useRef, useState} from 'react';\nimport RootDropIndicator from './RootDropIndicator';\nimport {DragPreview as SpectrumDragPreview} from './DragPreview';\nimport {useCollator, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useProvider} from '@react-spectrum/provider';\nimport {Virtualizer} from '@react-aria/virtualizer';\n\nexport interface SpectrumListViewProps extends AriaGridListProps, StyleProps, SpectrumSelectionProps, Omit {\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'regular' | 'spacious',\n /** Whether the ListView should be displayed with a quiet style. */\n isQuiet?: boolean,\n /** The current loading state of the ListView. Determines whether or not the progress circle should be shown. */\n loadingState?: LoadingState,\n /**\n * Sets the text behavior for the row contents.\n * @default 'truncate'\n */\n overflowMode?: 'truncate' | 'wrap',\n /** Sets what the ListView should render when there is no content to display. */\n renderEmptyState?: () => JSX.Element,\n /**\n * Handler that is called when a user performs an action on an item. The exact user event depends on\n * the collection's `selectionStyle` prop and the interaction modality.\n */\n onAction?: (key: Key) => void,\n /**\n * The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the ListView.\n */\n dragAndDropHooks?: DragAndDropHooks['dragAndDropHooks']\n}\n\ninterface ListViewContextValue {\n state: ListState,\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n dragAndDropHooks: DragAndDropHooks['dragAndDropHooks'],\n onAction:(key: Key) => void,\n isListDraggable: boolean,\n isListDroppable: boolean,\n layout: ListLayout,\n loadingState: LoadingState\n}\n\nexport const ListViewContext = React.createContext>(null);\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32,\n large: 40\n },\n regular: {\n medium: 40,\n large: 50\n },\n spacious: {\n medium: 48,\n large: 60\n }\n};\n\nfunction useListLayout(state: ListState, density: SpectrumListViewProps['density'], overflowMode: SpectrumListViewProps['overflowMode']) {\n let {scale} = useProvider();\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let isEmpty = state.collection.size === 0;\n let layout = useMemo(() =>\n new ListLayout({\n estimatedRowHeight: ROW_HEIGHTS[density][scale],\n padding: 0,\n collator,\n loaderHeight: isEmpty ? null : ROW_HEIGHTS[density][scale]\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n , [collator, scale, density, isEmpty, overflowMode]);\n\n layout.collection = state.collection;\n layout.disabledKeys = state.disabledKeys;\n return layout;\n}\n\nfunction ListView(props: SpectrumListViewProps, ref: DOMRef) {\n let {\n density = 'regular',\n loadingState,\n onLoadMore,\n isQuiet,\n overflowMode = 'truncate',\n onAction,\n dragAndDropHooks,\n ...otherProps\n } = props;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n let domRef = useDOMRef(ref);\n let state = useListState({\n ...props,\n selectionBehavior: props.selectionStyle === 'highlight' ? 'replace' : 'toggle'\n });\n let {collection, selectionManager} = state;\n let stringFormatter = useLocalizedStringFormatter(intlMessages);\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n\n let {styleProps} = useStyleProps(props);\n let dragState: DraggableCollectionState;\n let preview = useRef(null);\n if (isListDraggable) {\n dragState = dragAndDropHooks.useDraggableCollectionState({\n collection,\n selectionManager,\n preview\n });\n dragAndDropHooks.useDraggableCollection({}, dragState, domRef);\n }\n let layout = useListLayout(\n state,\n props.density || 'regular',\n overflowMode\n );\n // !!0 is false, so we can cast size or undefined and they'll be falsy\n layout.allowDisabledKeyFocus = state.selectionManager.disabledBehavior === 'selection' || !!dragState?.draggingKeys.size;\n\n\n let DragPreview = dragAndDropHooks?.DragPreview;\n let dropState: DroppableCollectionState;\n let droppableCollection: DroppableCollectionResult;\n let isRootDropTarget: boolean;\n if (isListDroppable) {\n dropState = dragAndDropHooks.useDroppableCollectionState({\n collection,\n selectionManager\n });\n droppableCollection = dragAndDropHooks.useDroppableCollection({\n keyboardDelegate: layout,\n dropTargetDelegate: layout\n }, dropState, domRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {gridProps} = useGridList({\n ...props,\n isVirtualized: true,\n keyboardDelegate: layout,\n onAction\n }, state, domRef);\n\n // Sync loading state into the layout.\n layout.isLoading = isLoading;\n\n let focusedKey = selectionManager.focusedKey;\n if (dropState?.target?.type === 'item') {\n focusedKey = dropState.target.key;\n }\n\n // wait for layout to get accurate measurements\n let [isVerticalScrollbarVisible, setVerticalScollbarVisible] = useState(false);\n let [isHorizontalScrollbarVisible, setHorizontalScollbarVisible] = useState(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useLayoutEffect(() => {\n if (domRef.current) {\n // 2 is the width of the border which is not part of the box size\n setVerticalScollbarVisible(domRef.current.clientWidth + 2 < domRef.current.offsetWidth);\n setHorizontalScollbarVisible(domRef.current.clientHeight + 2 < domRef.current.offsetHeight);\n }\n });\n\n let hasAnyChildren = useMemo(() => [...collection].some(item => item.hasChildNodes), [collection]);\n\n return (\n \n \n \n \n {(type, item) => {\n if (type === 'item') {\n return (\n <>\n {isListDroppable && collection.getKeyBefore(item.key) == null &&\n \n }\n {isListDroppable &&\n \n }\n \n {isListDroppable &&\n \n }\n \n );\n } else if (type === 'loader') {\n return (\n \n 0 ? stringFormatter.format('loadingMore') : stringFormatter.format('loading')} />\n \n );\n } else if (type === 'placeholder') {\n let emptyState = props.renderEmptyState ? props.renderEmptyState() : null;\n if (emptyState == null) {\n return null;\n }\n\n return (\n \n {emptyState}\n \n );\n }\n\n }}\n \n \n \n {DragPreview && isListDraggable &&\n \n {() => {\n let item = state.collection.getItem(dragState.draggedKey);\n let itemCount = dragState.draggingKeys.size;\n let itemHeight = layout.getLayoutInfo(dragState.draggedKey).rect.height;\n return ;\n }}\n \n }\n \n );\n}\n\nfunction CenteredWrapper({children}) {\n let {state} = useContext(ListViewContext);\n return (\n 0\n }\n )}>\n
    \n {children}\n
    \n \n );\n}\n\n/**\n * A ListView displays a list of interactive items, and allows a user to navigate, select, or perform an action.\n */\nconst _ListView = React.forwardRef(ListView) as (props: SpectrumListViewProps & {ref?: DOMRef}) => ReactElement;\nexport {_ListView as ListView};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = ChevronDownMedium;\n\nvar _ChevronDownMedium = require(\"@adobe/react-spectrum-ui/dist/ChevronDownMedium\");\n\nvar _icon = require(\"@react-spectrum/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction ChevronDownMedium(props) {\n return /*#__PURE__*/_react.default.createElement(_icon.UIIcon, props, /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.ChevronDownMedium, null));\n}","/**\n* @adobe/react-spectrum-ui (c) by Adobe\n* \n* @adobe/react-spectrum-ui is licensed under a\n* Creative Commons Attribution-NoDerivatives 4.0 International License.\n* \n* You should have received a copy of the license along with this\n* work. If not, see .\n**/\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChevronDownMedium = ChevronDownMedium;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ChevronDownMedium(_ref) {\n var _ref$scale = _ref.scale,\n scale = _ref$scale === void 0 ? 'M' : _ref$scale,\n props = _objectWithoutProperties(_ref, [\"scale\"]);\n\n return _react[\"default\"].createElement(\"svg\", _extends({}, props, props), scale === 'L' && _react[\"default\"].createElement(\"path\", {\n d: \"M11.99 1.51a1 1 0 0 0-1.707-.707L6 5.086 1.717.803A1 1 0 1 0 .303 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a.997.997 0 0 0 .293-.707z\"\n }), scale === 'M' && _react[\"default\"].createElement(\"path\", {\n d: \"M9.99 1.01A1 1 0 0 0 8.283.303L5 3.586 1.717.303A1 1 0 1 0 .303 1.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z\"\n }));\n}\n\nChevronDownMedium.displayName = 'ChevronDownMedium';","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaListBoxOptions} from '@react-aria/listbox';\nimport {AriaSelectProps} from '@react-types/select';\nimport {chain, filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {DOMAttributes, FocusableElement, KeyboardDelegate} from '@react-types/shared';\nimport {FocusEvent, RefObject, useMemo} from 'react';\nimport {ListKeyboardDelegate, useTypeSelect} from '@react-aria/selection';\nimport {SelectState} from '@react-stately/select';\nimport {setInteractionModality} from '@react-aria/interactions';\nimport {useCollator} from '@react-aria/i18n';\nimport {useField} from '@react-aria/label';\nimport {useMenuTrigger} from '@react-aria/menu';\n\nexport interface AriaSelectOptions extends AriaSelectProps {\n /**\n * An optional keyboard delegate implementation for type to select,\n * to override the default.\n */\n keyboardDelegate?: KeyboardDelegate\n}\n\nexport interface SelectAria {\n /** Props for the label element. */\n labelProps: DOMAttributes,\n\n /** Props for the popup trigger element. */\n triggerProps: AriaButtonProps,\n\n /** Props for the element representing the selected value. */\n valueProps: DOMAttributes,\n\n /** Props for the popup. */\n menuProps: AriaListBoxOptions,\n\n /** Props for the select's description element, if any. */\n descriptionProps: DOMAttributes,\n\n /** Props for the select's error message element, if any. */\n errorMessageProps: DOMAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a select component.\n * A select displays a collapsible list of options and allows a user to select one of them.\n * @param props - Props for the select.\n * @param state - State for the select, as returned by `useListState`.\n */\nexport function useSelect(props: AriaSelectOptions, state: SelectState, ref: RefObject): SelectAria {\n let {\n keyboardDelegate,\n isDisabled\n } = props;\n\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = useCollator({usage: 'search', sensitivity: 'base'});\n let delegate = useMemo(() => keyboardDelegate || new ListKeyboardDelegate(state.collection, state.disabledKeys, null, collator), [keyboardDelegate, state.collection, state.disabledKeys, collator]);\n\n let {menuTriggerProps, menuProps} = useMenuTrigger(\n {\n isDisabled,\n type: 'listbox'\n },\n state,\n ref\n );\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowLeft': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyAbove(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n case 'ArrowRight': {\n // prevent scrolling containers\n e.preventDefault();\n\n let key = state.selectedKey != null ? delegate.getKeyBelow(state.selectedKey) : delegate.getFirstKey();\n if (key) {\n state.setSelectedKey(key);\n }\n break;\n }\n }\n };\n\n let {typeSelectProps} = useTypeSelect({\n keyboardDelegate: delegate,\n selectionManager: state.selectionManager,\n onTypeSelect(key) {\n state.setSelectedKey(key);\n }\n });\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n typeSelectProps.onKeyDown = typeSelectProps.onKeyDownCapture;\n delete typeSelectProps.onKeyDownCapture;\n\n let domProps = filterDOMProps(props, {labelable: true});\n let triggerProps = mergeProps(typeSelectProps, menuTriggerProps, fieldProps);\n\n let valueId = useId();\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n if (!props.isDisabled) {\n ref.current.focus();\n\n // Show the focus ring so the user knows where focus went\n setInteractionModality('keyboard');\n }\n }\n },\n triggerProps: mergeProps(domProps, {\n ...triggerProps,\n isDisabled,\n onKeyDown: chain(triggerProps.onKeyDown, onKeyDown, props.onKeyDown),\n onKeyUp: props.onKeyUp,\n 'aria-labelledby': [\n triggerProps['aria-labelledby'],\n triggerProps['aria-label'] && !triggerProps['aria-labelledby'] ? triggerProps.id : null,\n valueId\n ].filter(Boolean).join(' '),\n onFocus(e: FocusEvent) {\n if (state.isFocused) {\n return;\n }\n\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n\n state.setFocused(true);\n },\n onBlur(e: FocusEvent) {\n if (state.isOpen) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n }\n }),\n valueProps: {\n id: valueId\n },\n menuProps: {\n ...menuProps,\n autoFocus: state.focusStrategy || true,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n disallowEmptySelection: true,\n onBlur: (e) => {\n if (e.currentTarget.contains(e.relatedTarget as Node)) {\n return;\n }\n\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n state.setFocused(false);\n },\n 'aria-labelledby': [\n fieldProps['aria-labelledby'],\n triggerProps['aria-label'] && !fieldProps['aria-labelledby'] ? triggerProps.id : null\n ].filter(Boolean).join(' ')\n },\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport React, {ReactNode, RefObject} from 'react';\nimport {SelectState} from '@react-stately/select';\nimport {useInteractionModality} from '@react-aria/interactions';\nimport {useVisuallyHidden} from '@react-aria/visually-hidden';\n\nexport interface AriaHiddenSelectProps {\n /**\n * Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete).\n */\n autoComplete?: string,\n\n /** The text label for the select. */\n label?: ReactNode,\n\n /** HTML form input name. */\n name?: string,\n\n /** Sets the disabled state of the select and input. */\n isDisabled?: boolean\n}\n\nexport interface HiddenSelectProps extends AriaHiddenSelectProps {\n /** State for the select. */\n state: SelectState,\n\n /** A ref to the trigger element. */\n triggerRef: RefObject\n}\n\n/**\n * Provides the behavior and accessibility implementation for a hidden ` cannot have `display: none` or `hidden` for autofill to work.\n // In Firefox, there must be a